aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrub <rub@piwigo.org>2007-01-17 22:27:10 +0000
committerrub <rub@piwigo.org>2007-01-17 22:27:10 +0000
commit94755e7bd764e2e4ccfa6cbc146b324ac27dc116 (patch)
treedd0844ccd0eaaf4cd1a50327f7abfb4d9daadd4a
parent5d9a865fe1931869d3d9edb19f64d66783a0f4f4 (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.php29
-rw-r--r--include/menubar.inc.php33
-rw-r--r--template/yoga/menubar.tpl9
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>