From 43b337e93835be282ba9e47036eda144190cc31b Mon Sep 17 00:00:00 2001 From: mcfly Date: Sun, 27 Jan 2008 05:16:03 +0000 Subject: [PATCH] continuing the plugin.xml work --- e107_files/shortcode/admin_alt_nav.sc | 23 +++++++---- e107_handlers/plugin_class.php | 56 +++++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 11 deletions(-) diff --git a/e107_files/shortcode/admin_alt_nav.sc b/e107_files/shortcode/admin_alt_nav.sc index 6c64fb7f3..5fe912dc6 100644 --- a/e107_files/shortcode/admin_alt_nav.sc +++ b/e107_files/shortcode/admin_alt_nav.sc @@ -58,18 +58,25 @@ if (ADMIN) { } $render_plugins = FALSE; + include_once(e_HANDLER.'plugin_class.php'); + $plug = new e107plugin; if($sql -> db_Select("plugin", "*", "plugin_installflag=1 ORDER BY plugin_path")){ while($row = $sql -> db_Fetch()){ if(getperms('P'.$row['plugin_id'])){ - include_once(e_PLUGIN.$row['plugin_path']."/plugin.php"); - if($eplug_conffile){ - $eplug_name = $tp->toHTML($eplug_name,FALSE,"defs"); - $plugin_icon = $eplug_icon_small ? "".$eplug_caption."" : E_16_PLUGIN; - $plugin_array[ucfirst($eplug_name)] = adnav_main($eplug_name, e_PLUGIN.$row['plugin_path']."/".$eplug_conffile, $plugin_icon); + if($plug->parse_plugin(e_PLUGIN.$row['plugin_path'].'/')) + { + $plug_vars = $plug->plug_vars; +// print_a($plug_vars); +// exit; +// include_once(e_PLUGIN.$row['plugin_path']."/plugin.php"); + if($plug_vars['administration']['configFile']){ + $plug_vars['name'] = $tp->toHTML($plug_vars['name'], FALSE, "defs"); + $plugin_icon = $plug_vars['administration']['iconSmall'] ? "".$plug_vars[" : E_16_PLUGIN; + $plugin_array[ucfirst($plug_vars['name'])] = adnav_main($plug_vars['name'], e_PLUGIN.$row['plugin_path']."/".$plug_vars['administration']['configFile'], $plugin_icon); + } + $render_plugins = TRUE; + $active_plugs = TRUE; } - unset($eplug_conffile, $eplug_name, $eplug_caption, $eplug_icon_small); - $render_plugins = TRUE; - $active_plugs = TRUE; } } ksort($plugin_array, SORT_STRING); diff --git a/e107_handlers/plugin_class.php b/e107_handlers/plugin_class.php index 3e6bc8608..97c3a5137 100644 --- a/e107_handlers/plugin_class.php +++ b/e107_handlers/plugin_class.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/plugin_class.php,v $ -| $Revision: 1.18 $ -| $Date: 2008-01-27 01:34:59 $ +| $Revision: 1.19 $ +| $Date: 2008-01-27 05:16:03 $ | $Author: mcfly_e107 $ +----------------------------------------------------------------------------+ */ @@ -696,7 +696,7 @@ class e107plugin { case 'install': case 'upgrade': - if(!isset($attrib['active']) || $attrib['active'] == true) + if(!isset($attrib['active']) || $attrib['active'] == 'true') { echo "Adding prefs ".print_a($list['active'], true)."
"; // manage_prefs('add', $list['active']); @@ -718,6 +718,56 @@ class e107plugin } } } + + //Userclasses + //$this->manage_userclass('add', $eplug_userclass, $eplug_userclass_description); + if(isset($plug_vars['userclasses'])) + { + + if(isset($plug_vars['userclasses']['userclass'])) + { + if(!is_array($plug_vars['userclasses']['userclass'])) + { + $uclass_list = array($plug_vars['mainPrefs']['pref']); + } + else + { + $uclass_list = $plug_vars['mainPrefs']['pref']; + } + foreach($uclass_list as $uclass) + { + $attrib = $uclass['@attributes']; + switch($function) + { + case 'install': + case 'upgrade': + if(!isset($attrib['active']) || $attrib['active'] == 'true') + { + echo "Adding userclass ".$attrib['name']."
"; +// manage_userclass('add', $attrib['name'], $attrib['description']); + } + + //If upgrading, removing any inactive pref + if($function == 'upgrade' && isset($attrib['active']) && $attrib['active'] == 'false') + { + echo "Removing userclass ".$attrib['name']."
"; +// manage_userclass('remove', $attrib['name'], $attrib['description']); + } + break; + + //If uninstalling, remove all userclasses (active or inactive) + case 'uninstall': + echo "Removing prefs ".$attrib['name']."
"; +// manage_userclass('remove', $attrib['name'], $attrib['description']); + break; + } + } + } + } + + $this -> manage_search($function, $plug_vars['folder']); + $this -> manage_notify($function, $plug_vars['folder']); + }