Xanaxilovsky Posted August 26, 2015 Share Posted August 26, 2015 (edited) Bonjour, Je viens d'upgrader mon prestashop version 1.5.4.1 vers la version 1.6.0.14. J'ai utilisé la méthode de mise à jour automatique. Après cela, je me retrouve avec la page liste des modules très lent à accéder. 1mn à 4mn d'attente avant que la page se charge. Voici les actions que j'ai effectué pour essayer de fixer cela, mais sans succès : Administration > Préférences > Mettre "Vérifier automatiquement les mises à jour de modules" à NON Dossier \config\xml : Suppression de tous les fichiers XML Désactivation du module navigation à facette vu que ce module est aussi tres lent Désactivation du module Expertise PrestaShop (Car ralentit parfois l'admin) Est-ce-que quelqu'un a déjà rencontré ce problème et l'a résolu? Merci d'avance pour vos réponses. Edited August 26, 2015 by Xanaxilovsky (see edit history) Link to comment Share on other sites More sharing options...
Xanaxilovsky Posted August 26, 2015 Author Share Posted August 26, 2015 J'ai réussi à résoudre le problème en désactivant la recherche de mise à jour via le code. D'abord, Overrider la classe \controllers\admin\AdminModulesController.php, puis redéfinir la méthode initContent() Puis, commenter ou supprimer les codes qui se trouvent en dessous de ces commentaires : // Upgrade Module process, init check if a module could be upgraded // Module can't be upgraded if not file exist but can change the database version... Remplacer aussi return parent::initContent(); par return AdminController::initContent(); Voici le code complet class AdminModulesController extends AdminModulesControllerCore { public function initContent() { if (Tools::isSubmit('addnewmodule') && $this->context->mode == Context::MODE_HOST) { $this->display = 'add'; $this->context->smarty->assign(array('iso_code' => $this->context->language->iso_code)); return AdminController::initContent(); } $this->meta_title = 'Modules'; // If we are on a module configuration, no need to load all modules if (Tools::getValue('configure') != '') return true; $this->initToolbar(); $this->initPageHeaderToolbar(); // Init $smarty = $this->context->smarty; $autocomplete_list = 'var moduleList = ['; $category_filtered = array(); $filter_categories = explode('|', Configuration::get('PS_SHOW_CAT_MODULES_'.(int)$this->id_employee)); if (count($filter_categories) > 0) foreach ($filter_categories as $fc) if (!empty($fc)) $category_filtered[$fc] = 1; if (empty($category_filtered) && Tools::getValue('tab_module')) $category_filtered[Tools::getValue('tab_module')] = 1; foreach ($this->list_modules_categories as $k => $v) $this->list_modules_categories[$k]['nb'] = 0; // Retrieve Modules Preferences $modules_preferences = ''; $tab_modules_preferences = array(); $modules_preferences_tmp = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'module_preference` WHERE `id_employee` = '.(int)$this->id_employee); $tab_modules_preferences_tmp = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'tab_module_preference` WHERE `id_employee` = '.(int)$this->id_employee); foreach ($tab_modules_preferences_tmp as $i => $j) $tab_modules_preferences[$j['module']][] = $j['id_tab']; foreach ($modules_preferences_tmp as $k => $v) { if ($v['interest'] == null) unset($v['interest']); if ($v['favorite'] == null) unset($v['favorite']); $modules_preferences[$v['module']] = $v; } // Retrieve Modules List $modules = Module::getModulesOnDisk(true, $this->logged_on_addons, $this->id_employee); $this->initModulesList($modules); $this->nb_modules_total = count($modules); $module_errors = array(); $module_success = array(); $upgrade_available = array(); $dont_filter = false; //Add succes message for one module update if (Tools::getValue('updated') && Tools::getValue('module_name')) { $module_names = (string)Tools::getValue('module_name'); if (strpos($module_names, '|')) { $module_names = explode('|', $module_names); $dont_filter = true; } if (!is_array($module_names)) $module_names = (array)$module_names; foreach ($modules as $km => $module) if (in_array($module->name, $module_names)) $module_success[] = array('name' => $module->displayName, 'message' => array( 0 => sprintf($this->l('Current version: %s'), $module->version))); } // Browse modules list foreach ($modules as $km => $module) { //if we are in favorites view we only display installed modules if (Tools::getValue('select') == 'favorites' && !$module->id) { unset($modules[$km]); continue; } // Upgrade Module process, init check if a module could be upgraded // if (Module::initUpgradeModule($module)) // { // // When the XML cache file is up-to-date, the module may not be loaded yet // if (!class_exists($module->name)) // { // if (!file_exists(_PS_MODULE_DIR_.$module->name.'/'.$module->name.'.php')) // continue; // require_once(_PS_MODULE_DIR_.$module->name.'/'.$module->name.'.php'); // } // if ($object = new $module->name()) // { // $object->runUpgradeModule(); // if ((count($errors_module_list = $object->getErrors()))) // $module_errors[] = array('name' => $module->displayName, 'message' => $errors_module_list); // elseif ((count($conf_module_list = $object->getConfirmations()))) // $module_success[] = array('name' => $module->displayName, 'message' => $conf_module_list); // unset($object); // } // } // // Module can't be upgraded if not file exist but can change the database version... // // User has to be prevented // elseif (Module::getUpgradeStatus($module->name)) // { // // When the XML cache file is up-to-date, the module may not be loaded yet // if (!class_exists($module->name)) // if (file_exists(_PS_MODULE_DIR_.$module->name.'/'.$module->name.'.php')) // { // require_once(_PS_MODULE_DIR_.$module->name.'/'.$module->name.'.php'); // $object = new $module->name(); // $module_success[] = array('name' => $module->name, 'message' => array( // 0 => sprintf($this->l('Current version: %s'), $object->version), // 1 => $this->l('No file upgrades applied (none exist).')) // ); // } // else // continue; // unset($object); // } // Make modules stats $this->makeModulesStats($module); // Assign warnings if ($module->active && isset($module->warning) && !empty($module->warning) && !$this->ajax) { $href = Context::getContext()->link->getAdminLink('AdminModules', true).'&module_name='.$module->name.'&tab_module='.$module->tab.'&configure='.$module->name; $this->context->smarty->assign('text', sprintf($this->l('%1$s: %2$s'), $module->displayName, $module->warning)); $this->context->smarty->assign('module_link', $href); $this->displayWarning($this->context->smarty->fetch('controllers/modules/warning_module.tpl')); } // AutoComplete array $autocomplete_list .= Tools::jsonEncode(array( 'displayName' => (string)$module->displayName, 'desc' => (string)$module->description, 'name' => (string)$module->name, 'author' => (string)$module->author, 'image' => (isset($module->image) ? (string)$module->image : ''), 'option' => '', )).', '; // Apply filter if ($this->isModuleFiltered($module) && Tools::getValue('select') != 'favorites') unset($modules[$km]); else { if (isset($modules_preferences[$modules[$km]->name])) $modules[$km]->preferences = $modules_preferences[$modules[$km]->name]; $this->fillModuleData($module, 'array'); $module->categoryName = (isset($this->list_modules_categories[$module->tab]['name']) ? $this->list_modules_categories[$module->tab]['name'] : $this->list_modules_categories['others']['name']); } unset($object); if ($module->installed && isset($module->version_addons) && $module->version_addons) $upgrade_available[] = array('anchor' => ucfirst($module->name), 'name' => $module->name, 'displayName' => $module->displayName); if (in_array($module->name, $this->list_partners_modules)) $module->type = 'addonsPartner'; if (isset($module->description_full) && trim($module->description_full) != '') $module->show_quick_view = true; } // Don't display categories without modules $cleaned_list = array(); foreach ($this->list_modules_categories as $k => $list) if ($list['nb'] > 0) $cleaned_list[$k] = $list; // Actually used for the report of the upgraded errors if (count($module_errors)) { $html = $this->generateHtmlMessage($module_errors); $this->errors[] = sprintf(Tools::displayError('The following module(s) were not upgraded successfully: %s'), $html); } if (count($module_success)) { $html = $this->generateHtmlMessage($module_success); $this->confirmations[] = sprintf($this->l('The following module(s) were upgraded successfully:').' %s', $html); } ConfigurationKPI::updateValue('UPDATE_MODULES', count($upgrade_available)); if (count($upgrade_available) == 0 && (int)Tools::getValue('check') == 1) $this->confirmations[] = $this->l('Everything is up-to-date'); // Init tpl vars for smarty $tpl_vars = array( 'token' => $this->token, 'upgrade_available' => $upgrade_available, 'currentIndex' => self::$currentIndex, 'dirNameCurrentIndex' => dirname(self::$currentIndex), 'ajaxCurrentIndex' => str_replace('index', 'ajax-tab', self::$currentIndex), 'autocompleteList' => rtrim($autocomplete_list, ' ,').'];', 'showTypeModules' => $this->filter_configuration['PS_SHOW_TYPE_MODULES_'.(int)$this->id_employee], 'showCountryModules' => $this->filter_configuration['PS_SHOW_COUNTRY_MODULES_'.(int)$this->id_employee], 'showInstalledModules' => $this->filter_configuration['PS_SHOW_INSTALLED_MODULES_'.(int)$this->id_employee], 'showEnabledModules' => $this->filter_configuration['PS_SHOW_ENABLED_MODULES_'.(int)$this->id_employee], 'nameCountryDefault' => Country::getNameById($this->context->language->id, Configuration::get('PS_COUNTRY_DEFAULT')), 'isoCountryDefault' => $this->iso_default_country, 'categoryFiltered' => $category_filtered, 'modules' => $modules, 'nb_modules' => $this->nb_modules_total, 'nb_modules_favorites' => count($this->context->employee->favoriteModulesList()), 'nb_modules_installed' => $this->nb_modules_installed, 'nb_modules_uninstalled' => $this->nb_modules_total - $this->nb_modules_installed, 'nb_modules_activated' => $this->nb_modules_activated, 'nb_modules_unactivated' => $this->nb_modules_installed - $this->nb_modules_activated, 'list_modules_categories' => $cleaned_list, 'list_modules_authors' => $this->modules_authors, 'add_permission' => $this->tabAccess['add'], 'tab_modules_preferences' => $tab_modules_preferences, 'kpis' => $this->renderKpis(), 'module_name' => Tools::getValue('module_name'), 'page_header_toolbar_title' => $this->page_header_toolbar_title, 'page_header_toolbar_btn' => $this->page_header_toolbar_btn, 'modules_uri' => __PS_BASE_URI__.basename(_PS_MODULE_DIR_), 'dont_filter' => $dont_filter, 'is_contributor' => (int)$this->context->cookie->is_contributor ); if ($this->logged_on_addons) { $tpl_vars['logged_on_addons'] = 1; $tpl_vars['username_addons'] = $this->context->cookie->username_addons; } $smarty->assign($tpl_vars); } } La suppression des modules qui ne sont plus utilisés et des modules sauvegardés comme "paypal_old, blocktopmenu12122013, ..." ont aussi permis d'accélerer le chargement de la page. Link to comment Share on other sites More sharing options...
ulfounet Posted September 17, 2016 Share Posted September 17, 2016 Bonjour, J'ai un problème qui est à mon avis assez similaire mais j'arrive pas à le résoudre malgré les indices laissés ici. Suite à la mise à jour de mes modules, la page BO de modules ne s'affiche plus. Je me retrouve avec une erreur MySQL Server has gone away. En fouillant dans la page d'erreur je tombe sur: ConfigurationKPICore::updateValue - [line 1478 - controllers/admin/AdminModulesController.php] : 1472. { 1473. $html = $this->generateHtmlMessage($module_success); 1474. $this->confirmations[] = sprintf($this->l('The following module(s) were upgraded successfully:').' %s', $html); 1475. } 1476. 1477. ConfigurationKPI::updateValue('UPDATE_MODULES', count($upgrade_available)); 1478. 1479. if (count($upgrade_available) == 0 && (int)Tools::getValue('check') == 1) 1480. $this->confirmations[] = $this->l('Everything is up-to-date'); 1481. 1482. // Init tpl vars for smarty Une idée pour m'aider à trouver une solution? Merci beaucoup!!! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now