private function regenerate_htaccess_file()
 {
     $apc_enabled = DataStoreFactory::is_apc_enabled();
     if ($apc_enabled) {
         DataStoreFactory::set_apc_enabled(false);
         HtaccessFileCache::regenerate();
         AppContext::get_cache_service()->clear_cache();
         DataStoreFactory::set_apc_enabled(true);
     } else {
         AppContext::get_cache_service()->clear_cache();
         HtaccessFileCache::regenerate();
     }
 }
 public function execute(HTTPRequestCustom $request)
 {
     parent::load_lang($request);
     $this->build_form();
     if ($this->submit_button->has_been_submited() && $this->form->validate()) {
         $login = $this->form->get_value('email');
         if ($this->form->get_value('custom_login', false)) {
             $login = $this->form->get_value('login');
         }
         $installation_services = new InstallationServices();
         $installation_services->create_admin($login, $this->form->get_value('password'), $this->form->get_value('email'), $this->form->get_value('createSession'), $this->form->get_value('autoconnect'));
         HtaccessFileCache::regenerate();
         AppContext::get_response()->redirect(InstallUrlBuilder::finish());
     }
     return $this->create_response();
 }
 public static function update_module($module_id, $activated)
 {
     $error = '';
     if (!$activated) {
         MenuService::delete_mini_module($module_id);
         MenuService::delete_module_feeds_menus($module_id);
         $general_config = GeneralConfig::load();
         $module_home_page_selected = $general_config->get_module_home_page();
         if ($module_home_page_selected == $module_id) {
             $general_config->set_module_home_page('');
             $general_config->set_other_home_page('index.php');
         }
         $editors = AppContext::get_content_formatting_service()->get_available_editors();
         if (in_array($module_id, $editors)) {
             if (count($editors) > 1) {
                 $default_editor = ContentFormattingConfig::load()->get_default_editor();
                 if ($default_editor !== $module_id) {
                     PersistenceContext::get_querier()->update(DB_TABLE_MEMBER, array('editor' => $default_editor), 'WHERE editor=:old_editor', array('old_editor' => 'bbcode'));
                 } else {
                     $error = LangLoader::get_message('is_default_editor', 'editor-common');
                 }
             } else {
                 $error = LangLoader::get_message('last_editor_installed', 'editor-common');
             }
         }
     } else {
         $module = self::get_module($module_id);
         if ($module->get_configuration()->get_compatibility() != GeneralConfig::load()->get_phpboost_major_version()) {
             $error = LangLoader::get_message('modules.not_compatible', 'admin-modules-common');
         }
     }
     if (empty($error)) {
         $module = self::get_module($module_id);
         $module->set_activated($activated);
         ModulesConfig::load()->update($module);
         ModulesConfig::save();
         MenuService::generate_cache();
         Feed::clear_cache($module_id);
         if (ServerEnvironmentConfig::load()->is_url_rewriting_enabled()) {
             HtaccessFileCache::regenerate();
         }
     }
     return $error;
 }
 private function install_modules(array $modules_to_install)
 {
     foreach ($modules_to_install as $module_name) {
         ModulesManager::install_module($module_name, true, false);
     }
     if (ServerEnvironmentConfig::load()->is_url_rewriting_enabled()) {
         HtaccessFileCache::regenerate();
     }
 }
 public function execute()
 {
     $this->get_update_token();
     AppContext::get_cache_service()->clear_cache();
     Environment::try_to_increase_max_execution_time();
     // Mise en maintenance du site s'il ne l'est pas déjà
     $this->put_site_under_maintenance();
     // Suppression des fichiers qui ne sont plus présent dans la nouvelle version pour éviter les conflits
     $this->delete_old_files();
     // Suppression du captcha PHPBoostCaptcha
     $this->delete_phpboostcaptcha();
     // Désinstallation des anciens menus (dans /menus)
     $this->delete_old_menus();
     // Mise à jour des tables du noyau
     $this->update_kernel_tables();
     // Mise à jour de la version du noyau
     $this->update_kernel_version();
     // Mise à jour des modules
     $this->update_modules();
     // Mise à jour des thèmes
     $this->update_themes();
     // Mise à jour des langues
     $this->update_langs();
     // installation du module UrlUpdater pour la réécriture des Url des modules mis à jour
     ModulesManager::install_module('UrlUpdater');
     // Fin de la mise à jour : régénération du cache
     $this->delete_update_token();
     $this->generate_cache();
     HtaccessFileCache::regenerate();
 }
 protected function handle_submit()
 {
     AppContext::get_cache_service()->clear_cache();
     HtaccessFileCache::regenerate();
 }
 private function save()
 {
     $this->file_upload_config->set_authorization_enable_interface_files($this->form->get_value('authorizations')->build_auth_array());
     $this->file_upload_config->set_maximum_size_upload($this->form->get_value('size_limit') * 1024);
     if ($this->form->get_value('bandwidth_protect')) {
         $this->file_upload_config->set_enable_bandwidth_protect(true);
     } else {
         $this->file_upload_config->set_enable_bandwidth_protect(false);
     }
     $authorized_extensions = $this->form->get_value('authorized_extensions');
     $authorized_extensions = array();
     foreach ($this->form->get_value('authorized_extensions') as $field => $option) {
         $authorized_extensions[] = $option->get_raw_value();
     }
     $extend_extensions = preg_split('`, ?`', trim($this->form->get_value('extend_extensions')));
     if (is_array($extend_extensions)) {
         foreach ($extend_extensions as $extension) {
             //Suppression de tous les caractères interdits dans les extensions
             $extension = str_replace('-', '', Url::encode_rewrite($extension));
             if ($extension != '' && !isset($authorized_extensions[$extension]) && $extension != 'php') {
                 array_push($authorized_extensions, $extension);
             }
         }
     }
     $this->file_upload_config->set_authorized_extensions($authorized_extensions);
     FileUploadConfig::save();
     //Régénération du htaccess.
     HtaccessFileCache::regenerate();
 }
 private function save()
 {
     $this->general_config->set_site_url($this->form->get_value('site_url'));
     $this->general_config->set_site_path($this->form->get_value('site_path'));
     $this->general_config->set_site_timezone($this->form->get_value('site_timezone')->get_raw_value());
     GeneralConfig::save();
     $this->sessions_config->set_cookie_name($this->form->get_value('cookie_name'));
     $this->sessions_config->set_session_duration($this->form->get_value('session_duration'));
     $this->sessions_config->set_active_session_duration($this->form->get_value('active_session_duration'));
     SessionsConfig::save();
     if (!$this->form->field_is_disabled('url_rewriting_enabled')) {
         $this->server_environment_config->set_url_rewriting_enabled($this->form->get_value('url_rewriting_enabled'));
     }
     $this->server_environment_config->set_htaccess_manual_content($this->form->get_value('htaccess_manual_content'));
     $robots_file = new File(PATH_TO_ROOT . '/robots.txt');
     $robots_file->write($this->form->get_value('robots_content'));
     if (!$this->form->field_is_disabled('output_gziping_enabled')) {
         $this->server_environment_config->set_output_gziping_enabled($this->form->get_value('output_gziping_enabled'));
     }
     ServerEnvironmentConfig::save();
     $this->clear_cache();
     if ($this->form->get_value('debug_mode_enabled')) {
         $options = array();
         if ($this->form->get_value('debug_mode_type')->get_raw_value() == '1') {
             $options[Debug::STRICT_MODE] = true;
         }
         if ($this->form->get_value('display_database_query_enabled')) {
             $options[Debug::DISPLAY_DATABASE_QUERY] = true;
         }
         Debug::enabled_debug_mode($options);
     } else {
         Debug::disable_debug_mode();
     }
     HtaccessFileCache::regenerate();
 }