mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-19 02:08:38 +01:00
Summary: This enables CORGI. Currently, `AphrontSite` subclasses can't really have their own routes. They can do this sort of hacky rewriting of paths, but that's a mess and not desirable in the long run. Instead, let subclasses build their own routing maps. This will let CORP and ORG have their own routing maps. I was able to get rid of the `PhameBlogResourcesSite` since it can really just share the standard resources site. Test Plan: - With no base URI set, and a base URI set, loaded main page and resources (from main site). - With file domain set, loaded resources from main site and file site. - Loaded a skinned blog from a domain. - Loaded a skinned blog from the main site. - Viewed "Request" tab of DarkConsole to see site/controller info. Reviewers: chad Reviewed By: chad Differential Revision: https://secure.phabricator.com/D14008
41 lines
928 B
PHP
41 lines
928 B
PHP
<?php
|
|
|
|
final class PhabricatorResourceSite extends PhabricatorSite {
|
|
|
|
public function getDescription() {
|
|
return pht('Serves static resources like images, CSS and JS.');
|
|
}
|
|
|
|
public function getPriority() {
|
|
return 2000;
|
|
}
|
|
|
|
public function newSiteForRequest(AphrontRequest $request) {
|
|
$host = $request->getHost();
|
|
|
|
$uri = PhabricatorEnv::getEnvConfig('security.alternate-file-domain');
|
|
if (!strlen($uri)) {
|
|
return null;
|
|
}
|
|
|
|
if ($this->isHostMatch($host, array($uri))) {
|
|
return new PhabricatorResourceSite();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public function getRoutingMaps() {
|
|
$applications = PhabricatorApplication::getAllInstalledApplications();
|
|
|
|
$maps = array();
|
|
foreach ($applications as $application) {
|
|
$maps[] = $this->newRoutingMap()
|
|
->setApplication($application)
|
|
->setRoutes($application->getResourceRoutes());
|
|
}
|
|
|
|
return $maps;
|
|
}
|
|
|
|
}
|