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