Mercurial > SimpleWebPresenter
view Page.inc @ 80:88904282b888
Documentation fixes.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Fri, 12 Oct 2012 16:59:19 +0200 |
| parents | 7c68015b211a |
| children | 2a8e2f571b24 |
line wrap: on
line source
<? include_once 'ScriptIncludeCache.inc'; /// @cond $baseDir = dirname(__FILE__); $cache = ScriptIncludeCache::instance(__FILE__); $cache->includeOnce('Options.inc', dirname(__FILE__)); /// @endcond /** * Master class for generating a page */ class Page { private $cache; /** * Constructs a page * * @param $cache optionally sets a cache */ function __construct($cache = null) { $this->setCache($cache); } /** * Set the cache * * @param $cache The cache object */ protected function setCache($cache) { $this->cache = $cache; } /** * Get the cache * * @return The cache object */ protected function getCache() { return $this->cache; } /** * Decide wether or not this page may be compressed. * * Normally this is a check for http headers, but some pages * eg. pictures may not want to be compressed, and may override this * function. * * @return bool if this page may be compressed */ function mayCompress() { return (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')); } /** * Turns on compression for this page * * @note This may not be reversed */ function startCompression() { ob_start("ob_gzhandler"); } /** * Generates the actual content of the page * * @return the content buffer */ abstract function generateContent(); /** * Finishes all necessary processing to determine the cacheset of this page. * * @return bool if this page may be cached */ abstract function cacheCheck(); /** * Generates an appropriate response to the request. * * Eg. 302 NOT CHANGED, error message or the actual content */ function genPage() { if ($this->cacheCheck()) { $this->cache->CheckHttpModified(); } $res = $this->generateContent(); if ($this->mayCompress()) { $this->startCompression(); } print $res; } } ?>
