1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 01:39:24 +02:00
Oinktube/objects/Page.php

159 lines
4.9 KiB
PHP

<?php
class Page {
private $title;
private $bodyClass = '';
private $extraScripts = array();
private $extraStyles = array();
private $inlineStyles = '';
private $inlineScripts = '';
private $bodyContent = '';
private $includeNavbar = true;
private $includeFooter = true;
private $includeInHead = array();
private $includeInFooter = array();
public function __construct($title, $bodyClass='') {
$this->title = $title;
$this->bodyClass = $bodyClass;
_ob_start();
}
public function setTitle(string $title) {
$this->title = $title;
}
public function setBodyClass(string $bodyClass) {
$this->bodyClass = $bodyClass;
}
public function setExtraScripts(array $extraScripts) {
$this->extraScripts = $extraScripts;
}
public function setExtraStyles(array $extraStyles) {
$this->extraStyles = $extraStyles;
}
public function setInlineStyles(string $inlineStyles) {
$this->inlineStyles = $inlineStyles;
}
public function setInlineScripts(string $inlineScripts) {
$this->inlineScripts = $inlineScripts;
}
public function setBodyContent(string $bodyContent) {
$this->bodyContent = $bodyContent;
}
public function setIncludeNavbar(bool $includeNavbar) {
$this->includeNavbar = $includeNavbar;
}
public function setIncludeFooter(bool $includeFooter) {
$this->includeFooter = $includeFooter;
}
public function setIncludeInHead(array $includeInHead) {
$this->includeInHead = $includeInHead;
}
public function setIncludeInFooter(array $includeInFooter) {
$this->includeInFooter = $includeInFooter;
}
public function getHead() {
global $config, $global;
if(!is_array($this->title)){
$this->title = array($this->title);
}
foreach ($this->title as $key => $value) {
$this->title[$key] = __($value);
}
echo "<head>";
echo "<title>" . implode($config->getPageTitleSeparator(), $this->title) . getSEOComplement() . $config->getPageTitleSeparator() . $config->getWebSiteTitle() . "</title>";
include $global['systemRootPath'] . 'view/include/head.php';
if(!empty($this->includeInHead)){
foreach ($this->includeInHead as $value) {
include $global['systemRootPath'] . $value;
}
}
if(!empty($this->extraStyles)){
foreach ($this->extraStyles as $style) {
echo "<link href=\"" . $global['webSiteRootURL'].$style . "\" rel=\"stylesheet\" type=\"text/css\" />";
}
}
if (!empty($this->inlineStyles)) {
echo "<style>" . $this->inlineStyles . "</style>";
}
echo "</head>";
}
public function getNavBar() {
global $global;
if ($this->includeNavbar) {
// Your navbar HTML
include $global['systemRootPath'] . 'view/include/navbar.php';
}
}
public function getFooter() {
global $config, $global;
if ($this->includeFooter) {
// Your footer HTML
include $global['systemRootPath'] . 'view/include/footer.php';
}
if(!empty($this->includeInFooter)){
foreach ($this->includeInFooter as $value) {
include $global['systemRootPath'] . $value;
}
}
if(!empty($this->extraScripts)){
foreach ($this->extraScripts as $script) {
echo "<script src=\"" . $global['webSiteRootURL'].$script . "\" type=\"text/javascript\"></script>";
}
}
if (!empty($this->inlineScripts)) {
echo "<script>" . $this->inlineScripts . "</script>";
}
}
public function getContent() {
global $global;
$rtl = '';
if (isRTL()) {
$rtl = 'rtl';
}
echo "<body class=\"{$global['bodyClass']} {$rtl} {$this->bodyClass}\">";
$this->getNavBar();
//echo '<div id="_avideoPageContentLoading" class="progress"><div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"><span class="sr-only">Loading...</span></div></div>';
//echo '<div id="_avideoPageContent">';
echo $this->bodyContent;
//echo '</div>';
$this->getFooter();
echo "</body>";
}
public function getPage() {
echo "<!DOCTYPE html>";
echo "<html lang=\"" . getLanguage() . "\">";
$this->getHead();
$this->getContent();
echo "</html>";
}
public function print($include_end = true){
global $config, $global;
$html = _ob_get_clean();
_ob_start();
$this->bodyContent = $html;
$this->getPage();
if($include_end){
include $global['systemRootPath'].'objects/include_end.php';
}
}
}