@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final 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}