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);
     }
 }