From 056107ab4eae0a4867cf8d55de77d31f8868b899 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sun, 8 Nov 2015 13:22:44 +0100 Subject: [PATCH] Handle errors raised by plugins in template. fixes #370 --- inc/shaarli.css | 5 +++ index.php | 52 ++++++++++++++--------- plugins/readityourself/readityourself.php | 6 +-- tpl/page.header.html | 7 +++ 4 files changed, 48 insertions(+), 22 deletions(-) diff --git a/inc/shaarli.css b/inc/shaarli.css index d119348..5578610 100644 --- a/inc/shaarli.css +++ b/inc/shaarli.css @@ -1126,3 +1126,8 @@ div.dailyNoEntry { .center { text-align: center; } + +ul.errors { + color: red; + float: left; +} \ No newline at end of file diff --git a/index.php b/index.php index c82735c..ea7bf4d 100755 --- a/index.php +++ b/index.php @@ -55,8 +55,7 @@ $GLOBALS['config']['HIDE_PUBLIC_LINKS'] = false; $GLOBALS['config']['ENABLED_PLUGINS'] = array('qrcode'); // Default plugins, default config - will be overriden by config.php and then plugin's config.php file. -$GLOBALS['plugins']['READITYOUSELF_URL'] = 'http://someurl.com'; -$GLOBALS['plugins']['WALLABAG_URL'] = 'https://demo.wallabag.org/'; +//$GLOBALS['plugins']['WALLABAG_URL'] = 'https://demo.wallabag.org/'; // ----------------------------------------------------------------------------------------------- define('shaarli_version', '0.5.4'); // http://server.com/x/shaarli --> /shaarli/ @@ -580,28 +579,43 @@ class pageBuilder function __construct() { - $this->tpl=false; + $this->tpl = false; } + /** + * Initialize all default tpl tags. + */ private function initialize() { $this->tpl = new RainTPL; - $this->tpl->assign('newversion',escape(checkUpdate())); - $this->tpl->assign('feedurl',escape(index_url($_SERVER))); - $searchcrits=''; // Search criteria - if (!empty($_GET['searchtags'])) $searchcrits.='&searchtags='.urlencode($_GET['searchtags']); - elseif (!empty($_GET['searchterm'])) $searchcrits.='&searchterm='.urlencode($_GET['searchterm']); - $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 (!empty($GLOBALS['title'])) $this->tpl->assign('pagetitle',$GLOBALS['title']); - if (!empty($GLOBALS['titleLink'])) $this->tpl->assign('titleLink',$GLOBALS['titleLink']); - if (!empty($GLOBALS['pagetitle'])) $this->tpl->assign('pagetitle',$GLOBALS['pagetitle']); - $this->tpl->assign('shaarlititle',empty($GLOBALS['title']) ? 'Shaarli': $GLOBALS['title'] ); - return; + $this->tpl->assign('newversion', escape(checkUpdate())); + $this->tpl->assign('feedurl', escape(index_url($_SERVER))); + $searchcrits = ''; // Search criteria + if (!empty($_GET['searchtags'])) { + $searchcrits .= '&searchtags=' . urlencode($_GET['searchtags']); + } + elseif (!empty($_GET['searchterm'])) { + $searchcrits .= '&searchterm=' . urlencode($_GET['searchterm']); + } + $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 (!empty($GLOBALS['title'])) { + $this->tpl->assign('pagetitle', $GLOBALS['title']); + } + if (!empty($GLOBALS['titleLink'])) { + $this->tpl->assign('titleLink', $GLOBALS['titleLink']); + } + if (!empty($GLOBALS['pagetitle'])) { + $this->tpl->assign('pagetitle', $GLOBALS['pagetitle']); + } + $this->tpl->assign('shaarlititle', empty($GLOBALS['title']) ? 'Shaarli': $GLOBALS['title']); + if (!empty($GLOBALS['plugins']['errors'])) { + $this->tpl->assign('plugin_errors', $GLOBALS['plugins']['errors']); + } } // The following assign() method is basically the same as RainTPL (except that it's lazy) diff --git a/plugins/readityourself/readityourself.php b/plugins/readityourself/readityourself.php index ee7579c..68efc54 100644 --- a/plugins/readityourself/readityourself.php +++ b/plugins/readityourself/readityourself.php @@ -14,9 +14,9 @@ if (is_file(PluginManager::$PLUGINS_PATH . '/readityourself/config.php')) { } if (!isset($GLOBALS['plugins']['READITYOUSELF_URL'])) { - $GLOBALS['plugins']['errors'][] = 'Wallabag plugin error: '. - 'Please define "$GLOBALS[\'plugins\'][\'WALLABAG_URL\']" '. - 'in "plugins/wallabag/config.php" or in your Shaarli config.php file.'; + $GLOBALS['plugins']['errors'][] = 'Readityourself plugin error: '. + 'Please define "$GLOBALS[\'plugins\'][\'READITYOUSELF_URL\']" '. + 'in "plugins/readityourself/config.php" or in your Shaarli config.php file.'; } /** diff --git a/tpl/page.header.html b/tpl/page.header.html index 1d46d80..52429f2 100644 --- a/tpl/page.header.html +++ b/tpl/page.header.html @@ -40,6 +40,13 @@ +{if="!empty($plugin_errors) && isLoggedIn()"} + +{/if}