diff --git a/lib/plugins/pluginregistry.inc.php b/lib/plugins/pluginregistry.inc.php index 0b4851d..6c4242f 100644 --- a/lib/plugins/pluginregistry.inc.php +++ b/lib/plugins/pluginregistry.inc.php @@ -85,9 +85,16 @@ class KTPluginRegistry { function &getPlugins() { $aRet = array(); foreach (array_keys($this->_aPluginDetails) as $sPluginName) { - $aRet[] =& $this->getPlugin($sPluginName); + $oPlugin =& $this->getPlugin($sPluginName); + $aRet[(int)$oPlugin->iOrder][] =& $oPlugin; } - return $aRet; + ksort($aRet); + $aRes = array(); + foreach($aRet as $iOrder => $aPlugins) { + foreach(array_keys($aPlugins) as $iPlugin) { + $aRes[] =& $aRet[$iOrder][$iPlugin]; + } + } + return $aRes; } -} - +} \ No newline at end of file diff --git a/lib/plugins/pluginutil.inc.php b/lib/plugins/pluginutil.inc.php index 06d958e..06809c8 100644 --- a/lib/plugins/pluginutil.inc.php +++ b/lib/plugins/pluginutil.inc.php @@ -180,7 +180,9 @@ class KTPluginUtil { // Check that there are plugins and if not, register them if (empty($aPluginHelpers)) { + DBUtil::startTransaction(); KTPluginUtil::registerPlugins(); + DBUtil::commit(); $query = "SELECT h.classname, h.pathname, h.plugin FROM plugin_helper h INNER JOIN plugins p ON (p.namespace = h.plugin) @@ -483,7 +485,8 @@ class KTPluginUtil { } } $oRegistry =& KTPluginRegistry::getSingleton(); - foreach ($oRegistry->getPlugins() as $oPlugin) { + $aRegistryList = $oRegistry->getPlugins(); + foreach ($aRegistryList as $oPlugin) { $res = $oPlugin->register(); if (PEAR::isError($res)) { var_dump($res);