X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FPageBuilder.php;h=2ca95832c60eef3c234b85c3d7a102af1cf7eafa;hb=1004742f09b55ff781c13745781b9a7e90986faa;hp=cf13c714631a47e8f71659061eb5c7338c99571c;hpb=684e662a58b02bde225e44d3677987b6fc3adf0b;p=github%2Fshaarli%2FShaarli.git diff --git a/application/PageBuilder.php b/application/PageBuilder.php index cf13c714..2ca95832 100644 --- a/application/PageBuilder.php +++ b/application/PageBuilder.php @@ -1,5 +1,8 @@ tpl = false; + $this->conf = $conf; + $this->session = $session; + $this->linkDB = $linkDB; + $this->token = $token; + $this->isLoggedIn = $isLoggedIn; } /** @@ -29,26 +66,25 @@ class PageBuilder private function initialize() { $this->tpl = new RainTPL(); - $conf = ConfigManager::getInstance(); try { $version = ApplicationUtils::checkUpdate( - shaarli_version, - $conf->get('config.UPDATECHECK_FILENAME'), - $conf->get('config.UPDATECHECK_INTERVAL'), - $conf->get('config.ENABLE_UPDATECHECK'), - isLoggedIn(), - $conf->get('config.UPDATECHECK_BRANCH') + SHAARLI_VERSION, + $this->conf->get('resource.update_check'), + $this->conf->get('updates.check_updates_interval'), + $this->conf->get('updates.check_updates'), + $this->isLoggedIn, + $this->conf->get('updates.check_updates_branch') ); $this->tpl->assign('newVersion', escape($version)); $this->tpl->assign('versionError', ''); - } catch (Exception $exc) { - logm($conf->get('config.LOG_FILE'), $_SERVER['REMOTE_ADDR'], $exc->getMessage()); + logm($this->conf->get('resource.log'), $_SERVER['REMOTE_ADDR'], $exc->getMessage()); $this->tpl->assign('newVersion', ''); $this->tpl->assign('versionError', escape($exc->getMessage())); } + $this->tpl->assign('is_logged_in', $this->isLoggedIn); $this->tpl->assign('feedurl', escape(index_url($_SERVER))); $searchcrits = ''; // Search criteria if (!empty($_GET['searchtags'])) { @@ -59,26 +95,44 @@ class PageBuilder } $this->tpl->assign('searchcrits', $searchcrits); $this->tpl->assign('source', index_url($_SERVER)); - $this->tpl->assign('version', shaarli_version); - $this->tpl->assign('scripturl', index_url($_SERVER)); - $this->tpl->assign('pagetitle', 'Shaarli'); - $this->tpl->assign('privateonly', !empty($_SESSION['privateonly'])); // Show only private links? - if ($conf->exists('title')) { - $this->tpl->assign('pagetitle', $conf->get('title')); - } - if ($conf->exists('titleLink')) { - $this->tpl->assign('titleLink', $conf->get('titleLink')); + $this->tpl->assign('version', SHAARLI_VERSION); + $this->tpl->assign( + 'version_hash', + ApplicationUtils::getVersionHash(SHAARLI_VERSION, $this->conf->get('credentials.salt')) + ); + $this->tpl->assign('index_url', index_url($_SERVER)); + $visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; + $this->tpl->assign('visibility', $visibility); + $this->tpl->assign('untaggedonly', !empty($_SESSION['untaggedonly'])); + $this->tpl->assign('pagetitle', $this->conf->get('general.title', 'Shaarli')); + if ($this->conf->exists('general.header_link')) { + $this->tpl->assign('titleLink', $this->conf->get('general.header_link')); } - if ($conf->exists('pagetitle')) { - $this->tpl->assign('pagetitle', $conf->get('pagetitle')); + $this->tpl->assign('shaarlititle', $this->conf->get('general.title', 'Shaarli')); + $this->tpl->assign('openshaarli', $this->conf->get('security.open_shaarli', false)); + $this->tpl->assign('showatom', $this->conf->get('feed.show_atom', true)); + $this->tpl->assign('feed_type', $this->conf->get('feed.show_atom', true) !== false ? 'atom' : 'rss'); + $this->tpl->assign('hide_timestamps', $this->conf->get('privacy.hide_timestamps', false)); + $this->tpl->assign('token', $this->token); + + if ($this->linkDB !== null) { + $this->tpl->assign('tags', $this->linkDB->linksCountPerTag()); } - $this->tpl->assign('shaarlititle', $conf->get('title', 'Shaarli')); - $this->tpl->assign('openshaarli', $conf->get('config.OPEN_SHAARLI', false)); - $this->tpl->assign('showatom', $conf->get('config.SHOW_ATOM', false)); - // FIXME! Globals - if (!empty($GLOBALS['plugin_errors'])) { - $this->tpl->assign('plugin_errors', $GLOBALS['plugin_errors']); + + $this->tpl->assign( + 'thumbnails_enabled', + $this->conf->get('thumbnails.mode', Thumbnailer::MODE_NONE) !== Thumbnailer::MODE_NONE + ); + $this->tpl->assign('thumbnails_width', $this->conf->get('thumbnails.width')); + $this->tpl->assign('thumbnails_height', $this->conf->get('thumbnails.height')); + + if (! empty($_SESSION['warnings'])) { + $this->tpl->assign('global_warnings', $_SESSION['warnings']); + unset($_SESSION['warnings']); } + + // To be removed with a proper theme configuration. + $this->tpl->assign('conf', $this->conf); } /** @@ -89,7 +143,6 @@ class PageBuilder */ public function assign($placeholder, $value) { - // Lazy initialization if ($this->tpl === false) { $this->initialize(); } @@ -105,18 +158,18 @@ class PageBuilder */ public function assignAll($data) { - // Lazy initialization if ($this->tpl === false) { $this->initialize(); } - if (empty($data) || !is_array($data)){ + if (empty($data) || !is_array($data)) { return false; } foreach ($data as $key => $value) { $this->assign($key, $value); } + return true; } /** @@ -127,10 +180,10 @@ class PageBuilder */ public function renderPage($page) { - // Lazy initialization - if ($this->tpl===false) { + if ($this->tpl === false) { $this->initialize(); } + $this->tpl->draw($page); } @@ -140,9 +193,12 @@ class PageBuilder * * @param string $message A messate to display what is not found */ - public function render404($message = 'The page you are trying to reach does not exist or has been deleted.') + public function render404($message = '') { - header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); + if (empty($message)) { + $message = t('The page you are trying to reach does not exist or has been deleted.'); + } + header($_SERVER['SERVER_PROTOCOL'] .' '. t('404 Not Found')); $this->tpl->assign('error_message', $message); $this->renderPage('404'); }