diff options
author | rub <rub@piwigo.org> | 2007-01-17 22:27:10 +0000 |
---|---|---|
committer | rub <rub@piwigo.org> | 2007-01-17 22:27:10 +0000 |
commit | 94755e7bd764e2e4ccfa6cbc146b324ac27dc116 (patch) | |
tree | dd0844ccd0eaaf4cd1a50327f7abfb4d9daadd4a | |
parent | 5d9a865fe1931869d3d9edb19f64d66783a0f4f4 (diff) |
Issue 0000624: Enhanced Links Menu
Add optional parameter values:
o Allow to open url of links menu on new window.
o Dynamic visibility of links menu
It's a proposition.
git-svn-id: http://piwigo.org/svn/trunk@1728 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | include/config_default.inc.php | 29 | ||||
-rw-r--r-- | include/menubar.inc.php | 33 | ||||
-rw-r--r-- | template/yoga/menubar.tpl | 9 |
3 files changed, 57 insertions, 14 deletions
diff --git a/include/config_default.inc.php b/include/config_default.inc.php index 42a7cae8e..2b9dd1d24 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -164,11 +164,30 @@ $conf['show_version'] = true; // links : list of external links to add in the menu. An example is the best // than a long explanation : // -// $conf['links'] = array( -// 'http://phpwebgallery.net' => 'PWG website', -// 'http://forum.phpwebgallery.net' => 'PWG forum', -// 'http://phpwebgallery.net/doc' => 'PWG wiki' -// ); +// Simple use: +// for each link is associated a label +// $conf['links'] = array( +// 'http://phpwebgallery.net' => 'PWG website', +// 'http://forum.phpwebgallery.net' => 'PWG forum', +// 'http://phpwebgallery.net/doc' => 'PWG wiki' +// ); +// +// Advenced use: +// You can also used special options. Instead to pass a string like parameter value +// you can pass a array with different optional parameter values +// $conf['links'] = array( +// 'http://phpwebgallery.net' => array('label' => 'PWG website', 'new_window' => true, 'eval_visible' => 'return true;'), +// 'http://forum.phpwebgallery.net' => array('label' => 'For ADMIN', 'new_window' => true, 'eval_visible' => 'return is_admin();'), +// 'http://phpwebgallery.net/doc' => array('label' => 'For Guest', 'new_window' => true, 'eval_visible' => 'return $user[\'is_the_guest\'];'), +// ); +// +// Equivalence: +// $conf['links'] = array( +// 'http://phpwebgallery.net' => 'PWG website', +// ); +// $conf['links'] = array( +// 'http://phpwebgallery.net' => array('label' => 'PWG website', 'new_window' => false, 'visible' => 'return true;'), +// ); // // If the array is empty, the "Links" box won't be displayed on the main // page. diff --git a/include/menubar.inc.php b/include/menubar.inc.php index 09d08a902..0fcaf1cbc 100644 --- a/include/menubar.inc.php +++ b/include/menubar.inc.php @@ -53,15 +53,32 @@ $template->assign_vars( ); //-------------------------------------------------------------- external links -foreach ($conf['links'] as $url => $label) +foreach ($conf['links'] as $url => $url_data) { - $template->assign_block_vars( - 'links.link', - array( - 'URL' => $url, - 'LABEL' => $label - ) - ); + if (!is_array($url_data)) + { + $url_data = array('label' => $url_data); + } + + if + ( + (!isset($url_data['eval_visible'])) + or + (eval($url_data['eval_visible'])) + ) + { + $template->assign_block_vars( + 'links.link', + array( + 'URL' => $url, + 'LABEL' => $url_data['label'] + ) + ); + if (isset($url_data['new_window']) and $url_data['new_window']) + { + $template->assign_block_vars('links.link.new_window', array('1'=>'1')); + } + } } //------------------------------------------------------------------------ filter diff --git a/template/yoga/menubar.tpl b/template/yoga/menubar.tpl index 4a2425ecd..37dcd6995 100644 --- a/template/yoga/menubar.tpl +++ b/template/yoga/menubar.tpl @@ -6,7 +6,14 @@ <dd> <ul> <!-- BEGIN link --> - <li><a href="{links.link.URL}">{links.link.LABEL}</a></li> + <li> + <a href="{links.link.URL}" + <!-- BEGIN new_window --> + onclick="window.open(this.href, ''); return false;" + <!-- END new_window --> + >{links.link.LABEL} + </a> + </li> <!-- END link --> </ul> </dd> |