1
0
mirror of https://github.com/e107inc/e107.git synced 2025-10-09 03:56:24 +02:00

Issue #3592 Improved updating of plug_installed pref and reading of InstallRequired plugin.xml attribute

This commit is contained in:
Cameron
2019-01-11 11:39:35 -08:00
parent e8f8b692e3
commit cb02f705b6

View File

@@ -213,7 +213,7 @@ class e_plugin
if(isset($this->_data[$this->_plugdir]['@attributes']['installRequired'])) if(isset($this->_data[$this->_plugdir]['@attributes']['installRequired']))
{ {
return ($this->_data[$this->_plugdir]['@attributes']['installRequired'] === 'true') ? true : false; return ($this->_data[$this->_plugdir]['@attributes']['installRequired'] === 'false') ? false : true;
} }
return false; return false;
@@ -488,7 +488,9 @@ class e_plugin
private function _initIDs() private function _initIDs()
{ {
$sql = e107::getDb(); $sql = e107::getDb();
$cfg = e107::getConfig();
$save = false;
if ($rows = $sql->retrieve("plugin", "*", "plugin_id != '' ORDER by plugin_path ", true)) if ($rows = $sql->retrieve("plugin", "*", "plugin_id != '' ORDER by plugin_path ", true))
{ {
@@ -500,12 +502,17 @@ class e_plugin
if(!empty($row['plugin_installflag'])) if(!empty($row['plugin_installflag']))
{ {
$this->_installed[$path] = $row['plugin_version']; $this->_installed[$path] = $row['plugin_version'];
$cfg->setPref('plug_installed/'.$path, $row['plugin_version']);
$save = true;
} }
$this->_addons[$path] = !empty($row['plugin_addons']) ? explode(',',$row['plugin_addons']) : null;// $path; $this->_addons[$path] = !empty($row['plugin_addons']) ? explode(',',$row['plugin_addons']) : null;// $path;
} }
if($save)
{
$cfg->save(false,true,false);
}
} }
@@ -557,6 +564,11 @@ class e_plugin
public function getFields($currentStatus = false) public function getFields($currentStatus = false)
{ {
/*if(!isset($this->_data[$this->_plugdir]['@attributes']['name']))
{
return false;
}*/
$ret = array( $ret = array(
'plugin_name' => $this->getName('db'), 'plugin_name' => $this->getName('db'),
@@ -677,7 +689,7 @@ class e_plugin
$ret = $this->parse_plugin_php($plugName); $ret = $this->parse_plugin_php($plugName);
} }
if(!empty($ret)) if(!empty($ret['@attributes']['name'])) // make sure it's a valid plugin.
{ {
$arr[$plugName] = $ret; $arr[$plugName] = $ret;
} }