private function module_installed() { if ($this->module_id == null) { return false; } return ModulesManager::is_module_installed($this->module_id); }
public final function get_right_controller_regarding_authorizations() { if (ModulesManager::is_module_installed(Environment::get_running_module_name())) { $module = ModulesManager::get_module(Environment::get_running_module_name()); if (!$module->is_activated()) { return PHPBoostErrors::module_not_activated(); } } else { return PHPBoostErrors::module_not_installed(); } return $this; }
public final function get_right_controller_regarding_authorizations() { if (!AppContext::get_current_user()->is_admin()) { return new UserLoginController(UserLoginController::ADMIN_LOGIN, substr(REWRITED_SCRIPT, strlen(GeneralConfig::load()->get_site_path()))); } else { if (ModulesManager::is_module_installed(Environment::get_running_module_name())) { $module = ModulesManager::get_module(Environment::get_running_module_name()); if (!$module->is_activated()) { return PHPBoostErrors::module_not_activated(); } } else { return PHPBoostErrors::module_not_installed(); } } return $this; }
public function get_menu_content() { //Create file template $tpl = new FileTemplate('shoutbox/ShoutboxModuleMiniMenu.tpl'); //Assign the lang file to the tpl $tpl->add_lang(LangLoader::get('common', 'shoutbox')); $config = ShoutboxConfig::load(); $forbidden_tags = array_flip($config->get_forbidden_formatting_tags()); if ($config->is_shout_bbcode_enabled()) { $smileys_cache = SmileysCache::load(); $smileys_per_line = 5; //Smileys par ligne. $smileys_displayed_number = 0; foreach ($smileys_cache->get_smileys() as $code_smile => $infos) { $smileys_displayed_number++; $tpl->assign_block_vars('smileys', array('C_END_LINE' => $smileys_displayed_number % $smileys_per_line == 0, 'URL' => TPL_PATH_TO_ROOT . '/images/smileys/' . $infos['url_smiley'], 'CODE' => addslashes($code_smile))); } } $tpl->put_all(array('C_MEMBER' => AppContext::get_current_user()->check_level(User::MEMBER_LEVEL), 'C_DISPLAY_FORM' => ShoutboxAuthorizationsService::check_authorizations()->write() && !AppContext::get_current_user()->is_readonly(), 'C_VALIDATE_ONKEYPRESS_ENTER' => $config->is_validation_onkeypress_enter_enabled(), 'C_DISPLAY_SHOUT_BBCODE' => ModulesManager::is_module_installed('BBCode') && $config->is_shout_bbcode_enabled(), 'C_BOLD_DISABLED' => isset($forbidden_tags['b']), 'C_ITALIC_DISABLED' => isset($forbidden_tags['i']), 'C_UNDERLINE_DISABLED' => isset($forbidden_tags['u']), 'C_STRIKE_DISABLED' => isset($forbidden_tags['s']), 'C_AUTOMATIC_REFRESH_ENABLED' => $config->is_automatic_refresh_enabled(), 'SHOUTBOX_PSEUDO' => AppContext::get_current_user()->get_display_name(), 'SHOUT_REFRESH_DELAY' => $config->get_refresh_delay(), 'L_ALERT_LINK_FLOOD' => sprintf(LangLoader::get_message('e_l_flood', 'errors'), $config->get_max_links_number_per_message()), 'SHOUTBOX_MESSAGES' => ShoutboxAjaxRefreshMessagesController::get_view())); return $tpl->render(); }
private function upload_module() { $modules_folder = PATH_TO_ROOT . '/'; if (!is_writable($modules_folder)) { $is_writable = @chmod($dir, 0755); } else { $is_writable = true; } if ($is_writable) { $file = $this->form->get_value('file'); if ($file !== null) { $modules_id = $file->get_name_without_extension(); if (ModulesManager::is_module_installed($modules_id)) { $upload = new Upload($modules_folder); $upload->disableContentCheck(); if ($upload->file('upload_module_file', '`([A-Za-z0-9-_]+)\\.(gz|zip)+$`i', false, 100000000, false)) { $archive_path = $modules_folder . $upload->get_filename(); if ($upload->get_extension() == 'gz') { include_once PATH_TO_ROOT . '/kernel/lib/php/pcl/pcltar.lib.php'; PclTarExtract($upload->get_filename(), $modules_folder); $file = new File($archive_path); $file->delete(); } else { if ($upload->get_extension() == 'zip') { include_once PATH_TO_ROOT . '/kernel/lib/php/pcl/pclzip.lib.php'; $zip = new PclZip($archive_path); $zip->extract(PCLZIP_OPT_PATH, $modules_folder, PCLZIP_OPT_SET_CHMOD, 0755); $file = new File($archive_path); $file->delete(); } else { $this->view->put('MSG', MessageHelper::display($this->lang['modules.upload_invalid_format'], MessageHelper::NOTICE, 4)); } } $this->upgrade_module($modules_id); } else { $this->view->put('MSG', MessageHelper::display($this->lang['modules.upload_error'], MessageHelper::NOTICE, 4)); } } else { $this->view->put('MSG', MessageHelper::display($this->lang['modules.not_installed_module'], MessageHelper::NOTICE, 4)); } } else { $this->view->put('MSG', MessageHelper::display($this->lang['modules.upload_error'], MessageHelper::NOTICE, 4)); } } }
private static function optimize_database_tables(Date $current_date) { if (ModulesManager::is_module_installed('database')) { $database_config = DatabaseConfig::load(); if ($database_config->is_database_tables_optimization_enabled()) { if ($database_config->get_database_tables_optimization_day() == 7 && $current_date->get_day() == 1 || $database_config->get_database_tables_optimization_day() == $current_date->get_day_of_week()) { $tables_to_optimize = array(); foreach (PersistenceContext::get_dbms_utils()->list_and_desc_tables(true) as $key => $table_info) { if (NumberHelper::round($table_info['data_free'] / 1024, 1) != 0) { $tables_to_optimize[] = $key; } } PersistenceContext::get_dbms_utils()->optimize($tables_to_optimize); } } } }
* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ if (defined('PHPBOOST') !== true) { exit; } $env = new AdminDisplayGraphicalEnvironment(); Environment::set_graphical_environment($env); if (!defined('TITLE')) { define('TITLE', $LANG['unknown']); } $module_id = Environment::get_running_module_name(); $section = ''; if (!Environment::home_page_running() && ModulesManager::is_module_installed($module_id)) { $section = ModulesManager::get_module($module_id)->get_configuration()->get_name(); } $env->set_page_title(TITLE, $section); ob_start();
private function upload_module() { $modules_folder = PATH_TO_ROOT . '/'; if (!is_writable($modules_folder)) { $is_writable = @chmod($dir, 0755); } else { $is_writable = true; } if ($is_writable) { $uploaded_file = $this->form->get_value('file'); if ($uploaded_file !== null) { $upload = new Upload($modules_folder); if ($upload->file('upload_module_file', '`([a-z0-9()_-])+\\.(gz|zip)+$`i')) { $archive = $modules_folder . $upload->get_filename(); if ($upload->get_extension() == 'gz') { include_once PATH_TO_ROOT . '/kernel/lib/php/pcl/pcltar.lib.php'; $archive_content = PclTarList($upload->get_filename()); } else { include_once PATH_TO_ROOT . '/kernel/lib/php/pcl/pclzip.lib.php'; $zip = new PclZip($archive); $archive_content = $zip->listContent(); } $archive_root_content = array(); $required_files = array('/config.ini', '/index.php'); foreach ($archive_content as $element) { if (substr($element['filename'], -1) == '/') { $element['filename'] = substr($element['filename'], 0, -1); } if (substr_count($element['filename'], '/') == 0) { $archive_root_content[] = array('filename' => $element['filename'], 'folder' => isset($element['folder']) && $element['folder'] == 1 || isset($element['typeflag']) && $element['typeflag'] == 5); } if (isset($archive_root_content[0])) { $name_in_archive = str_replace($archive_root_content[0]['filename'] . '/', '/', $element['filename']); if (in_array($name_in_archive, $required_files)) { unset($required_files[array_search($name_in_archive, $required_files)]); } } } if (count($archive_root_content) == 1 && $archive_root_content[0]['folder'] && empty($required_files)) { $module_id = $archive_root_content[0]['filename']; if (!ModulesManager::is_module_installed($module_id)) { if ($upload->get_extension() == 'gz') { PclTarExtract($upload->get_filename(), $modules_folder); } else { $zip->extract(PCLZIP_OPT_PATH, $modules_folder, PCLZIP_OPT_SET_CHMOD, 0755); } $this->install_module($module_id, true); } else { $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('element.already_exists', 'status-messages-common'), MessageHelper::NOTICE)); } } else { $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('error.invalid_archive_content', 'status-messages-common'), MessageHelper::NOTICE)); } $uploaded_file = new File($archive); $uploaded_file->delete(); } else { $this->view->put('MSG', MessageHelper::display($this->lang['modules.upload_invalid_format'], MessageHelper::NOTICE)); } } else { $this->view->put('MSG', MessageHelper::display($this->lang['modules.upload_error'], MessageHelper::NOTICE)); } } }
private function save() { $this->config->set_items_number_per_page($this->form->get_value('items_number_per_page')); if ($this->form->get_value('max_messages_number_enabled')) { $this->config->enable_max_messages_number(); $this->config->set_max_messages_number($this->form->get_value('max_messages_number')); } else { $this->config->disable_max_messages_number(); } $this->config->set_max_messages_number($this->form->get_value('max_messages_number')); if ($this->form->get_value('max_links_number_per_message_enabled')) { $this->config->enable_max_links_number_per_message(); $this->config->set_max_links_number_per_message($this->form->get_value('max_links_number_per_message')); } else { $this->config->disable_max_links_number_per_message(); } $forbidden_formatting_tags = array(); foreach ($this->form->get_value('forbidden_formatting_tags') as $field => $option) { $forbidden_formatting_tags[] = $option->get_raw_value(); } $this->config->set_forbidden_formatting_tags($forbidden_formatting_tags); if ($this->form->get_value('automatic_refresh_enabled')) { $this->config->enable_automatic_refresh(); $this->config->set_refresh_delay($this->form->get_value('refresh_delay') * 60000); } else { $this->config->disable_automatic_refresh(); } if ($this->form->get_value('date_displayed')) { $this->config->display_date(); } else { $this->config->hide_date(); } if ($this->form->get_value('shout_max_messages_number_enabled')) { $this->config->enable_shout_max_messages_number(); $this->config->set_shout_max_messages_number($this->form->get_value('shout_max_messages_number')); } else { $this->config->disable_shout_max_messages_number(); } if (ModulesManager::is_module_installed('BBCode')) { if ($this->form->get_value('shout_bbcode_enabled')) { $this->config->enable_shout_bbcode(); } else { $this->config->disable_shout_bbcode(); } } if ($this->form->get_value('validation_onkeypress_enter_enabled')) { $this->config->enable_validation_onkeypress_enter(); } else { $this->config->disable_validation_onkeypress_enter(); } $this->config->set_authorizations($this->form->get_value('authorizations')->build_auth_array()); ShoutboxConfig::save(); }
/** * @desc Get the number of the installed version * @return string version */ private function get_installed_version() { switch ($this->type) { case self::KERNEL_TYPE: return GeneralConfig::load()->get_phpboost_major_version(); case self::MODULE_TYPE: if (ModulesManager::is_module_installed($this->id)) { return ModulesManager::get_module($this->id)->get_configuration()->get_version(); } return '0'; case self::TEMPLATE_TYPE: if (ThemesManager::get_theme_existed($this->id)) { return ThemesManager::get_theme($this->id)->get_configuration()->get_version(); } return '0'; default: return '0'; } }
* * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ require_once 'init.php'; $running_module_name = Environment::get_running_module_name(); if (!in_array($running_module_name, array('user', 'admin', 'kernel'))) { if (ModulesManager::is_module_installed($running_module_name)) { $module = ModulesManager::get_module($running_module_name); if (!$module->is_activated()) { DispatchManager::redirect(PHPBoostErrors::module_not_activated()); } } else { DispatchManager::redirect(PHPBoostErrors::module_not_installed()); } }