1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-04 20:52:43 +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() {
return implode('', $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();
$title = phutil_escape_html($this->getTitle());
$head = $this->getHead();
$body = $this->getBody();
$tail = $this->getTail();
$body_classes = $this->getBodyClasses();
$body = phutil_render_tag(
'body',
array(
'class' => nonempty($body_classes, null),
),
$body.$tail);
2011-02-02 22:48:52 +01:00
$response = <<<EOHTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{$title}</title>
{$head}
</head>
{$body}
</html>
EOHTML;
2011-02-02 22:48:52 +01:00
$response = $this->willSendResponse($response);
// TODO: [HTML] Make HTML safe.
return phutil_safe_html($response);
2011-02-02 22:48:52 +01:00
}
}