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
This commit is contained in:
rub 2007-01-17 22:27:10 +00:00
parent 5d9a865fe1
commit 94755e7bd7
3 changed files with 57 additions and 14 deletions

View file

@ -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.

View file

@ -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

View file

@ -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>