From 7e6e703db7fdbe410e60c8932a1691210958b303 Mon Sep 17 00:00:00 2001 From: secretr Date: Sat, 10 Jan 2009 11:42:19 +0000 Subject: [PATCH] Admin Submenus - plugin support added, submenus added for forum plugin (example usage), admin_navigation func moved to admin_shortcodes batch. --- e107_files/shortcode/admin_navigation.php | 132 --------------- .../shortcode/batch/admin_shortcodes.php | 3 +- .../batch/admin_shortcodes_class.php | 150 +++++++++++++++++- e107_plugins/forum/plugin.xml | 6 +- 4 files changed, 154 insertions(+), 137 deletions(-) delete mode 100644 e107_files/shortcode/admin_navigation.php diff --git a/e107_files/shortcode/admin_navigation.php b/e107_files/shortcode/admin_navigation.php deleted file mode 100644 index 158971e34..000000000 --- a/e107_files/shortcode/admin_navigation.php +++ /dev/null @@ -1,132 +0,0 @@ -sql; - - parse_str($parm, $parms); - $tmpl = strtoupper(varset($parms['tmpl'], 'E_ADMIN_NAVIGATION')); - global $$tmpl; - - require(e_ADMIN.'ad_links.php'); - require_once(e_HANDLER.'admin_handler.php'); - - - - - // MAIN LINK - $menu_vars = array(); - $menu_vars['main']['text'] = ADLAN_151; - $menu_vars['main']['link'] = e_ADMIN_ABS.'admin.php'; - $menu_vars['main']['image'] = "".ADLAN_151.""; - $menu_vars['main']['image_src'] = ADLAN_151; - $menu_vars['main']['perm'] = ''; - - //ALL OTHER ROOT LINKS - temporary data transformation - data structure will be changed in the future and this block will be removed - $cnt = count($admin_cat['id']); - for ($i = 1; $i <= $cnt; $i++) - { - $id = $admin_cat['id'][$i]; - $menu_vars[$id]['text'] = $admin_cat['title'][$i]; - $menu_vars[$id]['description'] = $admin_cat['title'][$i]; - $menu_vars[$id]['link'] = '#'; - $menu_vars[$id]['image'] = "".$admin_cat["; - $menu_vars[$id]['image_large'] = "".$admin_cat["; - $menu_vars[$id]['image_src'] = $admin_cat['img'][$i]; - $menu_vars[$id]['image_large_src'] = $admin_cat['lrg_img'][$i]; - $menu_vars[$id]['perm'] = ''; - $menu_vars[$id]['sort'] = $admin_cat['sort'][$i]; - } - - //CORE SUBLINKS - foreach ($array_functions as $key => $subitem) - { - $catid = $admin_cat['id'][$subitem[4]]; - $tmp = array(); - - $tmp['text'] = $subitem[1]; - $tmp['description'] = $subitem[2]; - $tmp['link'] = $subitem[0]; - $tmp['image'] = $subitem[5]; - $tmp['image_large'] = $subitem[6]; - $tmp['image_src'] = ''; - $tmp['image_large_src'] = ''; - $tmp['perm'] = $subitem[3]; - $tmp['sub_class'] = ''; - $tmp['sort'] = false; - - if($pref['admin_slidedown_subs'] && varsettrue($array_sub_functions[$key])) - { - $tmp['sub_class'] = 'sub'; - foreach ($array_sub_functions[$key] as $subkey => $subsubitem) - { - $subid = $key.'_'.$subkey; - $tmp['sub'][$subid]['text'] = $subsubitem[1]; - $tmp['sub'][$subid]['description'] = $subsubitem[2]; - $tmp['sub'][$subid]['link'] = $subsubitem[0]; - $tmp['sub'][$subid]['image'] = $subsubitem[5]; - $tmp['sub'][$subid]['image_large'] = $subsubitem[6]; - $tmp['sub'][$subid]['image_src'] = ''; - $tmp['sub'][$subid]['image_large_src'] = ''; - $tmp['sub'][$subid]['perm'] = $subsubitem[3]; - } - } - - if($tmp) $menu_vars[$catid]['sub'][$key] = $tmp; - } - - //PLUGINS - require_once(e_HANDLER.'plugin_class.php'); - $plug = new e107plugin; - $tmp = array(); - - if($sql->db_Select("plugin", "*", "plugin_installflag=1 ORDER BY plugin_path")) - { - while($row = $sql->db_Fetch()) - { - //if(getperms('P'.$row['plugin_id'])) - //{ - if($plug->parse_plugin($row['plugin_path'])) - { - $plug_vars = $plug->plug_vars; - loadLanFiles($row['plugin_path'], 'admin'); - if($plug_vars['administration']['configFile']) - { - $plugpath = isset($plug_vars['plugin_php']) ? e_PLUGIN_ABS : e_PLUGIN_ABS.$row['plugin_path'].'/'; - $icon_src = isset($plug_vars['administration']['iconSmall']) ? $plugpath.'/'.$plug_vars['administration']['iconSmall'] : ''; - $icon_src_lrg = isset($plug_vars['administration']['icon']) ? $plugpath.'/'.$plug_vars['administration']['iconSmall'] : ''; - $id = 'plugnav-'.$row['plugin_path']; - - - $tmp[$id]['text'] = $e107->tp->toHTML($plug_vars['@attributes']['name'], FALSE, "defs"); - $tmp[$id]['description'] = $plug_vars['description']; - $tmp[$id]['link'] = e_PLUGIN_ABS.$row['plugin_path'].'/'.$plug_vars['administration']['configFile']; - $tmp[$id]['image'] = $icon_src ? "{$tmp[" : E_16_PLUGIN; - $tmp[$id]['image_large'] = $icon_src_lrg ? "{$tmp[" : $icon_src_lrg; - $tmp[$id]['image_src'] = $icon_src; - $tmp[$id]['image_large_src'] = $icon_src_lrg; - $tmp[$id]['perm'] = 'P'.$row['plugin_id']; - $tmp[$id]['sub_class'] = ''; - - //TODO plugins sublinks support - } - } - //} - } - $menu_vars['plugMenu']['sub'] += multiarray_sort($tmp, 'text'); - - } - - return e_admin_menu('', '', $menu_vars, $$tmpl, false, false); - -} \ No newline at end of file diff --git a/e107_files/shortcode/batch/admin_shortcodes.php b/e107_files/shortcode/batch/admin_shortcodes.php index 446958634..7266ef656 100644 --- a/e107_files/shortcode/batch/admin_shortcodes.php +++ b/e107_files/shortcode/batch/admin_shortcodes.php @@ -1,7 +1,7 @@ sql; + + parse_str($parm, $parms); + $tmpl = strtoupper(varset($parms['tmpl'], 'E_ADMIN_NAVIGATION')); + global $$tmpl; + + require(e_ADMIN.'ad_links.php'); + require_once(e_HANDLER.'admin_handler.php'); + + + + + // MAIN LINK + $menu_vars = array(); + $menu_vars['main']['text'] = ADLAN_151; + $menu_vars['main']['link'] = e_ADMIN_ABS.'admin.php'; + $menu_vars['main']['image'] = "".ADLAN_151.""; + $menu_vars['main']['image_src'] = ADLAN_151; + $menu_vars['main']['perm'] = ''; + + //ALL OTHER ROOT LINKS - temporary data transformation - data structure will be changed in the future and this block will be removed + $cnt = count($admin_cat['id']); + for ($i = 1; $i <= $cnt; $i++) + { + $id = $admin_cat['id'][$i]; + $menu_vars[$id]['text'] = $admin_cat['title'][$i]; + $menu_vars[$id]['description'] = $admin_cat['title'][$i]; + $menu_vars[$id]['link'] = '#'; + $menu_vars[$id]['image'] = "".$admin_cat["; + $menu_vars[$id]['image_large'] = "".$admin_cat["; + $menu_vars[$id]['image_src'] = $admin_cat['img'][$i]; + $menu_vars[$id]['image_large_src'] = $admin_cat['lrg_img'][$i]; + $menu_vars[$id]['perm'] = ''; + $menu_vars[$id]['sort'] = $admin_cat['sort'][$i]; + } + + //CORE SUBLINKS + foreach ($array_functions as $key => $subitem) + { + $catid = $admin_cat['id'][$subitem[4]]; + $tmp = array(); + + $tmp['text'] = $subitem[1]; + $tmp['description'] = $subitem[2]; + $tmp['link'] = $subitem[0]; + $tmp['image'] = $subitem[5]; + $tmp['image_large'] = $subitem[6]; + $tmp['image_src'] = ''; + $tmp['image_large_src'] = ''; + $tmp['perm'] = $subitem[3]; + $tmp['sub_class'] = ''; + $tmp['sort'] = false; + + if($pref['admin_slidedown_subs'] && varsettrue($array_sub_functions[$key])) + { + $tmp['sub_class'] = 'sub'; + foreach ($array_sub_functions[$key] as $subkey => $subsubitem) + { + $subid = $key.'_'.$subkey; + $tmp['sub'][$subid]['text'] = $subsubitem[1]; + $tmp['sub'][$subid]['description'] = $subsubitem[2]; + $tmp['sub'][$subid]['link'] = $subsubitem[0]; + $tmp['sub'][$subid]['image'] = $subsubitem[5]; + $tmp['sub'][$subid]['image_large'] = $subsubitem[6]; + $tmp['sub'][$subid]['image_src'] = ''; + $tmp['sub'][$subid]['image_large_src'] = ''; + $tmp['sub'][$subid]['perm'] = $subsubitem[3]; + } + } + + if($tmp) $menu_vars[$catid]['sub'][$key] = $tmp; + } + + //PLUGINS + require_once(e_HANDLER.'plugin_class.php'); + $plug = new e107plugin; + $tmp = array(); + + if($sql->db_Select("plugin", "*", "plugin_installflag=1 ORDER BY plugin_path")) + { + while($row = $sql->db_Fetch()) + { + if($plug->parse_plugin($row['plugin_path'])) + { + $plug_vars = $plug->plug_vars; + loadLanFiles($row['plugin_path'], 'admin'); + if($plug_vars['administration']['configFile']) + { + $plugpath = isset($plug_vars['plugin_php']) ? e_PLUGIN_ABS : e_PLUGIN_ABS.$row['plugin_path'].'/'; + $icon_src = isset($plug_vars['administration']['iconSmall']) ? $plugpath.$plug_vars['administration']['iconSmall'] : ''; + $icon_src_lrg = isset($plug_vars['administration']['icon']) ? $plugpath.$plug_vars['administration']['iconSmall'] : ''; + $id = 'plugnav-'.$row['plugin_path']; + + + $tmp[$id]['text'] = $e107->tp->toHTML($plug_vars['@attributes']['name'], FALSE, "defs"); + $tmp[$id]['description'] = $plug_vars['description']; + $tmp[$id]['link'] = e_PLUGIN_ABS.$row['plugin_path'].'/'.$plug_vars['administration']['configFile']; + $tmp[$id]['image'] = $icon_src ? "{$tmp[" : E_16_PLUGIN; + $tmp[$id]['image_large'] = $icon_src_lrg ? "{$tmp[" : $icon_src_lrg; + $tmp[$id]['image_src'] = $icon_src; + $tmp[$id]['image_large_src'] = $icon_src_lrg; + $tmp[$id]['perm'] = 'P'.$row['plugin_id']; + $tmp[$id]['sub_class'] = ''; + $tmp[$id]['sort'] = false; + + if($pref['admin_slidedown_subs'] && varsettrue($plug_vars['administration']['subMenuItem'])) + { + $tmp[$id]['sub_class'] = 'sub'; + foreach ($plug_vars['administration']['subMenuItem'] as $subkey => $plugsub) + { + $subid = $id.'-'.$subkey; + $predef_icons = array('add', 'manage', 'settings'); + $plugsub = $plugsub['@attributes']; + $icon_src = in_array($plugsub['icon'], $predef_icons) ? e_IMAGE_ABS."admin_images/{$plugsub['icon']}_16.png" : ( $plugsub['icon'] ? $plugpath.$plugsub['icon'] : ''); + + $tmp[$id]['sub'][$subid]['text'] = $e107->tp->toHTML($plugsub['title'], FALSE, "defs"); + $tmp[$id]['sub'][$subid]['description'] = $plug_vars['description']; + $tmp[$id]['sub'][$subid]['link'] = e_PLUGIN_ABS.$row['plugin_path'].'/'.$plugsub['link']; + $tmp[$id]['sub'][$subid]['image'] = $icon_src ? "{$tmp[" : ''; + $tmp[$id]['sub'][$subid]['image_large'] = ''; + $tmp[$id]['sub'][$subid]['image_src'] = $icon_src; + $tmp[$id]['sub'][$subid]['image_large_src'] = ''; + $tmp[$id]['sub'][$subid]['perm'] = varset($plugsub['perm']) ? $plugsub['perm'] : 'P'.$row['plugin_id']; + $tmp[$id]['sub'][$subid]['sub_class'] = ''; + } + } + } + } + } + $menu_vars['plugMenu']['sub'] += multiarray_sort($tmp, 'text'); + } + + return e_admin_menu('', '', $menu_vars, $$tmpl, false, false); + } + } + + ?> \ No newline at end of file diff --git a/e107_plugins/forum/plugin.xml b/e107_plugins/forum/plugin.xml index 3339d511b..59a8b367b 100755 --- a/e107_plugins/forum/plugin.xml +++ b/e107_plugins/forum/plugin.xml @@ -1,11 +1,15 @@ - + This plugin is a fully featured Forum system forum forum_admin.php + + + + images/forums_32.png images/forums_16.png Configure Forum