private function save(HTTPRequestCustom $request)
 {
     $installed_modules = ModulesManager::get_installed_modules_map();
     foreach ($installed_modules as $module) {
         if ($request->get_string('delete-' . $module->get_id(), '')) {
             AppContext::get_response()->redirect(AdminModulesUrlBuilder::delete_module($module->get_id()));
         }
     }
     if ($request->get_bool('update', false)) {
         $errors = array();
         foreach ($installed_modules as $module) {
             $module_id = $module->get_id();
             $activated = $request->get_bool('activated-' . $module_id, false);
             $error = ModulesManager::update_module($module_id, $activated);
             if (!empty($error)) {
                 $errors[$module->get_configuration()->get_name()] = $error;
             }
         }
         if (empty($errors)) {
             AppContext::get_response()->redirect(AdminModulesUrlBuilder::list_installed_modules());
         } else {
             foreach ($errors as $module_name => $error) {
                 $this->view->assign_block_vars('errors', array('MSG' => MessageHelper::display($module_name . ' : ' . $error, MessageHelper::WARNING, 10)));
             }
         }
     }
 }
 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)));
 }
 private function load_modules_providers()
 {
     try {
         // In case that phpboost is not installed and that a command line is invoked,
         // PHPBoostNotInstalledException, DBConnectionException, SQLQuerierException and IOException could be thrown.
         // In that case, it only means that modules extension points providers won't be loaded
         foreach (ModulesManager::get_installed_modules_map() as $provider_id => $module) {
             if ($module->is_activated()) {
                 $this->register_provider($provider_id);
             }
         }
     } catch (PHPBoostNotInstalledException $exception) {
     } catch (DBConnectionException $exception) {
     } catch (SQLQuerierException $exception) {
     } catch (IOException $exception) {
     }
 }