diff --git a/e107_admin/plugin.php b/e107_admin/plugin.php index a79b2d150..86e2c4c29 100755 --- a/e107_admin/plugin.php +++ b/e107_admin/plugin.php @@ -631,7 +631,7 @@ class plugin_ui extends e_admin_ui $eplug_addons = $plugin -> getAddons($eplug_folder); - $info = e107plugin::getPluginRecord($this->id); + $info = $plugin->getinfo($this->id); $name = deftrue($info['plugin_name'],$info['plugin_name']). " v".$eplug_version. "({e_PLUGIN}".$info['plugin_path'].")"; diff --git a/e107_handlers/plugin_class.php b/e107_handlers/plugin_class.php index 853fc7aa2..f0df2459a 100644 --- a/e107_handlers/plugin_class.php +++ b/e107_handlers/plugin_class.php @@ -1631,21 +1631,32 @@ class e107plugin * @param int $id * @return array plugin info */ - static function getPluginRecord($id) + function getinfo($id, $force = false) { $sql = e107::getDb(); - $getinfo_results = array(); - - $path = (!is_numeric($id)) ? $id : false; - $id = (int)$id; - - $qry = "plugin_id = " . $id; - $qry .= ($path != false) ? " OR plugin_path = '" . $path . "' " : ""; - - if ($sql->select('plugin', '*', $qry)) { - $getinfo_results[$id] = $sql->fetch(); + static $getinfo_results; + if (!is_array($getinfo_results)) + { + $getinfo_results = array(); } + $path = (!is_numeric($id)) ? $id : false; + $id = (int) $id; + + $qry = "plugin_id = ".$id; + $qry .= ($path != false) ? " OR plugin_path = '".$path."' " : ""; + + if (!isset($getinfo_results[$id]) || $force == true) + { + if ($sql->select('plugin', '*', $qry)) + { + $getinfo_results[$id] = $sql->fetch(); + } + else + { + return false; + } + } return $getinfo_results[$id]; } @@ -1934,7 +1945,7 @@ class e107plugin function manage_userclass($action, $class_name, $class_description='') { $this->log("Running ".__FUNCTION__); - $e107 = e107::getInstance(); + global $e107; $tp = e107::getParser(); $sql = e107::getDb(); $mes = e107::getMessage(); @@ -2490,12 +2501,12 @@ class e107plugin elseif(is_numeric($id)) // plugin database id { $id = (int) $id; - $plug = e107plugin::getPluginRecord($id); // Get plugin info from DB + $plug = $this->getinfo($id); // Get plugin info from DB } else // Plugin Path. { $id = $this->getId($id); - $plug = e107plugin::getPluginRecord($id); // Get plugin info from DB + $plug = $this->getinfo($id); // Get plugin info from DB } $this->current_plug = $plug; @@ -3874,7 +3885,7 @@ class e107plugin } else { - $plug = e107plugin::getPluginRecord($id); + $plug = $this->getinfo($id); } $_path = e_PLUGIN.$plug['plugin_path'].'/'; @@ -4007,7 +4018,7 @@ class e107plugin $sql = e107::getDb(); $tp = e107::getParser(); - $plug = e107plugin::getPluginRecord($dir); + $plug = $this->getinfo($dir); $this->options = array('nolinks'=>true); @@ -4060,7 +4071,7 @@ class e107plugin $text = ''; // install plugin ... - $plug = e107plugin::getPluginRecord($id); + $plug = $this->getinfo($id); if(!is_array($plug)) { @@ -4108,7 +4119,7 @@ class e107plugin $tp = e107::getParser(); $sql = e107::getDb(); - $plug = e107plugin::getPluginRecord($id); + $plug = $this->getinfo($id); $this->log("Uninstalling :".$plug['plugin_path']." with options: ".print_r($options, true)); diff --git a/e107_handlers/pref_class.php b/e107_handlers/pref_class.php index e219182a0..57549820a 100644 --- a/e107_handlers/pref_class.php +++ b/e107_handlers/pref_class.php @@ -845,7 +845,7 @@ final class e_core_pref extends e_pref parent::__construct($pref_id, $pref_alias); if($load && $pref_id) { - $this->load($pref_id, $load); + $this->load(); }