1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-11 17:32:41 +01:00
phorge-phorge/src/view/page/AphrontPageView.php

83 lines
1.4 KiB
PHP
Raw Normal View History

<?php
abstract class AphrontPageView extends AphrontView {
private $title;
public function setTitle($title) {
$this->title = $title;
return $this;
}
public function getTitle() {
$title = $this->title;
if (is_array($title)) {
$title = implode(" \xC2\xB7 ", $title);
}
return $title;
}
protected function getHead() {
return '';
}
protected function getBody() {
2013-02-13 23:50:15 +01:00
return phutil_implode_html('', $this->renderChildren());
}
protected function getTail() {
return '';
}
2011-02-02 22:48:52 +01:00
protected function willRenderPage() {
return;
}
2011-02-02 22:48:52 +01:00
protected function willSendResponse($response) {
return $response;
}
protected function getBodyClasses() {
return null;
}
public function render() {
2011-02-02 22:48:52 +01:00
$this->willRenderPage();
2013-02-13 23:50:15 +01:00
$title = $this->getTitle();
$head = $this->getHead();
$body = $this->getBody();
$tail = $this->getTail();
$body_classes = $this->getBodyClasses();
2013-02-13 23:50:15 +01:00
$body = phutil_tag(
'body',
array(
'class' => nonempty($body_classes, null),
),
2013-02-13 23:50:15 +01:00
array($body, $tail));
$response = hsprintf(
'<!DOCTYPE html>'.
'<html>'.
'<head>'.
'<meta charset="UTF-8" />'.
'<title>%s</title>'.
'%s'.
'</head>'.
'%s'.
'</html>',
$title,
$head,
$body);
$response = $this->willSendResponse($response);
2013-02-13 23:50:15 +01:00
return $response;
2011-02-02 22:48:52 +01:00
}
}