Handle errors raised by plugins in template. fixes #370

This commit is contained in:
ArthurHoaro 2015-11-08 13:22:44 +01:00
parent 89dfc37b0a
commit 056107ab4e
4 changed files with 48 additions and 22 deletions

View file

@ -1126,3 +1126,8 @@ div.dailyNoEntry {
.center { .center {
text-align: center; text-align: center;
} }
ul.errors {
color: red;
float: left;
}

View file

@ -55,8 +55,7 @@ $GLOBALS['config']['HIDE_PUBLIC_LINKS'] = false;
$GLOBALS['config']['ENABLED_PLUGINS'] = array('qrcode'); $GLOBALS['config']['ENABLED_PLUGINS'] = array('qrcode');
// Default plugins, default config - will be overriden by config.php and then plugin's config.php file. // 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'); define('shaarli_version', '0.5.4');
// http://server.com/x/shaarli --> /shaarli/ // http://server.com/x/shaarli --> /shaarli/
@ -580,28 +579,43 @@ class pageBuilder
function __construct() function __construct()
{ {
$this->tpl=false; $this->tpl = false;
} }
/**
* Initialize all default tpl tags.
*/
private function initialize() private function initialize()
{ {
$this->tpl = new RainTPL; $this->tpl = new RainTPL;
$this->tpl->assign('newversion',escape(checkUpdate())); $this->tpl->assign('newversion', escape(checkUpdate()));
$this->tpl->assign('feedurl',escape(index_url($_SERVER))); $this->tpl->assign('feedurl', escape(index_url($_SERVER)));
$searchcrits=''; // Search criteria $searchcrits = ''; // Search criteria
if (!empty($_GET['searchtags'])) $searchcrits.='&searchtags='.urlencode($_GET['searchtags']); if (!empty($_GET['searchtags'])) {
elseif (!empty($_GET['searchterm'])) $searchcrits.='&searchterm='.urlencode($_GET['searchterm']); $searchcrits .= '&searchtags=' . urlencode($_GET['searchtags']);
$this->tpl->assign('searchcrits',$searchcrits); }
$this->tpl->assign('source',index_url($_SERVER)); elseif (!empty($_GET['searchterm'])) {
$this->tpl->assign('version',shaarli_version); $searchcrits .= '&searchterm=' . urlencode($_GET['searchterm']);
$this->tpl->assign('scripturl',index_url($_SERVER)); }
$this->tpl->assign('pagetitle','Shaarli'); $this->tpl->assign('searchcrits', $searchcrits);
$this->tpl->assign('privateonly',!empty($_SESSION['privateonly'])); // Show only private links? $this->tpl->assign('source', index_url($_SERVER));
if (!empty($GLOBALS['title'])) $this->tpl->assign('pagetitle',$GLOBALS['title']); $this->tpl->assign('version', shaarli_version);
if (!empty($GLOBALS['titleLink'])) $this->tpl->assign('titleLink',$GLOBALS['titleLink']); $this->tpl->assign('scripturl', index_url($_SERVER));
if (!empty($GLOBALS['pagetitle'])) $this->tpl->assign('pagetitle',$GLOBALS['pagetitle']); $this->tpl->assign('pagetitle', 'Shaarli');
$this->tpl->assign('shaarlititle',empty($GLOBALS['title']) ? 'Shaarli': $GLOBALS['title'] ); $this->tpl->assign('privateonly', !empty($_SESSION['privateonly'])); // Show only private links?
return; 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) // The following assign() method is basically the same as RainTPL (except that it's lazy)

View file

@ -14,9 +14,9 @@ if (is_file(PluginManager::$PLUGINS_PATH . '/readityourself/config.php')) {
} }
if (!isset($GLOBALS['plugins']['READITYOUSELF_URL'])) { if (!isset($GLOBALS['plugins']['READITYOUSELF_URL'])) {
$GLOBALS['plugins']['errors'][] = 'Wallabag plugin error: '. $GLOBALS['plugins']['errors'][] = 'Readityourself plugin error: '.
'Please define "$GLOBALS[\'plugins\'][\'WALLABAG_URL\']" '. 'Please define "$GLOBALS[\'plugins\'][\'READITYOUSELF_URL\']" '.
'in "plugins/wallabag/config.php" or in your Shaarli config.php file.'; 'in "plugins/readityourself/config.php" or in your Shaarli config.php file.';
} }
/** /**

View file

@ -40,6 +40,13 @@
</ul> </ul>
</div> </div>
{if="!empty($plugin_errors) && isLoggedIn()"}
<ul class="errors">
{loop="plugin_errors"}
<li>{$value}</li>
{/loop}
</ul>
{/if}
<div class="clear"></div> <div class="clear"></div>