1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-05 06:07:32 +02:00

more plugin.xml tweaking and fixes

This commit is contained in:
mcfly
2008-02-01 14:11:27 +00:00
parent 4176a5c898
commit c52527e842
6 changed files with 151 additions and 118 deletions

View File

@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_admin/plugin.php,v $ | $Source: /cvs_backup/e107_0.8/e107_admin/plugin.php,v $
| $Revision: 1.10 $ | $Revision: 1.11 $
| $Date: 2008-01-27 01:34:59 $ | $Date: 2008-02-01 14:11:27 $
| $Author: mcfly_e107 $ | $Author: mcfly_e107 $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -523,7 +523,8 @@ function render_plugs($pluginList)
$img = "<img src='".e_IMAGE."packs/".$imode."/admin_images/upgrade.png' alt='' />"; $img = "<img src='".e_IMAGE."packs/".$imode."/admin_images/upgrade.png' alt='' />";
} }
$plugin_icon = $plug_vars['administration']['icon'] ? "<img src='".e_PLUGIN.$plug_vars['administration']['icon']."' alt='' style='border:0px;vertical-align: bottom; width: 32px; height: 32px' />" : E_32_CAT_PLUG; $icon_src = (isset($plug_vars['plugin_php']) ? e_PLUGIN : $_path).$plug_vars['administration']['icon'];
$plugin_icon = $plug_vars['administration']['icon'] ? "<img src='{$icon_src}' alt='' style='border:0px;vertical-align: bottom; width: 32px; height: 32px' />" : E_32_CAT_PLUG;
if ($plug_vars['administration']['configFile'] && $plug['plugin_installflag'] == true) if ($plug_vars['administration']['configFile'] && $plug['plugin_installflag'] == true)
{ {

View File

@@ -60,18 +60,24 @@ if (ADMIN) {
$render_plugins = FALSE; $render_plugins = FALSE;
include_once(e_HANDLER.'plugin_class.php'); include_once(e_HANDLER.'plugin_class.php');
$plug = new e107plugin; $plug = new e107plugin;
if($sql -> db_Select("plugin", "*", "plugin_installflag=1 ORDER BY plugin_path")){ if($sql -> db_Select("plugin", "*", "plugin_installflag=1 ORDER BY plugin_path"))
while($row = $sql -> db_Fetch()){ {
if(getperms('P'.$row['plugin_id'])){ while($row = $sql -> db_Fetch())
if($plug->parse_plugin(e_PLUGIN.$row['plugin_path'].'/')) {
if(getperms('P'.$row['plugin_id']))
{
$_path = e_PLUGIN.$row['plugin_path'].'/';
if($plug->parse_plugin($_path))
{ {
$plug_vars = $plug->plug_vars; $plug_vars = $plug->plug_vars;
// print_a($plug_vars); // print_a($plug_vars);
// exit; // exit;
// include_once(e_PLUGIN.$row['plugin_path']."/plugin.php"); // include_once(e_PLUGIN.$row['plugin_path']."/plugin.php");
if($plug_vars['administration']['configFile']){ if($plug_vars['administration']['configFile'])
{
$plug_vars['name'] = $tp->toHTML($plug_vars['name'], FALSE, "defs"); $plug_vars['name'] = $tp->toHTML($plug_vars['name'], FALSE, "defs");
$plugin_icon = $plug_vars['administration']['iconSmall'] ? "<img src='".e_PLUGIN_ABS.$plug_vars['administration']['iconSmall']."' alt='".$plug_vars['administration']['caption']."' style='border:0px; vertical-align:bottom; width: 16px; height: 16px' />" : E_16_PLUGIN; $icon_src = (isset($plug_vars['plugin_php']) ? e_PLUGIN_ABS : e_PLUGIN_ABS.$row['plugin_path'].'/') .$plug_vars['administration']['iconSmall'];
$plugin_icon = $plug_vars['administration']['iconSmall'] ? "<img src='{$icon_src}' alt='".$plug_vars['administration']['caption']."' style='border:0px; vertical-align:bottom; width: 16px; height: 16px' />" : 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); $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; $render_plugins = TRUE;

View File

@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_handlers/plugin_class.php,v $ | $Source: /cvs_backup/e107_0.8/e107_handlers/plugin_class.php,v $
| $Revision: 1.22 $ | $Revision: 1.23 $
| $Date: 2008-02-01 11:52:27 $ | $Date: 2008-02-01 14:11:27 $
| $Author: mcfly_e107 $ | $Author: mcfly_e107 $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -230,7 +230,8 @@ class e107plugin
*/ */
function getinfo($id, $force=false) function getinfo($id, $force=false)
{ {
global $sql, $getinfo_results; global $sql;
static $getinfo_results;
if(!is_array($getinfo_results)) { $getinfo_results = array(); } if(!is_array($getinfo_results)) { $getinfo_results = array(); }
$id = (int)$id; $id = (int)$id;
@@ -238,7 +239,7 @@ class e107plugin
{ {
if ($sql->db_Select('plugin', '*', "plugin_id = ".$id)) if ($sql->db_Select('plugin', '*', "plugin_id = ".$id))
{ {
$getinfo_results[$id]; $sql->db_Fetch(); $getinfo_results[$id] = $sql->db_Fetch();
} }
else else
{ {
@@ -598,12 +599,22 @@ class e107plugin
function manage_plugin_xml($id, $function='') function manage_plugin_xml($id, $function='')
{ {
global $sql;
$id = (int)$id; $id = (int)$id;
$plug = $this->getinfo($id); $plug = $this->getinfo($id);
$path = e_PLUGIN.$plug['plugin_path'].'/'; $path = e_PLUGIN.$plug['plugin_path'].'/';
$addons = explode(',', $plug['plugin_addons']);
$sql_list = array();
foreach($addons as $addon)
{
if(substr($addon, -4) == '_sql')
{
$sql_list[] = $addon.'.php';
}
}
//Will just install using plugin.php file for now. //Will just install using plugin.php file for now.
return $this->install_plugin_php($path); //return $this->install_plugin_php($path);
//New code to install using plugin.xml below. //New code to install using plugin.xml below.
if(!file_exists($path.'plugin.xml') || $function == '') if(!file_exists($path.'plugin.xml') || $function == '')
@@ -623,9 +634,12 @@ class e107plugin
} }
// tables // tables
if(($function == 'install' || $function == 'uninstall') || isset($plug_vars['sqlFile'])) // This will load each _sql.php file found in the plugin directory and parse it.
if(($function == 'install' || $function == 'uninstall') && count($sql_list))
{ {
if($sql_data = file_get_contents($path.$plug_vars['sqlFile'])) foreach($sql_list as $sql_file)
{
if($sql_data = file_get_contents($path.$sql_file))
{ {
preg_match_all("/create(.*?)myisam.*?;/si", $sql_data, $result ); preg_match_all("/create(.*?)myisam.*?;/si", $sql_data, $result );
foreach ($result[0] as $sql_table) foreach ($result[0] as $sql_table)
@@ -646,6 +660,7 @@ class e107plugin
} }
} }
} }
}
//main menu items //main menu items
if(isset($plug_vars['menuLink'])) if(isset($plug_vars['menuLink']))
@@ -699,11 +714,10 @@ class e107plugin
{ {
$pref_list = $plug_vars['mainPrefs']['pref']; $pref_list = $plug_vars['mainPrefs']['pref'];
} }
$list = array(); $list = array();
foreach($pref_list as $pref) foreach($pref_list as $_pref)
{ {
$attrib = $pref['@attributes']; $attrib = $_pref['@attributes'];
$list['all'][$attrib['name']] = $attrib['value']; $list['all'][$attrib['name']] = $attrib['value'];
if(!isset($attrib['active']) || $attrib['active'] == 'true') if(!isset($attrib['active']) || $attrib['active'] == 'true')
{ {
@@ -718,14 +732,14 @@ class e107plugin
{ {
case 'install': case 'install':
case 'upgrade': case 'upgrade':
if(!isset($attrib['active']) || $attrib['active'] == 'true') if(is_array($list['active']))
{ {
echo "Adding prefs ".print_a($list['active'], true)."<br />"; echo "Adding prefs ".print_a($list['active'], true)."<br />";
// manage_prefs('add', $list['active']); // manage_prefs('add', $list['active']);
} }
//If upgrading, removing any inactive pref //If upgrading, removing any inactive pref
if($function == 'upgrade') if($function == 'upgrade' && is_array($list['inactive']))
{ {
echo "Removing prefs ".print_a($list['inactive'], true)."<br />"; echo "Removing prefs ".print_a($list['inactive'], true)."<br />";
// manage_prefs('remove', $list['inactive']); // manage_prefs('remove', $list['inactive']);
@@ -734,8 +748,11 @@ class e107plugin
//If uninstalling, remove all prefs (active or inactive) //If uninstalling, remove all prefs (active or inactive)
case 'uninstall': case 'uninstall':
if(is_array($list['all']))
{
echo "Removing prefs ".print_a($list['all'], true)."<br />"; echo "Removing prefs ".print_a($list['all'], true)."<br />";
// manage_prefs('remove', $list['all']); // manage_prefs('remove', $list['all']);
}
break; break;
} }
} }
@@ -745,31 +762,34 @@ class e107plugin
//$this->manage_userclass('add', $eplug_userclass, $eplug_userclass_description); //$this->manage_userclass('add', $eplug_userclass, $eplug_userclass_description);
if(isset($plug_vars['userclasses'])) if(isset($plug_vars['userclasses']))
{ {
if(isset($plug_vars['userclasses']['userclass'])) if(isset($plug_vars['userclasses']['userclass']))
{ {
if(!is_array($plug_vars['userclasses']['userclass'])) if(!is_array($plug_vars['userclasses']['userclass']))
{ {
$uclass_list = array($plug_vars['mainPrefs']['pref']); $uclass_list = array($plug_vars['userclasses']['userclass']);
} }
else else
{ {
$uclass_list = $plug_vars['mainPrefs']['pref']; $uclass_list = $plug_vars['userclasses']['userclass'];
} }
print_a($uclass_list);
foreach($uclass_list as $uclass) foreach($uclass_list as $uclass)
{ {
print_a($uclass);
$attrib = $uclass['@attributes']; $attrib = $uclass['@attributes'];
switch($function) switch($function)
{ {
case 'install': case 'install':
case 'upgrade': case 'upgrade':
// Add all active userclasses
if(!isset($attrib['active']) || $attrib['active'] == 'true') if(!isset($attrib['active']) || $attrib['active'] == 'true')
{ {
echo "Adding userclass ".$attrib['name']."<br />"; echo "Adding userclass ".$attrib['name']."<br />";
// manage_userclass('add', $attrib['name'], $attrib['description']); // manage_userclass('add', $attrib['name'], $attrib['description']);
} }
//If upgrading, removing any inactive pref //If upgrading, removing any inactive userclass
if($function == 'upgrade' && isset($attrib['active']) && $attrib['active'] == 'false') if($function == 'upgrade' && isset($attrib['active']) && $attrib['active'] == 'false')
{ {
echo "Removing userclass ".$attrib['name']."<br />"; echo "Removing userclass ".$attrib['name']."<br />";
@@ -810,7 +830,6 @@ class e107plugin
} }
function install_plugin_php($id) function install_plugin_php($id)
{ {
global $sql; global $sql;
@@ -941,7 +960,7 @@ class e107plugin
$_path = e_PLUGIN.$plug['plugin_path'].'/'; $_path = e_PLUGIN.$plug['plugin_path'].'/';
if(file_exists($_path.'plugin.xml')) if(file_exists($_path.'plugin.xml'))
{ {
$text = $this->manage_plugin_xml($_path, 'install'); $text = $this->manage_plugin_xml($id, 'install');
} }
elseif(file_exists($_path.'plugin.php')) elseif(file_exists($_path.'plugin.php'))
{ {
@@ -1199,9 +1218,10 @@ class e107plugin
include_lan($path.'languages/admin/'.e_LANGUAGE.'.php'); include_lan($path.'languages/admin/'.e_LANGUAGE.'.php');
require_once(e_HANDLER.'xml_class.php'); require_once(e_HANDLER.'xml_class.php');
$xml = new xmlClass; $xml = new xmlClass;
$xml->loadXMLfile($path.'plugin.xml', true, true); $this->plug_vars = $xml->loadXMLfile($path.'plugin.xml', true, true);
$xml->xmlFileContents = $tp->replaceConstants($xml->xmlFileContents, '', true); // $xml->loadXMLfile($path.'plugin.xml', true, true);
$this->plug_vars = $xml->parseXml(); // $xml->xmlFileContents = $tp->replaceConstants($xml->xmlFileContents, '', true);
// $this->plug_vars = $xml->parseXml();
return true; return true;
} }

View File

@@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_handlers/xml_class.php,v $ | $Source: /cvs_backup/e107_0.8/e107_handlers/xml_class.php,v $
| $Revision: 1.4 $ | $Revision: 1.5 $
| $Date: 2008-01-30 20:33:16 $ | $Date: 2008-02-01 14:11:27 $
| $Author: secretr $ | $Author: mcfly_e107 $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -120,7 +120,7 @@ class xmlClass
return $xml; return $xml;
} }
function loadXMLfile($fname='', $parse = false) function loadXMLfile($fname='', $parse = false, $replace_constants = false)
{ {
if($fname == '') if($fname == '')
@@ -142,6 +142,16 @@ class xmlClass
} }
if($this->xmlFileContents) if($this->xmlFileContents)
{ {
if($replace_constants == true)
{
global $tp;
if(!is_object($tp))
{
require_once('e_parse_class.php');
$tp = new e_parse;
}
$this->xmlFileContents = $tp->replaceConstants($this->xmlFileContents, '', true);
}
if($parse == true) if($parse == true)
{ {
return $this->parseXML(); return $this->parseXML();

View File

@@ -10,11 +10,9 @@
<folder>forum</folder> <folder>forum</folder>
<administration> <administration>
<configFile>forum_admin.php</configFile> <configFile>forum_admin.php</configFile>
<icon>forum/images/forums_32.png</icon> <icon>images/forums_32.png</icon>
<iconSmall>forum/images/images/forums_16.png</iconSmall> <iconSmall>images/images/forums_16.png</iconSmall>
<caption>Configure Forum</caption> <caption>Configure Forum</caption>
<latest>true</latest>
<status>true</status>
<installDone>Your forum is now installed</installDone> <installDone>Your forum is now installed</installDone>
</administration> </administration>
<menuLink name="Forum" url="forum/forum.php" perm='everyone'/> <menuLink name="Forum" url="forum/forum.php" perm='everyone'/>
@@ -35,7 +33,6 @@
<userclasses> <userclasses>
<userclass name="forum_moderator" description="Moderator of all forums" /> <userclass name="forum_moderator" description="Moderator of all forums" />
</userclasses> </userclasses>
<sqlFile>forum_sql.php</sqlFile>
<management> <management>
<install type="classFunction" file="forum_management.php" class="forum_management" function="forum_install" /> <install type="classFunction" file="forum_management.php" class="forum_management" function="forum_install" />
<uninstall type="classFunction" file="forum_management.php" class="forum_management" function="forum_uninstall" /> <uninstall type="classFunction" file="forum_management.php" class="forum_management" function="forum_uninstall" />

View File

@@ -10,11 +10,10 @@
<folder>pm</folder> <folder>pm</folder>
<administration> <administration>
<configFile>pm_conf.php</configFile> <configFile>pm_conf.php</configFile>
<icon>pm/images/pvt_message_32.png</icon> <icon>images/pvt_message_32.png</icon>
<iconSmall>pm/images/pvt_message_16.png</iconSmall> <iconSmall>images/pvt_message_16.png</iconSmall>
<caption>{ADLAN_PM_2}</caption> <caption>{ADLAN_PM_2}</caption>
</administration> </administration>
<sqlFile>pm_sql.php</sqlFile>
<management> <management>
<install type="fileFunction" file="pm_install.php" function="forum_install" /> <install type="fileFunction" file="pm_install.php" function="forum_install" />
<uninstall type="fileFunction" file="pm_uninstall.php" function="forum_uninstall" /> <uninstall type="fileFunction" file="pm_uninstall.php" function="forum_uninstall" />