private function build_view() { $modules_upgradable = 0; foreach (ModulesManager::get_installed_modules_map() as $module) { if (ModulesManager::module_is_upgradable($module->get_id())) { $configuration = $module->get_configuration(); $author = $configuration->get_author(); $author_email = $configuration->get_author_email(); $author_website = $configuration->get_author_website(); $this->view->assign_block_vars('modules_upgradable', array('ID' => $module->get_id(), 'NAME' => ucfirst($configuration->get_name()), 'ICON' => $module->get_id(), 'VERSION' => $configuration->get_version(), 'AUTHOR' => !empty($author_email) ? '<a href="mailto:' . $author_email . '">' . $author . '</a>' : $author, 'AUTHOR_WEBSITE' => !empty($author_website) ? '<a href="' . $author_website . '" class="basic-button smaller">Web</a>' : '', 'DESCRIPTION' => $configuration->get_description(), 'COMPATIBILITY' => $configuration->get_compatibility(), 'PHP_VERSION' => $configuration->get_php_version(), 'URL_REWRITE_RULES' => $configuration->get_url_rewrite_rules())); $modules_upgradable++; } } $this->view->put_all(array('C_UPDATES' => !empty($modules_upgradable))); }
public function update_modules() { $modules_config = ModulesConfig::load(); foreach ($modules_config->get_modules() as $id => $module) { if (ModulesManager::module_is_upgradable($id)) { ModulesManager::upgrade_module($id); $module->set_installed_version($module->get_configuration()->get_version()); } else { if ($module->get_configuration()->get_compatibility() != self::NEW_KERNEL_VERSION) { $module->set_activated(false); $this->add_information_to_file('module ' . $id, 'has been disabled because : incompatible with new version'); } } $modules_config->update($module); } ModulesConfig::save(); $configs_module_class = $this->get_class(PATH_TO_ROOT . self::$directory . '/modules/config/', self::$configuration_pattern, 'config'); $update_module_class = $this->get_class(PATH_TO_ROOT . self::$directory . '/modules/', self::$module_pattern, 'module'); $classes_list = array_merge($configs_module_class, $update_module_class); foreach ($classes_list as $class) { try { $object = new $class['name'](); $object->execute(); $success = true; $message = ''; } catch (Exception $e) { $success = false; $message = $e->getMessage(); } $this->add_error_to_file($class['type'] . ' ' . $object->get_module_id(), $success, $message); } }