89 lines
1.6 KiB
PHP
89 lines
1.6 KiB
PHP
<?php
|
|
|
|
|
|
class PageFrameOptions
|
|
{
|
|
/** @var string */
|
|
public $raw;
|
|
|
|
/** @var string */
|
|
public $title = 'Mikescher.com';
|
|
|
|
/** @var int */
|
|
public $statuscode = 200;
|
|
|
|
/** @var bool */
|
|
public $force_404 = false;
|
|
|
|
/** @var string */
|
|
public $force_404_message = '';
|
|
|
|
/** @var bool */
|
|
public $force_redirect = false;
|
|
|
|
/** @var string */
|
|
public $force_redirect_url = '';
|
|
|
|
/** @var string */
|
|
public $frame = 'default_frame.php';
|
|
|
|
/** @var string */
|
|
public $contentType = null;
|
|
|
|
/** @var string */
|
|
public $activeHeader = null;
|
|
|
|
/** @var string */
|
|
public $canonical_url = null;
|
|
|
|
/** @var string */
|
|
public $alternative_url = null;
|
|
|
|
/** @var string[] */
|
|
public $contentCSSClasses = [ 'content-responsive' ];
|
|
|
|
/** @var array */
|
|
public $stylesheets = [];
|
|
|
|
/** @var array */
|
|
public $scripts = [];
|
|
|
|
public function addStylesheet(string $url)
|
|
{
|
|
foreach ($this->stylesheets as $css) if ($css === $url) return;
|
|
$this->stylesheets []= $url;
|
|
}
|
|
|
|
public function addScript(string $url, bool $defer = false)
|
|
{
|
|
foreach ($this->scripts as &$script)
|
|
{
|
|
if ($script[0] === $url)
|
|
{
|
|
if (!$defer && $script[1]) $script[1] = false; // upgrade from defered to immediate script
|
|
return;
|
|
}
|
|
}
|
|
|
|
$this->scripts []= [ $url, $defer ];
|
|
}
|
|
|
|
public function setForced404(string $err)
|
|
{
|
|
$this->force_404 = true;
|
|
$this->force_404_message = $err;
|
|
}
|
|
|
|
public function setForcedRedirect(string $url)
|
|
{
|
|
$this->force_redirect = true;
|
|
$this->force_redirect_url = $url;
|
|
}
|
|
|
|
public function forceResult(int $statuscode, string $content)
|
|
{
|
|
$this->statuscode = $statuscode;
|
|
ob_clean();
|
|
echo $content;
|
|
}
|
|
} |