@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 PonderQuestionHistoryController extends PonderController {
4
5 public function shouldAllowPublic() {
6 return true;
7 }
8
9 public function handleRequest(AphrontRequest $request) {
10 $viewer = $request->getViewer();
11 $id = $request->getURIData('id');
12
13 $question = id(new PonderQuestionQuery())
14 ->setViewer($viewer)
15 ->withIDs(array($id))
16 ->executeOne();
17 if (!$question) {
18 return new Aphront404Response();
19 }
20
21 $timeline = $this->buildTransactionTimeline(
22 $question,
23 new PonderQuestionTransactionQuery());
24 $timeline->setShouldTerminate(true);
25
26 $qid = $question->getID();
27
28 $crumbs = $this->buildApplicationCrumbs();
29 $crumbs->setBorder(true);
30 $crumbs->addTextCrumb("Q{$qid}", "/Q{$qid}");
31 $crumbs->addTextCrumb(pht('History'));
32 $crumbs->setBorder(true);
33
34 $header = id(new PHUIHeaderView())
35 ->setHeader($question->getTitle())
36 ->setHeaderIcon('fa-history');
37
38 $view = id(new PHUITwoColumnView())
39 ->setHeader($header)
40 ->setFooter($timeline);
41
42 return $this->newPage()
43 ->setTitle(pht('Question History'))
44 ->setCrumbs($crumbs)
45 ->appendChild($view);
46 }
47
48}