BUG 9697 "PM 2.0.43 testing 7/ Enterprise 2.0.16 Cuando se..." SOLVED

- When importing a plugin, the version does not register (when the
  plugin already exists)
- Problem solved, established the plugin version at register, if the
  plugin exists
* Available from version 2.0.45
This commit is contained in:
Victor Saisa Lopez
2012-10-10 15:30:27 -04:00
parent cc8d1e5894
commit ad0f709503
2 changed files with 34 additions and 11 deletions

View File

@@ -175,21 +175,42 @@ class PMPluginRegistry
* @param unknown_type $sNamespace
* @param unknown_type $sFilename
*/
function registerPlugin ($sNamespace, $sFilename = null)
public function registerPlugin($sNamespace, $sFilename=null)
{
$sClassName = $sNamespace . 'plugin';
if (isset( $this->_aPluginDetails[$sNamespace] ))
return;
//require_once ($sFilename);
$sClassName = $sNamespace . "plugin";
$plugin = new $sClassName($sNamespace, $sFilename);
$detail = new pluginDetail( $sNamespace, $sClassName, $sFilename, $plugin->sFriendlyName, $plugin->sPluginFolder, $plugin->sDescription, $plugin->sSetupPage, $plugin->iVersion );
if (isset( $plugin->aWorkspaces ))
if (isset($this->_aPluginDetails[$sNamespace])) {
$this->_aPluginDetails[$sNamespace]->iVersion = $plugin->iVersion;
return;
}
$detail = new pluginDetail(
$sNamespace,
$sClassName,
$sFilename,
$plugin->sFriendlyName,
$plugin->sPluginFolder,
$plugin->sDescription,
$plugin->sSetupPage,
$plugin->iVersion
);
if (isset($plugin->aWorkspaces)) {
$detail->aWorkspaces = $plugin->aWorkspaces;
if (isset( $plugin->bPrivate ))
}
if (isset($plugin->bPrivate)) {
$detail->bPrivate = $plugin->bPrivate;
}
//if (isset($this->_aPluginDetails[$sNamespace])){
// $detail->enabled = $this->_aPluginDetails[$sNamespace]->enabled;
//}
$this->_aPluginDetails[$sNamespace] = $detail;
}

View File

@@ -147,10 +147,12 @@ try {
require_once (PATH_PLUGINS . $pluginFile);
$oPluginRegistry->registerPlugin($sClassName, PATH_PLUGINS . $sClassName . ".php");
$size = file_put_contents(PATH_DATA_SITE . "plugin.singleton", $oPluginRegistry->serializeInstance());
$details = $oPluginRegistry->getPluginDetails($pluginFile);
$oPluginRegistry->installPlugin($details->sNamespace);
$oPluginRegistry->setupPlugins(); //get and setup enabled plugins
$size = file_put_contents(PATH_DATA_SITE . "plugin.singleton", $oPluginRegistry->serializeInstance());