diff options
author | ArthurHoaro <arthur@hoa.ro> | 2016-05-10 23:48:51 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2016-05-13 08:48:18 +0200 |
commit | 03eb19ac60d54442332077fa35a9b0d4e33df365 (patch) | |
tree | 53e43d7995f714b7419497eb928c2ec1317db512 /index.php | |
parent | d95533778d86bb6c6de3b14a9da35e6d6e6428bd (diff) | |
download | Shaarli-03eb19ac60d54442332077fa35a9b0d4e33df365.tar.gz Shaarli-03eb19ac60d54442332077fa35a9b0d4e33df365.tar.zst Shaarli-03eb19ac60d54442332077fa35a9b0d4e33df365.zip |
Extract PageBuilder class from index.php
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 125 |
1 files changed, 2 insertions, 123 deletions
@@ -162,6 +162,7 @@ require_once 'application/LinkDB.php'; | |||
162 | require_once 'application/LinkFilter.php'; | 162 | require_once 'application/LinkFilter.php'; |
163 | require_once 'application/LinkUtils.php'; | 163 | require_once 'application/LinkUtils.php'; |
164 | require_once 'application/NetscapeBookmarkUtils.php'; | 164 | require_once 'application/NetscapeBookmarkUtils.php'; |
165 | require_once 'application/PageBuilder.php'; | ||
165 | require_once 'application/TimeZone.php'; | 166 | require_once 'application/TimeZone.php'; |
166 | require_once 'application/Url.php'; | 167 | require_once 'application/Url.php'; |
167 | require_once 'application/Utils.php'; | 168 | require_once 'application/Utils.php'; |
@@ -563,128 +564,6 @@ function tokenOk($token) | |||
563 | } | 564 | } |
564 | 565 | ||
565 | // ------------------------------------------------------------------------------------------ | 566 | // ------------------------------------------------------------------------------------------ |
566 | /* This class is in charge of building the final page. | ||
567 | (This is basically a wrapper around RainTPL which pre-fills some fields.) | ||
568 | p = new pageBuilder; | ||
569 | p.assign('myfield','myvalue'); | ||
570 | p.renderPage('mytemplate'); | ||
571 | |||
572 | */ | ||
573 | class pageBuilder | ||
574 | { | ||
575 | private $tpl; // RainTPL template | ||
576 | |||
577 | function __construct() | ||
578 | { | ||
579 | $this->tpl = false; | ||
580 | } | ||
581 | |||
582 | /** | ||
583 | * Initialize all default tpl tags. | ||
584 | */ | ||
585 | private function initialize() | ||
586 | { | ||
587 | $this->tpl = new RainTPL; | ||
588 | |||
589 | try { | ||
590 | $version = ApplicationUtils::checkUpdate( | ||
591 | shaarli_version, | ||
592 | $GLOBALS['config']['UPDATECHECK_FILENAME'], | ||
593 | $GLOBALS['config']['UPDATECHECK_INTERVAL'], | ||
594 | $GLOBALS['config']['ENABLE_UPDATECHECK'], | ||
595 | isLoggedIn(), | ||
596 | $GLOBALS['config']['UPDATECHECK_BRANCH'] | ||
597 | ); | ||
598 | $this->tpl->assign('newVersion', escape($version)); | ||
599 | $this->tpl->assign('versionError', ''); | ||
600 | |||
601 | } catch (Exception $exc) { | ||
602 | logm($GLOBALS['config']['LOG_FILE'], $_SERVER['REMOTE_ADDR'], $exc->getMessage()); | ||
603 | $this->tpl->assign('newVersion', ''); | ||
604 | $this->tpl->assign('versionError', escape($exc->getMessage())); | ||
605 | } | ||
606 | |||
607 | $this->tpl->assign('feedurl', escape(index_url($_SERVER))); | ||
608 | $searchcrits = ''; // Search criteria | ||
609 | if (!empty($_GET['searchtags'])) { | ||
610 | $searchcrits .= '&searchtags=' . urlencode($_GET['searchtags']); | ||
611 | } | ||
612 | if (!empty($_GET['searchterm'])) { | ||
613 | $searchcrits .= '&searchterm=' . urlencode($_GET['searchterm']); | ||
614 | } | ||
615 | $this->tpl->assign('searchcrits', $searchcrits); | ||
616 | $this->tpl->assign('source', index_url($_SERVER)); | ||
617 | $this->tpl->assign('version', shaarli_version); | ||
618 | $this->tpl->assign('scripturl', index_url($_SERVER)); | ||
619 | $this->tpl->assign('pagetitle', 'Shaarli'); | ||
620 | $this->tpl->assign('privateonly', !empty($_SESSION['privateonly'])); // Show only private links? | ||
621 | if (!empty($GLOBALS['title'])) { | ||
622 | $this->tpl->assign('pagetitle', $GLOBALS['title']); | ||
623 | } | ||
624 | if (!empty($GLOBALS['titleLink'])) { | ||
625 | $this->tpl->assign('titleLink', $GLOBALS['titleLink']); | ||
626 | } | ||
627 | if (!empty($GLOBALS['pagetitle'])) { | ||
628 | $this->tpl->assign('pagetitle', $GLOBALS['pagetitle']); | ||
629 | } | ||
630 | $this->tpl->assign('shaarlititle', empty($GLOBALS['title']) ? 'Shaarli': $GLOBALS['title']); | ||
631 | if (!empty($GLOBALS['plugin_errors'])) { | ||
632 | $this->tpl->assign('plugin_errors', $GLOBALS['plugin_errors']); | ||
633 | } | ||
634 | } | ||
635 | |||
636 | // The following assign() method is basically the same as RainTPL (except that it's lazy) | ||
637 | public function assign($what,$where) | ||
638 | { | ||
639 | if ($this->tpl===false) $this->initialize(); // Lazy initialization | ||
640 | $this->tpl->assign($what,$where); | ||
641 | } | ||
642 | |||
643 | /** | ||
644 | * Assign an array of data to the template builder. | ||
645 | * | ||
646 | * @param array $data Data to assign. | ||
647 | * | ||
648 | * @return false if invalid data. | ||
649 | */ | ||
650 | public function assignAll($data) | ||
651 | { | ||
652 | // Lazy initialization | ||
653 | if ($this->tpl === false) { | ||
654 | $this->initialize(); | ||
655 | } | ||
656 | |||
657 | if (empty($data) || !is_array($data)){ | ||
658 | return false; | ||
659 | } | ||
660 | |||
661 | foreach ($data as $key => $value) { | ||
662 | $this->assign($key, $value); | ||
663 | } | ||
664 | } | ||
665 | |||
666 | // Render a specific page (using a template). | ||
667 | // e.g. pb.renderPage('picwall') | ||
668 | public function renderPage($page) | ||
669 | { | ||
670 | if ($this->tpl===false) $this->initialize(); // Lazy initialization | ||
671 | $this->tpl->draw($page); | ||
672 | } | ||
673 | |||
674 | /** | ||
675 | * Render a 404 page (uses the template : tpl/404.tpl) | ||
676 | * | ||
677 | * usage : $PAGE->render404('The link was deleted') | ||
678 | * @param string $message A messate to display what is not found | ||
679 | */ | ||
680 | public function render404($message='The page you are trying to reach does not exist or has been deleted.') { | ||
681 | header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); | ||
682 | $this->tpl->assign('error_message', $message); | ||
683 | $this->renderPage('404'); | ||
684 | } | ||
685 | } | ||
686 | |||
687 | // ------------------------------------------------------------------------------------------ | ||
688 | // Daily RSS feed: 1 RSS entry per day giving all the links on that day. | 567 | // Daily RSS feed: 1 RSS entry per day giving all the links on that day. |
689 | // Gives the last 7 days (which have links). | 568 | // Gives the last 7 days (which have links). |
690 | // This RSS feed cannot be filtered. | 569 | // This RSS feed cannot be filtered. |
@@ -912,7 +791,7 @@ function renderPage() | |||
912 | die($e->getMessage()); | 791 | die($e->getMessage()); |
913 | } | 792 | } |
914 | 793 | ||
915 | $PAGE = new pageBuilder; | 794 | $PAGE = new PageBuilder(); |
916 | 795 | ||
917 | // Determine which page will be rendered. | 796 | // Determine which page will be rendered. |
918 | $query = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : ''; | 797 | $query = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : ''; |