private function module_installed()
 {
     if ($this->module_id == null) {
         return false;
     }
     return ModulesManager::is_module_installed($this->module_id);
 }
Пример #2
0
 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));
         }
     }
 }
Пример #6
0
 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);
             }
         }
     }
 }
Пример #7
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.
 *
 ###################################################*/
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();
 }
Пример #10
0
 /**
  * @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';
     }
 }
Пример #11
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());
    }
}