Select the types of activity you want to include in your feed.
@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
···2828 abstract public function getApplicationName();
2929 abstract public function getURIMap();
3030 abstract public function buildRequest();
3131+ abstract public function build404Controller();
31323233 final public function setRequest(AphrontRequest $request) {
3334 $this->request = $request;
···4445 $request = $this->getRequest();
4546 $path = $request->getPath();
4647 list($controller_class, $uri_data) = $mapper->mapPath($path);
4848+4949+ if (!$controller_class) {
5050+ return $this->build404Controller();
5151+ }
47524853 PhutilSymbolLoader::loadClass($controller_class);
4954 $controller = newv($controller_class, array($request));
···11+<?php
22+33+/*
44+ * Copyright 2011 Facebook, Inc.
55+ *
66+ * Licensed under the Apache License, Version 2.0 (the "License");
77+ * you may not use this file except in compliance with the License.
88+ * You may obtain a copy of the License at
99+ *
1010+ * http://www.apache.org/licenses/LICENSE-2.0
1111+ *
1212+ * Unless required by applicable law or agreed to in writing, software
1313+ * distributed under the License is distributed on an "AS IS" BASIS,
1414+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1515+ * See the License for the specific language governing permissions and
1616+ * limitations under the License.
1717+ */
1818+1919+class Phabricator404Controller extends PhabricatorController {
2020+2121+ public function processRequest() {
2222+ return new Aphront404Response();
2323+ }
2424+2525+}
+13
src/applications/base/controller/404/__init__.php
···11+<?php
22+/**
33+ * This file is automatically generated. Lint this module to rebuild it.
44+ * @generated
55+ */
66+77+88+99+phutil_require_module('phabricator', 'aphront/response/404');
1010+phutil_require_module('phabricator', 'applications/base/controller/base');
1111+1212+1313+phutil_require_source('Phabricator404Controller.php');
···11+<?php
22+33+/*
44+ * Copyright 2011 Facebook, Inc.
55+ *
66+ * Licensed under the Apache License, Version 2.0 (the "License");
77+ * you may not use this file except in compliance with the License.
88+ * You may obtain a copy of the License at
99+ *
1010+ * http://www.apache.org/licenses/LICENSE-2.0
1111+ *
1212+ * Unless required by applicable law or agreed to in writing, software
1313+ * distributed under the License is distributed on an "AS IS" BASIS,
1414+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1515+ * See the License for the specific language governing permissions and
1616+ * limitations under the License.
1717+ */
1818+1919+final class AphrontRequestFailureView extends AphrontView {
2020+2121+ private $header;
2222+2323+ public function setHeader($header) {
2424+ $this->header = $header;
2525+ return $this;
2626+ }
2727+2828+2929+ final public function render() {
3030+ require_celerity_resource('aphront-request-failure-view-css');
3131+3232+ return
3333+ '<div class="aphront-request-failure-view">'.
3434+ '<div class="aphront-request-failure-head">'.
3535+ '<h1>'.phutil_escape_html($this->header).'</h1>'.
3636+ '</div>'.
3737+ '<div class="aphront-request-failure-body">'.
3838+ $this->renderChildren().
3939+ '</div>'.
4040+ '</div>';
4141+ }
4242+4343+}
+14
src/view/page/failure/__init__.php
···11+<?php
22+/**
33+ * This file is automatically generated. Lint this module to rebuild it.
44+ * @generated
55+ */
66+77+88+99+phutil_require_module('phabricator', 'view/base');
1010+1111+phutil_require_module('phutil', 'markup');
1212+1313+1414+phutil_require_source('AphrontRequestFailureView.php');