diff options
author | plegall <plg@piwigo.org> | 2010-03-17 23:50:53 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2010-03-17 23:50:53 +0000 |
commit | cd00dffa7210a16063ab8e8f7811929b75f9a8e8 (patch) | |
tree | 530c3db41beecbaeac6381dcb4389cacf3d5ad07 | |
parent | 3c6ef3d16d9746767647e88e0ba083e37855e03c (diff) |
feature 1515: the new admin menu organization implies to tell the accordion
menu which section to open on page load.
I've moved the single function in functions_themes.inc.php to function.php to
avoid misunderstanding with theme manager.
Ability to preset the active menu (in the future, a plugin may add its admin
page anywhere in the menu, this features needs other change to be possible)
git-svn-id: http://piwigo.org/svn/trunk@5173 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | admin.php | 2 | ||||
-rw-r--r-- | admin/include/functions.php | 76 | ||||
-rw-r--r-- | admin/include/functions_themes.inc.php | 58 | ||||
-rw-r--r-- | admin/themes/clear/themeconf.inc.php | 5 | ||||
-rw-r--r-- | admin/themes/default/template/admin.tpl | 2 | ||||
-rw-r--r-- | admin/themes/roma/themeconf.inc.php | 5 |
6 files changed, 79 insertions, 69 deletions
@@ -164,6 +164,8 @@ include(PHPWG_ROOT_PATH.'admin/'.$page['page'].'.php'); // | errors & infos | // +-----------------------------------------------------------------------+ +$template->assign('ACTIVE_MENU', get_active_menu($page['page'])); + if (count($page['errors']) != 0) { $template->assign('errors', $page['errors']); diff --git a/admin/include/functions.php b/admin/include/functions.php index 14e975b12..eb6a4181b 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -1905,4 +1905,80 @@ function get_newsletter_subscribe_base_url($language) { return 'http://'.$subscribe_domain.'/announcement/subscribe/'; } + +/** + * Accordion menus need to know which section to open by default when + * loading the page + */ +function get_active_menu($menu_page) +{ + global $page; + + if (isset($page['active_menu'])) + { + return $page['active_menu']; + } + + // specific cases + if ('element_set' == $menu_page) + { + if (isset($_GET['cat']) and is_numeric($_GET['cat'])) + { + return 1; + } + else + { + return 0; + } + } + + switch ($menu_page) + { + case 'photos_add': + case 'upload': + case 'comments': // really needs to be moved somewhere else + case 'rating': + case 'tags': + case 'picture_modify': + return 0; + + case 'site_manager': + case 'site_update': + case 'cat_list': + case 'cat_modify': + case 'cat_move': + case 'cat_options': + case 'cat_perm': + case 'permalinks': + return 1; + + case 'user_list': + case 'user_perm': + case 'group_list': + case 'group_perm': + case 'notification_by_mail': + return 2; + + case 'plugins_list': + case 'plugins_update': + case 'plugins_new': + case 'plugin': + return 3; + + case 'stats': + case 'history': + case 'maintenance': + case 'advanced_feature': + case 'thumbnail': + return 4; + + case 'configuration': + case 'extend_for_templates': + case 'menubar': + case 'themes_new': + case 'themes_installed': + return 5; + } + return 0; +} ?>
\ No newline at end of file diff --git a/admin/include/functions_themes.inc.php b/admin/include/functions_themes.inc.php deleted file mode 100644 index 364bd1f3a..000000000 --- a/admin/include/functions_themes.inc.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Accordion menus need to be stable (called by themeconf.inc which need it) - */ -function selected_admin_menu() -{ - if (isset($_GET['page'])) - { - switch ($_GET['page']) { - case 'configuration': - case 'extend_for_templates': - case 'menubar': - return 1; - case 'site_manager': - case 'site_update': - case 'cat_list': - case 'cat_modify': - case 'cat_move': - case 'cat_options': - case 'cat_perm': - case 'permalinks': - return 2; - case 'element_set': - if (isset($_GET['cat']) and is_numeric($_GET['cat']) ) { - return 2; - } - case 'picture_modify': - return 3; - case 'comments': - case 'upload': - case 'thumbnail': - case 'rating': - case 'tags': - return 3; - case 'user_list': - case 'user_perm': - case 'group_list': - case 'group_perm': - case 'notification_by_mail': - return 4; - case 'stats': - case 'history': - case 'maintenance': - case 'advanced_feature': - case 'plugins_list': - case 'plugins_update': - case 'plugins_new': - case 'plugin': - return 5; - } - } - if (isset($_GET['plgmenu'])) /* Later added plugins will add plgmenu in url */ - { - return 5; - } - return 0; -} -?>
\ No newline at end of file diff --git a/admin/themes/clear/themeconf.inc.php b/admin/themes/clear/themeconf.inc.php index de1d34209..e007a971d 100644 --- a/admin/themes/clear/themeconf.inc.php +++ b/admin/themes/clear/themeconf.inc.php @@ -1,12 +1,7 @@ <?php
-if (!function_exists('selected_admin_menu'))
-{
- include_once(PHPWG_ROOT_PATH.'admin/include/functions_themes.inc.php');
-}
$themeconf = array(
'theme' => 'clear',
'parent' => 'default',
'admin_icon_dir' => 'admin/themes/clear/icon',
- 'selected_admin_menu' => selected_admin_menu(),
);
?>
diff --git a/admin/themes/default/template/admin.tpl b/admin/themes/default/template/admin.tpl index 0c029031d..bd63518a9 100644 --- a/admin/themes/default/template/admin.tpl +++ b/admin/themes/default/template/admin.tpl @@ -7,7 +7,7 @@ jQuery().ready(function(){ldelim} jQuery('#menubar').accordion({ldelim} header: "dt.rdion", event: "click", - active: {$U_ACTIVE_MENU|default:$themeconf.selected_admin_menu} + active: {$ACTIVE_MENU} }); }); </script> diff --git a/admin/themes/roma/themeconf.inc.php b/admin/themes/roma/themeconf.inc.php index 1260576ab..886ed60db 100644 --- a/admin/themes/roma/themeconf.inc.php +++ b/admin/themes/roma/themeconf.inc.php @@ -1,11 +1,6 @@ <?php -if (!function_exists('selected_admin_menu')) -{ - include_once(PHPWG_ROOT_PATH.'admin/include/functions_themes.inc.php'); -} $themeconf = array( 'theme' => 'roma', 'parent' => 'default', - 'selected_admin_menu' => selected_admin_menu(), ); ?> |