function ModuleInterface($moduleId = '', $error = 0) { global $CONFIG, $MODULES; $this->id = $moduleId; $this->name = $this->id; $this->attributes = array(); $this->infos = array(); $this->functionalities = array(); $this->enabled = !empty($MODULES[strtolower($this->get_id())]) && $MODULES[strtolower($this->get_id())]['activ'] == '1'; $this->infos = load_ini_file(PATH_TO_ROOT . '/' . $this->id . '/lang/', get_ulang()); if (isset($this->infos['name'])) { $this->name = $this->infos['name']; } if ($error == 0) { $class = ucfirst($moduleId) . 'Interface'; $module_methods = get_class_methods($class); $generics_methods = get_class_methods('ModuleInterface'); $generics_methods[] = $class; $methods_diff = array_diff($module_methods, $generics_methods); foreach ($methods_diff as $method) { if (substr($method, 0, 1) != '_') { $this->functionalities[] = $method; } } $this->functionalities[] = 'none'; } $this->errors = $error; }
function _load_apps($checks = CHECK_ALL_UPDATES) { if (phpversion() > PHP_MIN_VERSION_UPDATES) { global $CONFIG; if ($checks & CHECK_KERNEL) { $this->apps[] = new Application('kernel', get_ulang(), APPLICATION_TYPE__KERNEL, phpboost_version(), PHPBOOST_OFFICIAL_REPOSITORY); } if ($checks & CHECK_MODULES) { global $MODULES; $kModules = array_keys($MODULES); foreach ($kModules as $module) { $infos = load_ini_file(PATH_TO_ROOT . '/' . $module . '/lang/', get_ulang()); $repository = !empty($infos['repository']) ? $infos['repository'] : PHPBOOST_OFFICIAL_REPOSITORY; if (!empty($infos['repository'])) { $this->apps[] = new Application($module, get_ulang(), APPLICATION_TYPE__MODULE, $infos['version'], $repository); } } } if ($checks & CHECK_THEMES) { global $THEME_CONFIG; $kThemes = array_keys($THEME_CONFIG); foreach ($kThemes as $theme) { $infos = get_ini_config(PATH_TO_ROOT . '/templates/' . $theme . '/config/', get_ulang()); if (!empty($infos['repository'])) { $this->apps[] = new Application($theme, get_ulang(), APPLICATION_TYPE__TEMPLATE, $infos['version'], $infos['repository']); } } } } }
private function add_language_bar() { $lang = AppContext::get_request()->get_string('lang', self::UPDATE_DEFAULT_LANGUAGE); $lang_dir = new Folder(PATH_TO_ROOT . '/lang'); $langs = array(); foreach ($lang_dir->get_folders('`^[a-z_-]+$`i') as $folder) { $info_lang = load_ini_file(PATH_TO_ROOT . '/lang/', $folder->get_name()); if (!empty($info_lang['name'])) { $langs[] = array('LANG' => $folder->get_name(), 'LANG_NAME' => $info_lang['name'], 'SELECTED' => $folder->get_name() == $lang ? 'selected="selected"' : ''); if ($folder->get_name() == $lang) { $this->full_view->put('LANG_IDENTIFIER', $info_lang['identifier']); } } } $this->full_view->put('lang', $langs); }
private function add_language_bar() { $lang = TextHelper::htmlspecialchars(AppContext::get_request()->get_string('lang', InstallController::DEFAULT_LOCALE)); $lang = in_array($lang, InstallationServices::get_available_langs()) ? $lang : InstallController::DEFAULT_LOCALE; $lang_dir = new Folder(PATH_TO_ROOT . '/lang'); $langs = array(); foreach ($lang_dir->get_folders('`^[a-z_-]+$`i') as $folder) { $info_lang = load_ini_file(PATH_TO_ROOT . '/lang/', $folder->get_name()); if (!empty($info_lang['name'])) { $langs[] = array('LANG' => $folder->get_name(), 'LANG_NAME' => $info_lang['name'], 'SELECTED' => $folder->get_name() == $lang ? 'selected="selected"' : ''); if ($folder->get_name() == $lang) { $this->full_view->put('LANG_IDENTIFIER', $info_lang['identifier']); } } } $this->full_view->put('lang', $langs); }
function get_module_name() { global $CONFIG; if (!empty($this->module)) { $module_ini = load_ini_file(PATH_TO_ROOT . '/' . $this->module . '/lang/', get_ulang()); return isset($module_ini['name']) ? $module_ini['name'] : ''; } else { return ''; } }
function add_mini_module($module, $generate_cache = true) { $info_module = load_ini_file(PATH_TO_ROOT . '/' . $module . '/lang/', get_ulang()); if (empty($info_module) || empty($info_module['mini_module'])) { return false; } $mini_modules_menus = parse_ini_array($info_module['mini_module']); if (empty($mini_modules_menus)) { return false; } $installed = false; foreach ($mini_modules_menus as $filename => $location) { if (file_exists(PATH_TO_ROOT . '/' . $module . '/' . $filename)) { $file = explode('.', $filename, 2); if (!is_array($file) || count($file) < 1) { continue; } include_once PATH_TO_ROOT . '/' . $module . '/' . $filename; if (!function_exists($file[0])) { continue; } $menu = new ModuleMiniMenu($module, $file[0]); $menu->enabled(false); $menu->set_auth(array('r1' => MENU_AUTH_BIT, 'r0' => MENU_AUTH_BIT, 'r-1' => MENU_AUTH_BIT)); $menu->set_block(MenuService::str_to_location($location)); MenuService::save($menu); if ($generate_cache) { MenuService::generate_cache(); } $installed = true; } } return $installed; }
} $key = array_search('default', $tpl_array); if (isset($key)) { unset($tpl_array[$key]); } $result = $Sql->query_while("SELECT theme \n\tFROM " . DB_TABLE_THEMES . "", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $key = array_search($row['theme'], $tpl_array); if ($key !== false) { unset($tpl_array[$key]); } } $Sql->query_close($result); $array_ranks = array(-1 => $LANG['guest'], 0 => $LANG['member'], 1 => $LANG['modo'], 2 => $LANG['admin']); foreach ($tpl_array as $theme_array => $value_array) { $info_theme = load_ini_file('../templates/' . $value_array . '/config/', get_ulang()); $options = ''; for ($i = -1; $i <= 2; $i++) { $selected = $i == -1 ? 'selected="selected"' : ''; $options .= '<option value="' . $i . '" ' . $selected . '>' . $array_ranks[$i] . '</option>'; } $Template->assign_block_vars('list', array('IDTHEME' => $value_array, 'THEME' => $info_theme['name'], 'ICON' => $value_array, 'VERSION' => $info_theme['version'], 'AUTHOR' => !empty($info_theme['author_mail']) ? '<a href="mailto:' . $info_theme['author_mail'] . '">' . $info_theme['author'] . '</a>' : $info_theme['author'], 'AUTHOR_WEBSITE' => !empty($info_theme['author_link']) ? '<a href="' . $info_theme['author_link'] . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/user_web.png" alt="" /></a>' : '', 'DESC' => $info_theme['info'], 'COMPAT' => $info_theme['compatibility'], 'HTML_VERSION' => $info_theme['html_version'], 'CSS_VERSION' => $info_theme['css_version'], 'MAIN_COLOR' => $info_theme['main_color'], 'VARIABLE_WIDTH' => $info_theme['variable_width'] ? $LANG['yes'] : $LANG['no'], 'WIDTH' => $info_theme['width'], 'OPTIONS' => $options)); $z++; } if ($z != 0) { $Template->assign_vars(array('C_THEME_PRESENT' => true)); } else { $Template->assign_vars(array('C_NO_THEME_PRESENT' => true)); } $Template->pparse('admin_themes_add'); }
define('TITLE', $LANG['administration']); require_once '../admin/admin_header.php'; $update = !empty($_GET['update']) ? true : false; if ($update) { $module_name = retrieve(GET, 'update', ''); if (empty($module_name)) { foreach ($_POST as $key => $value) { if ($value == $LANG['update_module']) { $module_name = $key; } } $activ_module = retrieve(POST, $module_name . 'activ', 0); } $ckeck_module = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MODULES . " WHERE name = '" . strprotect($module_name) . "'", __LINE__, __FILE__); if (!empty($ckeck_module)) { $info_module = load_ini_file('../' . $module_name . '/lang/', get_ulang()); $previous_version = $Sql->query("SELECT version FROM " . DB_TABLE_MODULES . " WHERE name = '" . strprotect($module_name) . "'", __LINE__, __FILE__); $dir_db_module = get_ulang(); $dir = '../' . $module_name . '/db'; import('io/filesystem/folder'); $folder_path = new Folder($dir . '/' . $dir_db_module); foreach ($folder_path->get_folders('`^[a-z0-9_ -]+$`i') as $dir) { $dir_db_module = $dir->get_name(); break; } $filesupdate = array(); $dir_db = '../' . urldecode($module_name) . '/db/' . $dir_db_module . '/'; $folder_path = new Folder($dir_db); foreach ($folder_path->get_files('`.*\\.(php|sql)$`i') as $files) { $file = $files->get_name(); if (strpos($file, DBTYPE) !== false) {
$Cache = new Cache(); $Cache->load('config'); $Cache->load('modules'); $Cache->load('themes'); $template->assign_vars(array('C_END' => true, 'CONTENTS' => sprintf($LANG['end_installation']), 'L_ADMIN_INDEX' => $LANG['admin_index'], 'L_SITE_INDEX' => $LANG['site_index'], 'U_ADMIN_INDEX' => '../admin/admin_index.php', 'U_INDEX' => '..' . $CONFIG['start_page'])); import('core/updates'); new Updates(); $Sql->close(); break; } $steps = array(array($LANG['introduction'], 'intro.png', 0), array($LANG['license'], 'license.png', 10), array($LANG['config_server'], 'config.png', 30), array($LANG['database_config'], 'database.png', 40), array($LANG['advanced_config'], 'advanced_config.png', 80), array($LANG['administrator_account_creation'], 'admin.png', 90), array($LANG['end'], 'end.png', 100)); $step_name = $steps[$step - 1][0]; import('io/filesystem/folder'); $lang_dir = new Folder('../lang'); foreach ($lang_dir->get_folders('`[a-z_-]`i') as $folder) { $info_lang = load_ini_file('../lang/', $folder->get_name()); if (!empty($info_lang['name'])) { $template->assign_block_vars('lang', array('LANG' => $folder->get_name(), 'LANG_NAME' => $info_lang['name'], 'SELECTED' => $folder->get_name() == $lang ? 'selected="selected"' : '')); if ($folder->get_name() == $lang) { $template->assign_vars(array('LANG_IDENTIFIER' => $info_lang['identifier'])); } } } $template->assign_vars(array('PATH_TO_ROOT' => TPL_PATH_TO_ROOT, 'LANG' => $lang, 'NUM_STEP' => $step, 'PROGRESS_LEVEL' => $steps[$step - 1][2], 'L_TITLE' => $LANG['page_title'] . ' - ' . $step_name, 'L_STEP' => $step_name, 'L_STEPS_LIST' => $LANG['steps_list'], 'L_LICENSE' => $LANG['license'], 'L_INSTALL_PROGRESS' => $LANG['install_progress'], 'L_APPENDICES' => $LANG['appendices'], 'L_DOCUMENTATION' => $LANG['documentation'], 'U_DOCUMENTATION' => $LANG['documentation_link'], 'L_RESTART_INSTALL' => $LANG['restart_installation'], 'L_CONFIRM_RESTART' => $LANG['confirm_restart_installation'], 'L_LANG' => $LANG['change_lang'], 'L_CHANGE' => $LANG['change'], 'L_YES' => $LANG['yes'], 'L_NO' => $LANG['no'], 'L_UNKNOWN' => $LANG['unknown'], 'L_POWERED_BY' => $LANG['powered_by'], 'PHPBOOST_VERSION' => UPDATE_VERSION, 'L_PHPBOOST_RIGHT' => $LANG['phpboost_right'], 'U_RESTART' => add_lang('install.php'))); for ($i = 1; $i <= floor($steps[$step - 1][2] * 24 / 100); $i++) { $template->assign_block_vars('progress_bar', array()); } for ($i = 1; $i <= STEPS_NUMBER; $i++) { if ($i < $step) { $row_class = 'row_success'; } elseif ($i == $step && $i == STEPS_NUMBER) {
$array_identifier = ''; $lang_identifier = '../images/stats/other.png'; foreach ($LANGS_CONFIG as $lang => $array_info) { $info_lang = load_ini_file('../lang/', $lang); $selected = ''; if ($CONFIG['lang'] == $lang) { $selected = ' selected="selected"'; $lang_identifier = '../images/stats/countries/' . $info_lang['identifier'] . '.png'; } $array_identifier .= 'array_identifier[\'' . $lang . '\'] = \'' . $info_lang['identifier'] . '\';' . "\n"; $Template->assign_block_vars('select_lang', array('NAME' => !empty($info_lang['name']) ? $info_lang['name'] : $lang, 'IDNAME' => $lang, 'SELECTED' => $selected)); } foreach ($THEME_CONFIG as $theme => $array_info) { if ($theme != 'default') { $selected = $CONFIG['theme'] == $theme ? ' selected="selected"' : ''; $info_theme = load_ini_file('../templates/' . $theme . '/config/', get_ulang()); $Template->assign_block_vars('select_theme', array('NAME' => $info_theme['name'], 'IDNAME' => $theme, 'SELECTED' => $selected)); } } $editors = array('bbcode' => 'BBCode', 'tinymce' => 'Tinymce'); $editor_options = ''; foreach ($editors as $code => $name) { $selected = $code == $mbr['user_editor'] ? 'selected="selected"' : ''; $editor_options .= '<option value="' . $code . '" ' . $selected . '>' . $name . '</option>'; } $timezone_options = ''; for ($i = -12; $i <= 14; $i++) { $selected = $i == $mbr['user_timezone'] ? 'selected="selected"' : ''; $name = !empty($i) ? $i > 0 ? ' + ' . $i : ' - ' . -$i : ''; $timezone_options .= '<option value="' . $i . '" ' . $selected . '> [GMT' . $name . ']</option>'; }
foreach ($lang_folder_path->get_folders('`^[a-z0-9_ -]+$`i') as $lang) { $dir_array[] = $lang->get_name(); } $result = $Sql->query_while("SELECT lang \n\tFROM " . PREFIX . "lang", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $key = array_search($row['lang'], $dir_array); if ($key !== false) { unset($dir_array[$key]); } } $Sql->query_close($result); $z = 0; $array_ranks = array(-1 => $LANG['guest'], 0 => $LANG['member'], 1 => $LANG['modo'], 2 => $LANG['admin']); foreach ($dir_array as $lang_array => $value_array) { $options = ''; for ($i = -1; $i <= 2; $i++) { $selected = $i == -1 ? 'selected="selected"' : ''; $options .= '<option value="' . $i . '" ' . $selected . '>' . $array_ranks[$i] . '</option>'; } $info_lang = load_ini_file('../lang/', $value_array); $Template->assign_block_vars('list', array('IDLANG' => $value_array, 'LANG' => $info_lang['name'], 'IDENTIFIER' => $info_lang['identifier'], 'AUTHOR' => !empty($info_lang['author_mail']) ? '<a href="mailto:' . $info_lang['author_mail'] . '">' . $info_lang['author'] . '</a>' : $info_lang['author'], 'AUTHOR_WEBSITE' => !empty($info_lang['author_link']) ? '<a href="' . $info_lang['author_link'] . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/user_web.png" alt="" /></a>' : '', 'COMPAT' => $info_lang['compatibility'], 'OPTIONS' => $options)); $z++; } if ($z != 0) { $Template->assign_vars(array('C_LANG_PRESENT' => true)); } else { $Template->assign_vars(array('C_NO_LANG_PRESENT' => true)); } $Template->pparse('admin_lang_add'); } require_once '../admin/admin_footer.php';
function uninstall_module($module_id, $drop_files) { global $Cache, $Sql, $CONFIG, $MODULES; $module_name = $Sql->query("SELECT name FROM " . DB_TABLE_MODULES . " WHERE id = '" . $module_id . "'", __LINE__, __FILE__); if (!empty($module_id) && !empty($module_name)) { $Sql->query_inject("DELETE FROM " . DB_TABLE_MODULES . " WHERE id = '" . $module_id . "'", __LINE__, __FILE__); $info_module = load_ini_file(PATH_TO_ROOT . '/' . $module_name . '/lang/', get_ulang()); $Cache->delete_file($module_name); if (!empty($info_module['com'])) { $Sql->query_inject("DELETE FROM " . DB_TABLE_COM . " WHERE script = '" . addslashes($info_module['com']) . "'", __LINE__, __FILE__); } if (!empty($info_module)) { $Sql->query_inject("DELETE FROM " . DB_TABLE_CONFIGS . " WHERE name = '" . addslashes($module_name) . "'", __LINE__, __FILE__); } import('core/menu_service'); MenuService::delete_mini_module($module_name); MenuService::delete_module_feeds_menus($module_name); $dir_db_module = get_ulang(); $dir = PATH_TO_ROOT . '/' . $module_name . '/db'; import('io/filesystem/folder'); $folder_path = new Folder($dir . '/' . $dir_db_module); foreach ($folder_path->get_folders('`^[a-z0-9_ -]+$`i') as $dir) { $dir_db_module = $dir->get_name(); break; } if (file_exists(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.' . DBTYPE . '.sql')) { $Sql->parse(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.' . DBTYPE . '.sql', PREFIX); } if (file_exists(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.php')) { @(include_once PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.php'); } $Cache->Generate_file('modules'); $Cache->Generate_file('css'); MenuService::generate_cache(); import('content/syndication/feed'); Feed::clear_cache(); if ($CONFIG['rewrite'] == 1 && !empty($info_module['url_rewrite'])) { $Cache->Generate_file('htaccess'); } if ($drop_files) { $folder = new Folder(PATH_TO_ROOT . '/' . $module_name); if (!$folder->delete()) { return MODULE_FILES_COULD_NOT_BE_DROPPED; } } return MODULE_UNINSTALLED; } else { return NOT_INSTALLED_MODULE; } }
$base = PATH_TO_ROOT . '/templates/' . get_utheme() . '/modules/' . $module . '/'; foreach ($array_alternative_css as $alternative) { $file = $base . $alternative . '.css'; if (file_exists($file)) { $alternative = $file; } else { $alternative = PATH_TO_ROOT . '/' . $module . '/templates/' . $alternative . '.css'; } $alternative_css .= '<link rel="stylesheet" href="' . $alternative . '" type="text/css" media="screen, handheld" />' . "\n"; } } } $Template->assign_vars(array('L_XML_LANGUAGE' => $LANG['xml_lang'], 'SITE_NAME' => $CONFIG['site_name'], 'TITLE' => TITLE, 'PATH_TO_ROOT' => TPL_PATH_TO_ROOT, 'SID' => SID, 'LANG' => get_ulang(), 'THEME' => get_utheme(), 'ALTERNATIVE_CSS' => $alternative_css, 'C_BBCODE_TINYMCE_MODE' => $User->get_attribute('user_editor') == 'tinymce', 'L_ADMINISTRATION' => $LANG['administration'], 'L_INDEX' => $LANG['index'], 'L_SITE' => $LANG['site'], 'L_INDEX_SITE' => $LANG['site'], 'L_INDEX_ADMIN' => $LANG['administration'], 'L_DISCONNECT' => $LANG['disconnect'], 'L_TOOLS' => $LANG['tools'], 'L_CONFIGURATION' => $LANG['configuration'], 'L_CONFIG_ADVANCED' => $LANG['config_advanced'], 'L_ADD' => $LANG['add'], 'L_ADD_CONTENT_MENU' => $LANG['menus_content_add'], 'L_ADD_LINKS_MENU' => $LANG['menus_links_add'], 'L_ADD_FEED_MENU' => $LANG['menus_feed_add'], 'L_MANAGEMENT' => $LANG['management'], 'L_PUNISHEMENT' => $LANG['punishement'], 'L_UPDATE_MODULES' => $LANG['update_module'], 'L_SITE_LINK' => $LANG['link_management'], 'L_SITE_MENU' => $LANG['menu_management'], 'L_MODERATION' => $LANG['moderation'], 'L_MAINTAIN' => $LANG['maintain'], 'L_USER' => $LANG['member_s'], 'L_EXTEND_FIELD' => $LANG['extend_field'], 'L_RANKS' => $LANG['ranks'], 'L_TERMS' => $LANG['terms'], 'L_GROUP' => $LANG['group'], 'L_CONTENTS' => $LANG['content'], 'L_PAGES' => $LANG['pages'], 'L_FILES' => $LANG['files'], 'L_THEME' => $LANG['themes'], 'L_LANG' => $LANG['languages'], 'L_SMILEY' => $LANG['smile'], 'L_ADMINISTRATOR_ALERTS' => $LANG['administrator_alerts'], 'L_STATS' => $LANG['stats'], 'L_ERRORS' => $LANG['errors'], 'L_SERVER' => $LANG['server'], 'L_PHPINFO' => $LANG['phpinfo'], 'L_SYSTEM_REPORT' => $LANG['system_report'], 'L_COMMENTS' => $LANG['comments'], 'L_UPDATER' => $LANG['updater'], 'L_KERNEL' => $LANG['kernel'], 'L_MODULES' => $LANG['modules'], 'L_THEMES' => $LANG['themes'], 'L_CACHE' => $LANG['cache'], 'L_SYNDICATION' => $LANG['syndication'], 'L_EXTEND_MENU' => $LANG['extend_menu'], 'L_CONTENT_CONFIG' => $LANG['content_config'], 'U_INDEX_SITE' => get_start_page(), 'L_WEBSITE_UPDATES' => $LANG['website_updates'])); $modules_config = array(); foreach ($MODULES as $name => $array) { $array_info = load_ini_file(PATH_TO_ROOT . '/' . $name . '/lang/', get_ulang()); if (is_array($array_info)) { $array_info['module_name'] = $name; $modules_config[$array_info['name']] = $array_info; } } ksort($modules_config); $array_pos = array(0, 4, 3, 3, 3, 1); $menus_numbers = array('index' => 1, 'administration' => 2, 'tools' => 3, 'members' => 4, 'content' => 5, 'modules' => 6); foreach ($modules_config as $module_name => $auth) { $name = $modules_config[$module_name]['module_name']; if (is_array($modules_config[$module_name])) { $menu_pos_name = $modules_config[$module_name]['admin']; $menu_pos = 0; if (!empty($menu_pos_name) && !empty($menus_numbers[$menu_pos_name])) { $menu_pos = $menus_numbers[$menu_pos_name];
function _get_htaccess() { global $CONFIG, $Sql; if ($CONFIG['rewrite']) { $htaccess_rules = 'Options +FollowSymlinks' . "\n" . 'RewriteEngine on' . "\n"; $result = $Sql->query_while("SELECT name\n\t\t\tFROM " . PREFIX . "modules\n\t\t\tWHERE activ = 1", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $get_info_modules = load_ini_file(PATH_TO_ROOT . '/' . $row['name'] . '/lang/', get_ulang()); if (!empty($get_info_modules['url_rewrite'])) { $htaccess_rules .= str_replace('\\n', "\n", str_replace('DIR', DIR, $get_info_modules['url_rewrite'])) . "\n\n"; } } $htaccess_rules .= '# Core #' . "\n" . 'RewriteRule ^(.*)member/member-([0-9]+)-?([0-9]*)\\.php$ ' . DIR . '/member/member.php?id=$2&p=$3 [L,QSA]' . "\n" . 'RewriteRule ^(.*)member/pm-?([0-9]+)-?([0-9]{0,})-?([0-9]{0,})-?([0-9]{0,})-?([a-z_]{0,})\\.php$ ' . DIR . '/member/pm.php?pm=$2&id=$3&p=$4"e=$5 [L,QSA]'; $htaccess_rules .= "\n\n" . '# Error page #' . "\n" . 'ErrorDocument 404 ' . HOST . DIR . '/member/404.php'; global $CONFIG_UPLOADS; $this->load('uploads'); if ($CONFIG_UPLOADS['bandwidth_protect']) { $htaccess_rules .= "\n\n# Bandwith protection #\nRewriteCond %{HTTP_REFERER} !^\$\nRewriteCond %{HTTP_REFERER} !^" . HOST . "\nReWriteRule .*upload/.*\$ - [F]"; } $htaccess_rules .= "\n\n" . '# Avoid Hacking Attempt #' . "\n" . 'RewriteCond %{HTTP_USER_AGENT} libwww [NC]' . "\n" . 'RewriteRule .* - [F,L]'; } else { $htaccess_rules = 'ErrorDocument 404 ' . HOST . DIR . '/member/404.php'; } if (!empty($CONFIG['htaccess_manual_content'])) { $htaccess_rules .= "\n\n#Manual content\n" . $CONFIG['htaccess_manual_content']; } import('io/filesystem/file'); $file = new File(PATH_TO_ROOT . '/.htaccess'); $file->delete(); $file->open(); $file->write($htaccess_rules); $file->close(); }
function _get_table_module() { global $Sql, $CONFIG; $info_module = load_ini_file(PATH_TO_ROOT . '/' . $this->module_folder . '/lang/', get_ulang()); $check_script = false; if (isset($info_module['note'])) { if ($info_module['note'] == $this->script) { $idprov = $Sql->query("SELECT id FROM " . PREFIX . $info_module['note'] . " WHERE id = '" . $this->idprov . "'", __LINE__, __FILE__); if ($idprov == $this->idprov) { $check_script = true; } } } return $check_script ? $info_module['note'] : '0'; }
$Template->pparse('admin_lang_management'); } } else { $Template->set_filenames(array('admin_lang_management' => 'admin/admin_lang_management.tpl')); $Template->assign_vars(array('C_LANG_MAIN' => true, 'THEME' => get_utheme(), 'L_LANG_ADD' => $LANG['lang_add'], 'L_LANG_MANAGEMENT' => $LANG['lang_management'], 'L_LANG_ON_SERV' => $LANG['lang_on_serv'], 'L_LANG' => $LANG['lang'], 'L_EXPLAIN_DEFAULT_LANG' => $LANG['explain_default_lang'], 'L_NO_LANG_ON_SERV' => $LANG['no_lang_on_serv'], 'L_RANK' => $LANG['rank'], 'L_AUTHOR' => $LANG['author'], 'L_COMPAT' => $LANG['compat'], 'L_ACTIV' => $LANG['activ'], 'L_DESC' => $LANG['description'], 'L_YES' => $LANG['yes'], 'L_NO' => $LANG['no'], 'L_GUEST' => $LANG['guest'], 'L_UNINSTALL' => $LANG['uninstall'])); $get_error = retrieve(GET, 'error', ''); if ($get_error == 'incomplete') { $Errorh->handler($LANG['e_incomplete'], E_USER_NOTICE); } elseif (!empty($get_error) && isset($LANG[$get_error])) { $Errorh->handler($LANG[$get_error], E_USER_WARNING); } $z = 0; $array_ranks = array(-1 => $LANG['guest'], 0 => $LANG['member'], 1 => $LANG['modo'], 2 => $LANG['admin']); $result = $Sql->query_while("SELECT id, lang, activ, secure \n\tFROM " . PREFIX . "lang", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $info_lang = load_ini_file('../lang/', $row['lang']); $options = ''; for ($i = -1; $i <= 2; $i++) { $selected = $i == $row['secure'] ? 'selected="selected"' : ''; $options .= '<option value="' . $i . '" ' . $selected . '>' . $array_ranks[$i] . '</option>'; } $default_lang = $row['lang'] == $CONFIG['lang']; $Template->assign_block_vars('list', array('C_LANG_DEFAULT' => $default_lang ? true : false, 'C_LANG_NOT_DEFAULT' => !$default_lang ? true : false, 'IDLANG' => $row['id'], 'LANG' => $info_lang['name'], 'IDENTIFIER' => $info_lang['identifier'], 'AUTHOR' => !empty($info_lang['author_mail']) ? '<a href="mailto:' . $info_lang['author_mail'] . '">' . $info_lang['author'] . '</a>' : $info_lang['author'], 'AUTHOR_WEBSITE' => !empty($info_lang['author_link']) ? '<a href="' . $info_lang['author_link'] . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/user_web.png" alt="" /></a>' : '', 'COMPAT' => $info_lang['compatibility'], 'OPTIONS' => $options, 'LANG_ACTIV' => $row['activ'] == 1 ? 'checked="checked"' : '', 'LANG_UNACTIV' => $row['activ'] == 0 ? 'checked="checked"' : '')); $z++; } $Sql->query_close($result); if ($z != 0) { $Template->assign_vars(array('C_LANG_PRESENT' => true)); } else { $Template->assign_vars(array('C_NO_LANG_PRESENT' => true)); }
} else { $Template->set_filenames(array('admin_modules_management' => 'admin/admin_modules_management.tpl')); $Template->assign_vars(array('C_MODULES_LIST' => true, 'THEME' => get_utheme(), 'LANG' => get_ulang(), 'L_MODULES_MANAGEMENT' => $LANG['modules_management'], 'L_ADD_MODULES' => $LANG['add_modules'], 'L_UPDATE_MODULES' => $LANG['update_modules'], 'L_MODULES_INSTALLED' => $LANG['modules_installed'], 'L_NAME' => $LANG['name'], 'L_DESC' => $LANG['description'], 'L_ACTIV' => $LANG['activ'], 'L_AUTHOR' => $LANG['author'], 'L_COMPAT' => $LANG['compat'], 'L_USE_SQL' => $LANG['use_sql'], 'L_ADMIN' => $LANG['administration'], 'L_USE_CACHE' => $LANG['use_cache'], 'L_ALTERNATIVE_CSS' => $LANG['alternative_css'], 'L_STARTEABLE_PAGE' => $LANG['starteable_page'], 'L_YES' => $LANG['yes'], 'L_NO' => $LANG['no'], 'L_AUTH_ACCESS' => $LANG['auth_access'], 'L_UPDATE' => $LANG['update'], 'L_MODULES_AVAILABLE' => $LANG['modules_available'], 'L_NO_MODULES_INSTALLED' => $LANG['no_modules_installed'], 'L_UNINSTALL' => $LANG['uninstall'], 'L_UPDATE' => $LANG['update'], 'L_RESET' => $LANG['reset'])); $get_error = retrieve(GET, 'error', ''); if ($get_error == 'incomplete') { $Errorh->handler($LANG['e_incomplete'], E_USER_NOTICE); } elseif (!empty($get_error) && isset($LANG[$get_error])) { $Errorh->handler($LANG[$get_error], E_USER_WARNING); } $i = 0; $array_modules = array(); $array_info_module = array(); $array_ranks = array(-1 => $LANG['guest'], 0 => $LANG['member'], 1 => $LANG['modo'], 2 => $LANG['admin']); $result = $Sql->query_while("SELECT id, name, auth, activ\n\tFROM " . PREFIX . "modules\n\tORDER BY name", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $array_info_module[$row['name']] = load_ini_file('../' . $row['name'] . '/lang/', get_ulang()); $array_modules[$array_info_module[$row['name']]['name']] = array('id' => $row['id'], 'name' => $row['name'], 'auth' => $row['auth'], 'activ' => $row['activ']); } $Sql->query_close($result); ksort($array_modules); foreach ($array_modules as $name => $array_config) { $row = $array_modules[$name]; $info_module = $array_info_module[$array_config['name']]; $array_auth = !empty($row['auth']) ? unserialize($row['auth']) : array(); $l_tables = $info_module['sql_table'] > 1 ? $LANG['tables'] : $LANG['table']; $Template->assign_block_vars('installed', array('ID' => $row['id'], 'NAME' => ucfirst($info_module['name']), 'ICON' => $row['name'], 'VERSION' => $info_module['version'], 'AUTHOR' => !empty($info_module['author_mail']) ? '<a href="mailto:' . $info_module['author_mail'] . '">' . $info_module['author'] . '</a>' : $info_module['author'], 'AUTHOR_WEBSITE' => !empty($info_module['author_link']) ? '<a href="' . $info_module['author_link'] . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/user_web.png" alt="" /></a>' : '', 'DESC' => $info_module['info'], 'COMPAT' => $info_module['compatibility'], 'ADMIN' => $info_module['admin'] ? $LANG['yes'] : $LANG['no'], 'USE_SQL' => $info_module['sql_table'] > 0 ? $LANG['yes'] : $LANG['no'], 'SQL_TABLE' => $info_module['sql_table'] > 0 ? '(' . $info_module['sql_table'] . ' ' . $l_tables . ')' : '', 'USE_CACHE' => $info_module['cache'] ? $LANG['yes'] : $LANG['no'], 'ALTERNATIVE_CSS' => $info_module['css'] ? $LANG['yes'] : $LANG['no'], 'STARTEABLE_PAGE' => $info_module['starteable_page'] ? $LANG['yes'] : $LANG['no'], 'ACTIV_ENABLED' => $row['activ'] == 1 ? 'checked="checked"' : '', 'ACTIV_DISABLED' => $row['activ'] == 0 ? 'checked="checked"' : '', 'AUTH_MODULES' => Authorizations::generate_select(ACCESS_MODULE, $array_auth, array(2 => true), $row['id']))); $i++; } if ($i == 0) { $Template->assign_vars(array('C_NO_MODULE_INSTALLED' => true)); } else {
<?php ########################admin_body_footer.tpl####################### $Sql->close(); $Template->set_filenames(array('admin_footer' => 'admin/admin_footer.tpl')); $THEME = load_ini_file(PATH_TO_ROOT . '/templates/' . get_utheme() . '/config/', get_ulang()); $Template->assign_vars(array('HOST' => HOST, 'DIR' => DIR, 'VERSION' => $CONFIG['version'], 'THEME' => get_utheme(), 'C_DISPLAY_AUTHOR_THEME' => $CONFIG['theme_author'] ? true : false, 'L_POWERED_BY' => $LANG['powered_by'], 'L_PHPBOOST_RIGHT' => $LANG['phpboost_right'], 'L_THEME' => $LANG['theme'], 'L_THEME_NAME' => $THEME['name'], 'L_BY' => strtolower($LANG['by']), 'L_THEME_AUTHOR' => $THEME['author'], 'U_THEME_AUTHOR_LINK' => $THEME['author_link'], 'PHPBOOST_VERSION' => $CONFIG['version'])); if ($CONFIG['bench']) { $Bench->stop(); $Template->assign_vars(array('C_DISPLAY_BENCH' => true, 'BENCH' => $Bench->to_string(), 'REQ' => $Sql->get_executed_requests_number(), 'L_UNIT_SECOND' => HOST, 'L_REQ' => $LANG['sql_req'], 'L_ACHIEVED' => $LANG['achieved'], 'L_UNIT_SECOND' => $LANG['unit_seconds_short'])); } $Template->pparse('admin_footer'); ob_end_flush();
if (!$lock_file->exists()) { $lock_file->write(''); $lock_file->flush(); } $lock_file->lock(false); $yesterday_timestamp = time() - 86400; if ((int) $Sql->query("\n\t SELECT COUNT(*)\n FROM " . DB_TABLE_STATS . "\n WHERE stats_year = '" . gmdate_format('Y', $yesterday_timestamp, TIMEZONE_SYSTEM) . "' AND\n stats_month = '" . gmdate_format('m', $yesterday_timestamp, TIMEZONE_SYSTEM) . "' AND\n stats_day = '" . gmdate_format('d', $yesterday_timestamp, TIMEZONE_SYSTEM) . "'", __LINE__, __FILE__) == 0) { $Cache->generate_file('day'); require_once PATH_TO_ROOT . '/kernel/changeday.php'; change_day(); } $lock_file->close(); } define('MODULE_NAME', get_module_name()); if (isset($MODULES[MODULE_NAME])) { if ($MODULES[MODULE_NAME]['activ'] == 0) { $Errorh->handler('e_unactivated_module', E_USER_REDIRECT); } else { if (!$User->check_auth($MODULES[MODULE_NAME]['auth'], ACCESS_MODULE)) { $Errorh->handler('e_auth', E_USER_REDIRECT); } } } elseif (!in_array(MODULE_NAME, array('member', 'admin', 'kernel', ''))) { $array_info_module = load_ini_file(PATH_TO_ROOT . '/' . MODULE_NAME . '/lang/', get_ulang()); if (!empty($array_info_module['name'])) { $Errorh->handler('e_uninstalled_module', E_USER_REDIRECT); } } if ($User->check_level(MEMBER_LEVEL)) { $Session->csrf_post_protect(); }
$Template->assign_vars(array('JS_LANG_IDENTIFIER' => $array_identifier, 'IMG_LANG_IDENTIFIER' => $lang_identifier)); $tpl_array = array(); $lang_folder_path = new Folder('../templates/'); foreach ($lang_folder_path->get_folders('`^[a-z0-9_ -]+$`i') as $lang) { $tpl_array[] = $lang->get_name(); } $theme_array_bdd = array(); $result = $Sql->query_while("SELECT theme \n\tFROM " . DB_TABLE_THEMES . "", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { if (array_search($row['theme'], $tpl_array) !== false) { $theme_array_bdd[] = $row['theme']; } } $Sql->query_close($result); foreach ($theme_array_bdd as $theme_array => $theme_value) { $theme_info = load_ini_file('../templates/' . $theme_value . '/config/', get_ulang()); if ($theme_info) { $theme_name = !empty($theme_info['name']) ? $theme_info['name'] : $theme_value; $selected = $theme_value == $CONFIG['theme'] ? 'selected="selected"' : ''; $Template->assign_block_vars('select', array('THEME' => '<option value="' . $theme_value . '" ' . $selected . '>' . $theme_name . '</option>')); } } $Template->pparse('admin_config'); } if (!empty($_GET['unlock'])) { import('io/mail'); $Mail = new Mail(); $unlock_admin_clean = substr(strhash(uniqid(mt_rand(), true)), 0, 18); $unlock_admin = strhash($unlock_admin_clean); $CONFIG['unlock_admin'] = $unlock_admin; $Sql->query_inject("UPDATE " . DB_TABLE_CONFIGS . " SET value = '" . addslashes(serialize($CONFIG)) . "' WHERE name = 'config'", __LINE__, __FILE__);
$creation_date = $this_contribution->get_creation_date(); $fixing_date = $this_contribution->get_fixing_date(); if ($User->check_auth($this_contribution->get_auth(), CONTRIBUTION_AUTH_BIT) || $User->get_attribute('user_id') == $this_contribution->get_poster_id()) { if ($num_contributions > CONTRIBUTIONS_PER_PAGE * ($pagination->get_current_page() - 1) && $num_contributions <= CONTRIBUTIONS_PER_PAGE * $pagination->get_current_page()) { $template->assign_block_vars('contributions', array('ENTITLED' => $this_contribution->get_entitled(), 'MODULE' => $this_contribution->get_module_name(), 'STATUS' => $this_contribution->get_status_name(), 'CREATION_DATE' => $creation_date->format(DATE_FORMAT_SHORT), 'FIXING_DATE' => $fixing_date->format(DATE_FORMAT_SHORT), 'POSTER' => $this_contribution->get_poster_login(), 'FIXER' => $this_contribution->get_fixer_login(), 'ACTIONS' => '', 'U_FIXER_PROFILE' => PATH_TO_ROOT . '/member/' . url('member.php?id=' . $this_contribution->get_fixer_id(), 'member-' . $this_contribution->get_fixer_id() . '.php'), 'U_POSTER_PROFILE' => PATH_TO_ROOT . '/member/' . url('member.php?id=' . $this_contribution->get_poster_id(), 'member-' . $this_contribution->get_poster_id() . '.php'), 'U_CONSULT' => PATH_TO_ROOT . '/member/' . url('contribution_panel.php?id=' . $this_contribution->get_id()), 'C_FIXED' => $this_contribution->get_status() == EVENT_STATUS_PROCESSED, 'C_PROCESSING' => $this_contribution->get_status() == EVENT_STATUS_BEING_PROCESSED)); } $num_contributions++; } } if ($num_contributions > 1) { $template->assign_vars(array('PAGINATION' => $pagination->display('contribution_panel.php?p=%d&criteria=' . $criteria . '&order=' . $order, $num_contributions - 1, 'p', CONTRIBUTIONS_PER_PAGE, 3))); } else { $template->assign_vars(array('C_NO_CONTRIBUTION' => true, 'L_NO_CONTRIBUTION_TO_DISPLAY' => $LANG['no_contribution'])); } define('NUMBER_OF_MODULES_PER_LINE', 4); $i_module = 0; foreach ($MODULES as $module_name => $module_infos) { $module_ini = load_ini_file(PATH_TO_ROOT . '/' . $module_name . '/lang/', get_ulang()); if (!empty($module_ini['contribution_interface'])) { if ($i_module % NUMBER_OF_MODULES_PER_LINE == 0) { $template->assign_block_vars('row', array()); } $template->assign_block_vars('row.module', array('WIDTH' => (int) (100.0 / NUMBER_OF_MODULES_PER_LINE), 'U_MODULE_LINK' => PATH_TO_ROOT . '/' . $module_name . '/' . url($module_ini['contribution_interface']), 'MODULE_ID' => $module_name, 'MODULE_NAME' => $module_ini['name'], 'LINK_TITLE' => sprintf($LANG['contribute_in_module_name'], $module_ini['name']))); $i_module++; } } $template->assign_vars(array('L_ENTITLED' => $LANG['contribution_entitled'], 'L_STATUS' => $LANG['contribution_status'], 'L_POSTER' => $LANG['contributor'], 'L_CREATION_DATE' => $LANG['contribution_creation_date'], 'L_FIXER' => $LANG['contribution_fixer'], 'L_FIXING_DATE' => $LANG['contribution_fixing_date'], 'L_MODULE' => $LANG['contribution_module'], 'L_CONTRIBUTION_PANEL' => $LANG['contribution_panel'], 'L_CONTRIBUTION_LIST' => $LANG['contribution_list'], 'L_CONTRIBUTE' => $LANG['contribute'], 'L_CONTRIBUTE_EXPLAIN' => $LANG['contribute_in_modules_explain'], 'L_NO_MODULE_IN_WHICH_CONTRIBUTE' => $LANG['no_module_to_contribute'], 'C_NO_MODULE_IN_WHICH_CONTRIBUTE' => $i_module == 0)); $template->assign_vars(array('C_ORDER_ENTITLED_ASC' => $criteria == 'entitled' && $order == 'asc', 'U_ORDER_ENTITLED_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=entitled&order=asc'), 'C_ORDER_ENTITLED_DESC' => $criteria == 'entitled' && $order == 'desc', 'U_ORDER_ENTITLED_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=entitled&order=desc'), 'C_ORDER_MODULE_ASC' => $criteria == 'module' && $order == 'asc', 'U_ORDER_MODULE_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=module&order=asc'), 'C_ORDER_MODULE_DESC' => $criteria == 'module' && $order == 'desc', 'U_ORDER_MODULE_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=module&order=desc'), 'C_ORDER_STATUS_ASC' => $criteria == 'current_status' && $order == 'asc', 'U_ORDER_STATUS_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=current_status&order=asc'), 'C_ORDER_STATUS_DESC' => $criteria == 'current_status' && $order == 'desc', 'U_ORDER_STATUS_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=current_status&order=desc'), 'C_ORDER_CREATION_DATE_ASC' => $criteria == 'creation_date' && $order == 'asc', 'U_ORDER_CREATION_DATE_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=creation_date&order=asc'), 'C_ORDER_CREATION_DATE_DESC' => $criteria == 'creation_date' && $order == 'desc', 'U_ORDER_CREATION_DATE_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=creation_date&order=desc'), 'C_ORDER_FIXING_DATE_ASC' => $criteria == 'fixing_date' && $order == 'asc', 'U_ORDER_FIXING_DATE_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=fixing_date&order=asc'), 'C_ORDER_FIXING_DATE_DESC' => $criteria == 'fixing_date' && $order == 'desc', 'U_ORDER_FIXING_DATE_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=fixing_date&order=desc'), 'C_ORDER_POSTER_ASC' => $criteria == 'poster_id' && $order == 'asc', 'U_ORDER_POSTER_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=poster_id&order=asc'), 'C_ORDER_POSTER_DESC' => $criteria == 'poster_id' && $order == 'desc', 'U_ORDER_POSTER_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=poster_id&order=desc'), 'C_ORDER_FIXER_ASC' => $criteria == 'fixer_id' && $order == 'asc', 'U_ORDER_FIXER_ASC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=fixer_id&order=asc'), 'C_ORDER_FIXER_DESC' => $criteria == 'fixer_id' && $order == 'desc', 'U_ORDER_FIXER_DESC' => url('contribution_panel.php?p=' . $pagination->_get_var_page('p') . '&criteria=fixer_id&order=desc'))); } $template->parse(); require_once '../kernel/footer.php';
function _get_info_module() { global $Sql, $CONFIG; $info_module = load_ini_file(PATH_TO_ROOT . '/' . $this->module_folder . '/lang/', get_ulang()); $check_script = false; if (isset($info_module['com'])) { if ($info_module['com'] == $this->script) { $info_sql_module = $Sql->query_array(PREFIX . strprotect($info_module['com']), "id", "nbr_com", "lock_com", "WHERE id = '" . $this->idprov . "'", __LINE__, __FILE__); if ($info_sql_module['id'] == $this->idprov) { $check_script = true; } } } return $check_script ? array(strprotect($info_module['com']), $info_sql_module['nbr_com'], (bool) $info_sql_module['lock_com']) : array('', 0, 0); }
for ($i = -12; $i <= 14; $i++) { $selected = $i == $CONFIG['timezone'] ? 'selected="selected"' : ''; $name = !empty($i) ? $i > 0 ? ' + ' . $i : ' - ' . -$i : ''; $select_timezone .= '<option value="' . $i . '" ' . $selected . '> [GMT' . $name . ']</option>'; } $Template->assign_vars(array('JS_LANG_IDENTIFIER' => $array_identifier, 'IMG_LANG_IDENTIFIER' => $lang_identifier, 'SELECT_EDITORS' => $select_editors, 'SELECT_TIMEZONE' => $select_timezone, 'L_REQUIRE_MAIL' => $LANG['require_mail'], 'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'], 'L_REQUIRE_PASSWORD' => $LANG['require_password'], 'L_REGISTER' => $LANG['register'], 'L_REQUIRE' => $LANG['require'], 'L_PASSWORD_SAME' => $LANG['e_pass_same'], 'L_MAIL_INVALID' => $LANG['e_mail_invalid'], 'L_PSEUDO_AUTH' => $LANG['e_pseudo_auth'], 'L_MAIL_AUTH' => $LANG['e_mail_auth'], 'L_MAIL' => $LANG['mail'], 'L_VALID' => $LANG['valid'], 'L_PSEUDO' => $LANG['pseudo'], 'L_PSEUDO_HOW' => $LANG['pseudo_how'], 'L_PASSWORD' => $LANG['password'], 'L_PASSWORD_HOW' => $LANG['password_how'], 'L_CONFIRM_PASSWORD' => $LANG['confirm_password'], 'L_VERIF_CODE' => $LANG['verif_code'], 'L_VERIF_CODE_EXPLAIN' => $LANG['verif_code_explain'], 'L_LANG_CHOOSE' => $LANG['choose_lang'], 'L_OPTIONS' => $LANG['options'], 'L_THEME_CHOOSE' => $LANG['choose_theme'], 'L_EDITOR_CHOOSE' => $LANG['choose_editor'], 'L_TIMEZONE_CHOOSE' => $LANG['timezone_choose'], 'L_TIMEZONE_CHOOSE_EXPLAIN' => $LANG['timezone_choose_explain'], 'L_HIDE_MAIL' => $LANG['hide_mail'], 'L_HIDE_MAIL_WHO' => $LANG['hide_mail_who'], 'L_INFO' => $LANG['info'], 'L_WEB_SITE' => $LANG['web_site'], 'L_LOCALISATION' => $LANG['localisation'], 'L_JOB' => $LANG['job'], 'L_HOBBIES' => $LANG['hobbies'], 'L_SEX' => $LANG['sex'], 'L_MALE' => $LANG['male'], 'L_FEMALE' => $LANG['female'], 'L_DATE_OF_BIRTH' => $LANG['date_of_birth'], 'L_DATE_FORMAT' => $LANG['date_birth_format'], 'L_SIGN' => $LANG['sign'], 'L_SIGN_WHERE' => $LANG['sign_where'], 'L_CONTACT' => $LANG['contact'], 'L_AVATAR_MANAGEMENT' => $LANG['avatar_gestion'], 'L_AVATAR_LINK' => $LANG['avatar_link'], 'L_AVATAR_LINK_WHERE' => $LANG['avatar_link_where'], 'L_WEIGHT_MAX' => $LANG['weight_max'], 'L_UPLOAD_AVATAR' => $LANG['upload_avatar'], 'L_UPLOAD_AVATAR_WHERE' => $LANG['upload_avatar_where'], 'L_SUBMIT' => $LANG['submit'], 'L_PREVIOUS_PASS' => $LANG['previous_password'], 'L_EDIT_JUST_IF_MODIF' => $LANG['fill_only_if_modified'], 'L_NEW_PASS' => $LANG['new_password'], 'L_CONFIRM_PASS' => $LANG['confirm_password'], 'L_LANG_CHOOSE' => $LANG['choose_lang'], 'L_HIDE_MAIL' => $LANG['hide_mail'], 'L_HIDE_MAIL_WHO' => $LANG['hide_mail_who'], 'L_INFO' => $LANG['info'], 'L_SITE_WEB' => $LANG['web_site'], 'L_LOCALISATION' => $LANG['localisation'], 'L_HEIGHT_MAX' => $LANG['height_max'], 'L_WIDTH_MAX' => $LANG['width_max'])); if ($CONFIG_USER['force_theme'] == 0) { foreach ($THEME_CONFIG as $theme => $array_info) { if ($CONFIG['theme'] == $theme || $array_info['secure'] == -1 && $theme != 'default') { $selected = $CONFIG['theme'] == $theme ? ' selected="selected"' : ''; $info_theme = load_ini_file('../templates/' . $theme . '/config/', $CONFIG['lang']); $Template->assign_block_vars('select_theme', array('NAME' => $info_theme['name'], 'IDNAME' => $theme, 'SELECTED' => $selected)); } } } else { $theme_info = load_ini_file('/config/', get_ulang()); $Template->assign_block_vars('select_theme', array('NAME' => !empty($theme_info['name']) ? $theme_info['name'] : $CONFIG['theme'], 'IDNAME' => $CONFIG['theme'])); } $extend_field_exist = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " WHERE display = 1", __LINE__, __FILE__); if ($extend_field_exist > 0) { $Template->assign_vars(array('L_MISCELLANEOUS' => $LANG['miscellaneous'])); $Template->assign_block_vars('miscellaneous', array()); $result = $Sql->query_while("SELECT exc.name, exc.contents, exc.field, exc.required, exc.field_name, exc.possible_values, exc.default_values\n\t\t\tFROM " . DB_TABLE_MEMBER_EXTEND_CAT . " AS exc\n\t\t\tWHERE exc.display = 1\n\t\t\tORDER BY exc.class", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $field = ''; switch ($row['field']) { case 1: $field = '<input type="text" size="30" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '" class="text" value="' . $row['default_values'] . '" />'; break; case 2: $field = '<textarea class="post" rows="4" cols="27" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '">' . unparse($row['default_values']) . '</textarea>';
function check_compatibility() { global $CONFIG; $current_version = '0'; switch ($this->type) { case APPLICATION_TYPE__KERNEL: $current_version = phpboost_version(); break; case APPLICATION_TYPE__MODULE: $kModules = array_keys($MODULES); foreach ($kModules as $module) { if ($module == $this->name) { $infos = load_ini_file(PATH_TO_ROOT . '/' . $module . '/lang/', get_ulang()); $current_version = $infos['version']; break; } } break; case APPLICATION_TYPE__TEMPLATE: global $THEME_CONFIG; $kThemes = array_keys($THEME_CONFIG); foreach ($kThemes as $theme) { if ($theme == $this->name) { $infos = get_ini_config(PATH_TO_ROOT . '/templates/' . $theme . '/config/', get_ulang()); $current_version = $infos['version']; break; } } break; default: return false; } if ($current_version == '0') { return false; } return version_compare($current_version, $this->get_version(), '<') > 0 && ($CONFIG['version'] >= $this->compatibility_min && ($this->compatibility_max == null || $CONFIG['version'] <= $this->compatibility_max && $this->compatibility_max >= $this->compatibility_min)); }
<?php require_once '../admin/admin_begin.php'; define('TITLE', $LANG['administration']); require_once '../admin/admin_header.php'; $template = new Template('admin/admin_system_report.tpl'); $template->assign_vars(array('L_YES' => $LANG['yes'], 'L_NO' => $LANG['no'], 'L_UNKNOWN' => $LANG['unknown'], 'L_SYSTEM_REPORT' => $LANG['system_report'], 'L_SERVER' => $LANG['server'], 'L_PHPINFO' => $LANG['phpinfo'], 'L_PHP_VERSION' => $LANG['php_version'], 'L_DBMS_VERSION' => $LANG['dbms_version'], 'L_GD_LIBRARY' => $LANG['dg_library'], 'L_URL_REWRITING' => $LANG['url_rewriting'], 'L_REGISTER_GLOBALS_OPTION' => $LANG['register_globals_option'], 'L_SERVER_URL' => $LANG['serv_name'], 'L_SITE_PATH' => $LANG['serv_path'], 'L_PHPBOOST_CONFIG' => $LANG['phpboost_config'], 'L_KERNEL_VERSION' => $LANG['kernel_version'], 'L_DEFAULT_THEME' => $LANG['default_theme'], 'L_DEFAULT_LANG' => $LANG['default_language'], 'L_DEFAULT_EDITOR' => $LANG['choose_editor'], 'L_START_PAGE' => $LANG['start_page'], 'L_OUTPUT_GZ' => $LANG['output_gz'], 'L_COOKIE_NAME' => $LANG['cookie_name'], 'L_SESSION_LENGTH' => $LANG['session_time'], 'L_SESSION_GUEST_LENGTH' => $LANG['session invit'], 'L_DIRECTORIES_AUTH' => $LANG['directories_auth'], 'L_SUMMERIZATION' => $LANG['system_report_summerization'], 'L_SUMMERIZATION_EXPLAIN' => $LANG['system_report_summerization_explain'])); $temp_var = function_exists('apache_get_modules') ? apache_get_modules() : array(); $server_path = !empty($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF'); if (!$server_path) { $server_path = !empty($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI'); } $server_path = trim(str_replace('/admin', '', dirname($server_path))); $server_name = 'http://' . (!empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : getenv('HTTP_HOST')); $lang_ini_file = load_ini_file('../lang/', get_ulang()); $template_ini_file = load_ini_file('../templates/' . get_utheme() . '/config/', get_ulang()); $directories_summerization = ''; $directories_list = array('/', '/cache', '/cache/backup', '/cache/syndication/', '/cache/tpl', '/images/avatars', '/images/group', '/images/maths', '/images/smileys', '/lang', '/menus', '/templates', '/upload'); foreach ($directories_list as $dir) { $dir_status = is_dir('..' . $dir) && is_writable('..' . $dir); $template->assign_block_vars('directories', array('NAME' => $dir, 'C_AUTH_DIR' => $dir_status)); $directories_summerization .= $dir . str_repeat(' ', 25 - strlen($dir)) . ": " . (int) $dir_status . "\n"; } $summerization = "---------------------------------System report---------------------------------\n-----------------------------generated by PHPBoost-----------------------------\n\nSERVER CONFIGURATION-----------------------------------------------------------\n\nphp version : " . phpversion() . "\ndbms version : " . $Sql->get_dbms_version() . "\ngd library : " . (int) @extension_loaded('gd') . "\nurl rewriting : " . (function_exists('apache_get_modules') ? (int) (!empty($temp_var[5])) : "?") . "\nregister globals : " . (int) (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on') . "\nserver url : " . $server_name . "\nsite path : " . $server_path . "\n\nPHPBOOST CONFIGURATION---------------------------------------------------------\n\nphpboost version : " . phpboost_version() . "\nserver url : " . $CONFIG['server_name'] . "\nsite path : " . $CONFIG['server_path'] . "\ndefault theme : " . $template_ini_file['name'] . "\ndefault language : " . get_ulang() . "\ndefault editor : " . $CONFIG['editor'] . "\nstart page : " . $CONFIG['start_page'] . "\nurl rewriting : " . $CONFIG['rewrite'] . "\noutput gz : " . $CONFIG['ob_gzhandler'] . "\nsession cookie name : " . $CONFIG['site_cookie'] . "\nsession length : " . $CONFIG['site_session'] . "\nguest session length : " . $CONFIG['site_session_invit'] . "\n\nDIRECTORIES AUTHORIZATIONS-----------------------------------------------------\n\n" . $directories_summerization; $template->assign_vars(array('PHP_VERSION' => phpversion(), 'DBMS_VERSION' => $Sql->get_dbms_version(), 'C_SERVER_GD_LIBRARY' => @extension_loaded('gd'), 'C_URL_REWRITING_KNOWN' => function_exists('apache_get_modules'), 'C_SERVER_URL_REWRITING' => function_exists('apache_get_modules') ? !empty($temp_var[5]) : false, 'C_REGISTER_GLOBALS' => @ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on', 'SERV_SERV_URL' => $server_name, 'SERV_SITE_PATH' => $server_path, 'KERNEL_VERSION' => phpboost_version(), 'KERNEL_SERV_URL' => $CONFIG['server_name'], 'KERNEL_SITE_PATH' => $CONFIG['server_path'], 'KERNEL_DEFAULT_THEME' => $template_ini_file['name'], 'KERNEL_DEFAULT_LANGUAGE' => $lang_ini_file['name'], 'KERNEL_DEFAULT_EDITOR' => $CONFIG['editor'] == 'tinymce' ? 'TinyMCE' : 'BBCode', 'KERNEL_START_PAGE' => $CONFIG['start_page'], 'C_KERNEL_URL_REWRITING' => (bool) $CONFIG['rewrite'], 'C_KERNEL_OUTPUT_GZ' => (bool) $CONFIG['ob_gzhandler'], 'COOKIE_NAME' => $CONFIG['site_cookie'], 'SESSION_LENGTH' => $CONFIG['site_session'], 'SESSION_LENGTH_GUEST' => $CONFIG['site_session_invit'], 'SUMMERIZATION' => $summerization)); $template->parse(); require_once '../admin/admin_footer.php';
$installed_modules = array(); $result = $Sql->query_while("SELECT id, name\n\tFROM " . PREFIX . "modules", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $installed_modules[] = $row['name']; } $Sql->query_close($result); $root = PATH_TO_ROOT . '/'; $i = 0; if (is_dir($root)) { import('io/filesystem/folder'); $dir_array = array(); $lang_folder_path = new Folder($root); foreach ($lang_folder_path->get_folders() as $odir) { $dir = $odir->get_name(); if (!in_array($dir, $installed_modules) && $dir != 'lang') { $info_module = load_ini_file($root . $dir . '/lang/', get_ulang()); if (!empty($info_module) && is_array($info_module)) { $l_tables = $info_module['sql_table'] > 1 ? $LANG['tables'] : $LANG['table']; $Template->assign_block_vars('available', array('ID' => $dir, 'NAME' => ucfirst($info_module['name']), 'ICON' => $dir, 'VERSION' => $info_module['version'], 'AUTHOR' => !empty($info_module['author_mail']) ? '<a href="mailto:' . $info_module['author_mail'] . '">' . $info_module['author'] . '</a>' : $info_module['author'], 'AUTHOR_WEBSITE' => !empty($info_module['author_link']) ? '<a href="' . $info_module['author_link'] . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/user_web.png" alt="" /></a>' : '', 'DESC' => $info_module['info'], 'COMPAT' => $info_module['compatibility'], 'USE_SQL' => $info_module['sql_table'] > 0 ? $LANG['yes'] : $LANG['no'], 'SQL_TABLE' => $info_module['sql_table'] > 0 ? '(' . $info_module['sql_table'] . ' ' . $l_tables . ')' : '', 'USE_CACHE' => $info_module['cache'] ? $LANG['yes'] : $LANG['no'], 'ALTERNATIVE_CSS' => $info_module['css'] ? $LANG['yes'] : $LANG['no'], 'STARTEABLE_PAGE' => $info_module['starteable_page'] ? $LANG['yes'] : $LANG['no'], 'ACTIV_ENABLED' => $row['activ'] == 1 ? 'checked="checked"' : '', 'ACTIV_DISABLED' => $row['activ'] == 0 ? 'checked="checked"' : '')); $i++; } } } } if ($i == 0) { $Template->assign_vars(array('C_NO_MODULE' => true)); } else { $Template->assign_vars(array('C_MODULES_AVAILABLE' => true)); } $Template->pparse('admin_modules_add'); }