<?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 $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; } }