3 final class PhameBlogSite
extends PhameSite
{
7 public function setBlog(PhameBlog
$blog) {
12 public function getBlog() {
16 public function getDescription() {
17 return pht('Serves blogs with custom domains.');
20 public function shouldRequireHTTPS() {
21 $full_uri = $this->getBlog()->getDomainFullURI();
22 $full_uri = new PhutilURI($full_uri);
24 return ($full_uri->getProtocol() == 'https');
27 public function getPriority() {
31 public function newSiteForRequest(AphrontRequest
$request) {
32 if (!$this->isPhameActive()) {
36 $host = $request->getHost();
39 $blog = id(new PhameBlogQuery())
40 ->setViewer(new PhabricatorUser())
42 ->needProfileImage(true)
43 ->needHeaderImage(true)
46 PhameBlog
::STATUS_ACTIVE
,
49 } catch (PhabricatorPolicyException
$ex) {
52 'This blog is not visible to logged out users, so it can not be '.
53 'visited from a custom domain.'));
60 return id(new PhameBlogSite())->setBlog($blog);
63 public function new404Controller(AphrontRequest
$request) {
64 return new PhameBlog404Controller();
67 public function getRoutingMaps() {
68 $app = PhabricatorApplication
::getByClass('PhabricatorPhameApplication');
71 $maps[] = $this->newRoutingMap()
72 ->setApplication($app)
73 ->setRoutes($app->getBlogRoutes());