Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/conpherence/controller/ConpherenceThreadSearchController.php
12256 views
1
<?php
2
3
final class ConpherenceThreadSearchController
4
extends ConpherenceController {
5
6
public function shouldAllowPublic() {
7
return true;
8
}
9
10
public function handleRequest(AphrontRequest $request) {
11
$viewer = $request->getViewer();
12
$conpherence_id = $request->getURIData('id');
13
$fulltext = $request->getStr('fulltext');
14
15
$conpherence = id(new ConpherenceThreadQuery())
16
->setViewer($viewer)
17
->withIDs(array($conpherence_id))
18
->executeOne();
19
20
if (!$conpherence) {
21
return new Aphront404Response();
22
}
23
24
$engine = new ConpherenceThreadSearchEngine();
25
$engine->setViewer($viewer);
26
$saved = $engine->buildSavedQueryFromBuiltin('all')
27
->setParameter('phids', array($conpherence->getPHID()))
28
->setParameter('fulltext', $fulltext);
29
30
$pager = $engine->newPagerForSavedQuery($saved);
31
$pager->setPageSize(15);
32
33
$query = $engine->buildQueryFromSavedQuery($saved);
34
35
$results = $engine->executeQuery($query, $pager);
36
$view = $engine->renderResults($results, $saved);
37
38
return id(new AphrontAjaxResponse())
39
->setContent($view->getContent());
40
}
41
}
42
43