[*] BO : from 300 to 40 queries in Modules tab, does not really speed up the page, but eases my mind
This commit is contained in:
+32
-13
@@ -287,10 +287,10 @@ abstract class ModuleCore
|
|||||||
* @param $module_version
|
* @param $module_version
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function initUpgradeModule($module_name, $module_version)
|
public static function initUpgradeModule($module)
|
||||||
{
|
{
|
||||||
// Init cache upgrade details
|
// Init cache upgrade details
|
||||||
self::$modules_cache[$module_name]['upgrade'] = array(
|
self::$modules_cache[$module->name]['upgrade'] = array(
|
||||||
'success' => false, // bool to know if upgrade succeed or not
|
'success' => false, // bool to know if upgrade succeed or not
|
||||||
'available_upgrade' => 0, // Number of available module before any upgrade
|
'available_upgrade' => 0, // Number of available module before any upgrade
|
||||||
'number_upgraded' => 0, // Number of upgrade done
|
'number_upgraded' => 0, // Number of upgrade done
|
||||||
@@ -302,7 +302,7 @@ abstract class ModuleCore
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Need Upgrade will check and load upgrade file to the moduleCache upgrade case detail
|
// Need Upgrade will check and load upgrade file to the moduleCache upgrade case detail
|
||||||
$ret = Module::isInstalled($module_name) && Module::needUpgrade($module_name, $module_version);
|
$ret = $module->installed && Module::needUpgrade($module);
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -378,17 +378,13 @@ abstract class ModuleCore
|
|||||||
* @param $module_version
|
* @param $module_version
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function needUpgrade($module_name, $module_version)
|
public static function needUpgrade($module)
|
||||||
{
|
{
|
||||||
$registered_version = Db::getInstance()->getValue('
|
self::$modules_cache[$module->name]['upgrade']['upgraded_from'] = $module->database_version;
|
||||||
SELECT m.`version` FROM `'._DB_PREFIX_.'module` m
|
Tools::alignVersionNumber($module->version, $module->database_version);
|
||||||
WHERE m.`name` = \''.bqSQL($module_name).'\'');
|
|
||||||
|
|
||||||
self::$modules_cache[$module_name]['upgrade']['upgraded_from'] = $registered_version;
|
|
||||||
Tools::alignVersionNumber($module_version, $registered_version);
|
|
||||||
// Check the version of the module with the registered one and look if any upgrade file exist
|
// Check the version of the module with the registered one and look if any upgrade file exist
|
||||||
return version_compare($module_version, $registered_version, '>')
|
return version_compare($module->version, $module->database_version, '>')
|
||||||
&& Module::loadUpgradeVersionList($module_name, $module_version, $registered_version);
|
&& Module::loadUpgradeVersionList($module->name, $module->version, $module->database_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -918,7 +914,7 @@ abstract class ModuleCore
|
|||||||
* @param boolean $useConfig in order to use config.xml file in module dir
|
* @param boolean $useConfig in order to use config.xml file in module dir
|
||||||
* @return array Modules
|
* @return array Modules
|
||||||
*/
|
*/
|
||||||
public static function getModulesOnDisk($useConfig = false, $loggedOnAddons = false)
|
public static function getModulesOnDisk($useConfig = false, $loggedOnAddons = false, $id_employee = false)
|
||||||
{
|
{
|
||||||
global $_MODULES;
|
global $_MODULES;
|
||||||
|
|
||||||
@@ -932,6 +928,14 @@ abstract class ModuleCore
|
|||||||
$modules_dir = Module::getModulesDirOnDisk();
|
$modules_dir = Module::getModulesDirOnDisk();
|
||||||
$memory_limit = Tools::getMemoryLimit();
|
$memory_limit = Tools::getMemoryLimit();
|
||||||
|
|
||||||
|
$modules_installed = array();
|
||||||
|
$result = Db::getInstance()->executeS('
|
||||||
|
SELECT name, version, interest
|
||||||
|
FROM `'._DB_PREFIX_.'module`
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'module_preference` ON (`module` = `name` AND `id_employee` = '.(int)$id_employee.')');
|
||||||
|
foreach ($result as $row)
|
||||||
|
$modules_installed[$row['name']] = $row;
|
||||||
|
|
||||||
foreach ($modules_dir as $module)
|
foreach ($modules_dir as $module)
|
||||||
{
|
{
|
||||||
// Memory usage checking
|
// Memory usage checking
|
||||||
@@ -986,6 +990,7 @@ abstract class ModuleCore
|
|||||||
$item->confirmUninstall = Translate::getModuleTranslation($xml_module->name, Module::configXmlStringFormat($xml_module->confirmUninstall), (string)$xml_module->name);
|
$item->confirmUninstall = Translate::getModuleTranslation($xml_module->name, Module::configXmlStringFormat($xml_module->confirmUninstall), (string)$xml_module->name);
|
||||||
|
|
||||||
$item->active = 0;
|
$item->active = 0;
|
||||||
|
|
||||||
$module_list[] = $item;
|
$module_list[] = $item;
|
||||||
$module_name_list[] = '\''.pSQL($item->name).'\'';
|
$module_name_list[] = '\''.pSQL($item->name).'\'';
|
||||||
$modulesNameToCursor[strval($item->name)] = $item;
|
$modulesNameToCursor[strval($item->name)] = $item;
|
||||||
@@ -1122,6 +1127,20 @@ abstract class ModuleCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($module_list as &$module)
|
||||||
|
if (isset($modules_installed[$module->name]))
|
||||||
|
{
|
||||||
|
$module->installed = true;
|
||||||
|
$module->database_version = $modules_installed[$module->name]['version'];
|
||||||
|
$module->interest = $modules_installed[$module->name]['interest'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$module->installed = false;
|
||||||
|
$module->database_version = 0;
|
||||||
|
$module->interest = 0;
|
||||||
|
}
|
||||||
|
|
||||||
usort($module_list, create_function('$a,$b', '
|
usort($module_list, create_function('$a,$b', '
|
||||||
if ($a->displayName == $b->displayName)
|
if ($a->displayName == $b->displayName)
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1028,7 +1028,6 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
foreach ($this->list_modules_categories as $k => $v)
|
foreach ($this->list_modules_categories as $k => $v)
|
||||||
$this->list_modules_categories[$k]['nb'] = 0;
|
$this->list_modules_categories[$k]['nb'] = 0;
|
||||||
|
|
||||||
|
|
||||||
// Retrieve Modules Preferences
|
// Retrieve Modules Preferences
|
||||||
$modules_preferences = '';
|
$modules_preferences = '';
|
||||||
$modules_preferences_tmp = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'module_preference` WHERE `id_employee` = '.(int)$this->id_employee);
|
$modules_preferences_tmp = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'module_preference` WHERE `id_employee` = '.(int)$this->id_employee);
|
||||||
@@ -1042,7 +1041,7 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve Modules List
|
// Retrieve Modules List
|
||||||
$modules = Module::getModulesOnDisk(true, $this->logged_on_addons);
|
$modules = Module::getModulesOnDisk(true, $this->logged_on_addons, $this->id_employee);
|
||||||
$this->initModulesList($modules);
|
$this->initModulesList($modules);
|
||||||
$this->nb_modules_total = count($modules);
|
$this->nb_modules_total = count($modules);
|
||||||
|
|
||||||
@@ -1053,7 +1052,7 @@ class AdminModulesControllerCore extends AdminController
|
|||||||
foreach ($modules as $km => $module)
|
foreach ($modules as $km => $module)
|
||||||
{
|
{
|
||||||
// Upgrade Module process, init check if a module could be upgraded
|
// Upgrade Module process, init check if a module could be upgraded
|
||||||
if (Module::initUpgradeModule($module->name, $module->version))
|
if (Module::initUpgradeModule($module))
|
||||||
{
|
{
|
||||||
// When the XML cache file is up-to-date, the module may not be loaded yet
|
// When the XML cache file is up-to-date, the module may not be loaded yet
|
||||||
if (!class_exists($module->name))
|
if (!class_exists($module->name))
|
||||||
|
|||||||
Reference in New Issue
Block a user