assoc_buttons(array( 'submit' => array( 'name' => 'submit', 'process' => 'process_submit', 'check' => 'a_config_man'), 'form' => array( 'name' => '', 'process' => 'display_form', 'check' => 'a_config_man')) ); } function error_check() { global $user; $this->fv->is_number(array( 'default_alimit' => $user->lang['fv_number'], 'default_elimit' => $user->lang['fv_number'], 'default_ilimit' => $user->lang['fv_number'], 'default_nlimit' => $user->lang['fv_number'], 'default_rlimit' => $user->lang['fv_number'], 'active_point_adj' => $user->lang['fv_number'], 'inactive_point_adj' => $user->lang['fv_number']) ); $this->fv->is_within_range('default_alimit', 1, 1000); $this->fv->is_within_range('default_elimit', 1, 1000); $this->fv->is_within_range('default_ilimit', 1, 1000); $this->fv->is_within_range('default_nlimit', 1, 1000); $this->fv->is_within_range('default_rlimit', 1, 1000); return $this->fv->is_error(); } // --------------------------------------------------------- // Process submit // --------------------------------------------------------- function process_submit() { global $db, $eqdkp, $user, $tpl, $pm; global $SID; // Remove < > from guildtags if we need to $_POST['parsetags'] = preg_replace('#<(.+)>([[:space:]])?#', "\\1", $_POST['parsetags']); $_POST = htmlspecialchars_array($_POST); $current_game = $eqdkp->config['default_game']; // Update each config setting $eqdkp->config_set(array( 'guildtag' => $_POST['guildtag'], 'parsetags' => $_POST['parsetags'], 'server_name' => $_POST['server_name'], 'server_port' => intval($_POST['server_port']), 'server_path' => $_POST['server_path'], 'main_title' => $_POST['main_title'], 'sub_title' => $_POST['sub_title'], 'dkp_name' => $_POST['dkp_name'], 'default_game' => $_POST['default_game'], 'default_locale' => $_POST['default_locale'], 'account_activation' => ( isset($_POST['account_activation']) ) ? $_POST['account_activation'] : '0', 'default_alimit' => intval($_POST['default_alimit']), 'default_elimit' => intval($_POST['default_elimit']), 'default_ilimit' => intval($_POST['default_ilimit']), 'default_nlimit' => intval($_POST['default_nlimit']), 'default_rlimit' => intval($_POST['default_rlimit']), 'default_lang' => $_POST['default_lang'], 'default_style' => intval($_POST['default_style']), 'hide_inactive' => ( isset($_POST['hide_inactive']) ) ? $_POST['hide_inactive'] : '0', 'inactive_period' => intval($_POST['inactive_period']), 'active_point_adj' => $_POST['active_point_adj'], 'inactive_point_adj' => $_POST['inactive_point_adj'], 'enable_gzip' => ( isset($_POST['enable_gzip']) ) ? $_POST['enable_gzip'] : '0', 'cookie_domain' => $_POST['cookie_domain'], 'cookie_name' => $_POST['cookie_name'], 'cookie_path' => $_POST['cookie_path'], 'session_length' => intval($_POST['session_length']), 'admin_email' => $_POST['admin_email'], 'start_page' => $_POST['start_page']) ); // New for 1.3 - game selection if (( $_POST['default_game'] != $current_game )) { include($eqdkp->root_path . 'games/' . $_POST['default_game'] . '.php'); $game_extension = new Manage_Game; $game_extension->process(); } // end 1.3 game selection change // Permissions $sql = 'SELECT auth_id, auth_value FROM ' . AUTH_OPTIONS_TABLE . ' ORDER BY auth_id'; $result = $db->query($sql); while ( $row = $db->fetch_record($result) ) { $this->update_auth_default($row['auth_value'], ( isset($_POST[$row['auth_value']]) ) ? 'Y' : 'N'); } header('Location: config.php' . $SID); } // --------------------------------------------------------- // Process helper methods // --------------------------------------------------------- function update_auth_default($auth_value, $auth_default='N') { global $db; if ( empty($auth_value) ) { return false; } $sql = 'UPDATE ' . AUTH_OPTIONS_TABLE . " SET auth_default='" . strip_tags(htmlspecialchars($auth_default)) . "' WHERE auth_value='" . $auth_value . "'"; if ( !($result = $db->query($sql)) ) { return false; } return true; } // --------------------------------------------------------- // Display form // --------------------------------------------------------- function display_form() { global $db, $eqdkp, $user, $tpl, $pm; global $SID, $auth_defaults; $cur_hash = hash_filename("config.php"); //print"HASH::$cur_hash::
"; // // Find default auth settings // $sql = 'SELECT auth_id, auth_default FROM ' . AUTH_OPTIONS_TABLE . ' ORDER BY auth_id'; $result = $db->query($sql); while ( $row = $db->fetch_record($result) ) { $auth_defaults[$row['auth_id']] = $row['auth_default']; } $db->free_result($result); // // Build the config permissions // $config_permissions = array( // Events $user->lang['events'] => array( array('CBNAME' => 'a_event_add', 'CBCHECKED' => A_EVENT_ADD, 'TEXT' => '' . $user->lang['add'] . ''), array('CBNAME' => 'a_event_upd', 'CBCHECKED' => A_EVENT_UPD, 'TEXT' => '' . $user->lang['update'] . ''), array('CBNAME' => 'a_event_del', 'CBCHECKED' => A_EVENT_DEL, 'TEXT' => '' . $user->lang['delete'] . ''), array('CBNAME' => 'u_event_list', 'CBCHECKED' => U_EVENT_LIST, 'TEXT' => $user->lang['list']), array('CBNAME' => 'u_event_view', 'CBCHECKED' => U_EVENT_VIEW, 'TEXT' => $user->lang['view']) ), // Group adjustments $user->lang['group_adjustments'] => array( array('CBNAME' => 'a_groupadj_add', 'CBCHECKED' => A_GROUPADJ_ADD, 'TEXT' => '' . $user->lang['add'] . ''), array('CBNAME' => 'a_groupadj_upd', 'CBCHECKED' => A_GROUPADJ_UPD, 'TEXT' => '' . $user->lang['update'] . ''), array('CBNAME' => 'a_groupadj_del', 'CBCHECKED' => A_GROUPADJ_DEL, 'TEXT' => '' . $user->lang['delete'] . '') ), // Individual adjustments $user->lang['individual_adjustments'] => array( array('CBNAME' => 'a_indivadj_add', 'CBCHECKED' => A_INDIVADJ_ADD, 'TEXT' => '' . $user->lang['add'] . ''), array('CBNAME' => 'a_indivadj_upd', 'CBCHECKED' => A_INDIVADJ_UPD, 'TEXT' => '' . $user->lang['update'] . ''), array('CBNAME' => 'a_indivadj_del', 'CBCHECKED' => A_INDIVADJ_DEL, 'TEXT' => '' . $user->lang['delete'] . '') ), // Items $user->lang['items'] => array( array('CBNAME' => 'a_item_add', 'CBCHECKED' => A_ITEM_ADD, 'TEXT' => '' . $user->lang['add'] . ''), array('CBNAME' => 'a_item_upd', 'CBCHECKED' => A_ITEM_UPD, 'TEXT' => '' . $user->lang['update'] . ''), array('CBNAME' => 'a_item_del', 'CBCHECKED' => A_ITEM_DEL, 'TEXT' => '' . $user->lang['delete'] . ''), array('CBNAME' => 'u_item_list', 'CBCHECKED' => U_ITEM_LIST, 'TEXT' => $user->lang['list']), array('CBNAME' => 'u_item_view', 'CBCHECKED' => U_ITEM_VIEW, 'TEXT' => $user->lang['view']) ), // News $user->lang['news'] => array( array('CBNAME' => 'a_news_add', 'CBCHECKED' => A_NEWS_ADD, 'TEXT' => '' . $user->lang['add'] . ''), array('CBNAME' => 'a_news_upd', 'CBCHECKED' => A_NEWS_UPD, 'TEXT' => '' . $user->lang['update'] . ''), array('CBNAME' => 'a_news_del', 'CBCHECKED' => A_NEWS_DEL, 'TEXT' => '' . $user->lang['delete'] . '') ), // Raids $user->lang['raids'] => array( array('CBNAME' => 'a_raid_add', 'CBCHECKED' => A_RAID_ADD, 'TEXT' => '' . $user->lang['add'] . ''), array('CBNAME' => 'a_raid_upd', 'CBCHECKED' => A_RAID_UPD, 'TEXT' => '' . $user->lang['update'] . ''), array('CBNAME' => 'a_raid_del', 'CBCHECKED' => A_RAID_DEL, 'TEXT' => '' . $user->lang['delete'] . ''), array('CBNAME' => 'u_raid_list', 'CBCHECKED' => U_RAID_LIST, 'TEXT' => $user->lang['list']), array('CBNAME' => 'u_raid_view', 'CBCHECKED' => U_RAID_VIEW, 'TEXT' => $user->lang['view']) ), // Turn-ins $user->lang['turn_ins'] => array( array('CBNAME' => 'a_turnin_add', 'CBCHECKED' => A_TURNIN_ADD, 'TEXT' => '' . $user->lang['add'] . '') ), // Members $user->lang['members'] => array( array('CBNAME' => 'a_members_man', 'CBCHECKED' => A_MEMBERS_MAN, 'TEXT' => '' . $user->lang['manage'] . ''), array('CBNAME' => 'u_member_list', 'CBCHECKED' => U_MEMBER_LIST, 'TEXT' => $user->lang['list']), array('CBNAME' => 'u_member_view', 'CBCHECKED' => U_MEMBER_VIEW, 'TEXT' => $user->lang['view']) ), // Manage $user->lang['manage'] => array( array('CBNAME' => 'a_config_man', 'CBCHECKED' => A_CONFIG_MAN, 'TEXT' => '' . $user->lang['configuration'] . ''), array('CBNAME' => 'a_plugins_man', 'CBCHECKED' => A_PLUGINS_MAN, 'TEXT' => '' . $user->lang['plugins'] . ''), array('CBNAME' => 'a_styles_man', 'CBCHECKED' => A_STYLES_MAN, 'TEXT' => '' . $user->lang['styles'] . ''), array('CBNAME' => 'a_users_man', 'CBCHECKED' => A_USERS_MAN, 'TEXT' => '' . $user->lang['users'] . '') ), // Logs $user->lang['logs'] => array( array('CBNAME' => 'a_logs_view', 'CBCHECKED' => A_LOGS_VIEW, 'TEXT' => '' . $user->lang['view'] . '') ), // Backup Database $user->lang['backup'] => array( array('CBNAME' => 'a_backup', 'CBCHECKED' => A_BACKUP, 'TEXT' => '' . $user->lang['backup_database'] . '') ) ); // Add plugin checkboxes to our array $pm->generate_permission_boxes($config_permissions); foreach ( $config_permissions as $group => $checks ) { $tpl->assign_block_vars('permissions_row', array( 'GROUP' => $group) ); foreach ( $checks as $data ) { $tpl->assign_block_vars('permissions_row.check_group', array( 'CBNAME' => $data['CBNAME'], 'CBCHECKED' => ( $auth_defaults[$data['CBCHECKED']] == 'Y' ) ? ' checked="checked"' : '', 'TEXT' => $data['TEXT']) ); } } unset($config_permissions); $tpl->assign_vars(array( // Form vars 'F_CONFIG' => 'config.php' . $SID, // Form values 'GUILDTAG' => $eqdkp->config['guildtag'], 'PARSETAGS' => $eqdkp->config['parsetags'], 'SERVER_NAME' => $eqdkp->config['server_name'], 'SERVER_PORT' => $eqdkp->config['server_port'], 'SERVER_PATH' => $eqdkp->config['server_path'], 'MAIN_TITLE' => $eqdkp->config['main_title'], 'SUB_TITLE' => $eqdkp->config['sub_title'], 'DKP_NAME' => $eqdkp->config['dkp_name'], 'ACTIVATION_NONE_CHECKED' => ( $eqdkp->config['account_activation'] == USER_ACTIVATION_NONE ) ? ' checked="checked"' : '', 'ACTIVATION_USER_CHECKED' => ( $eqdkp->config['account_activation'] == USER_ACTIVATION_SELF ) ? ' checked="checked"' : '', 'ACTIVATION_ADMIN_CHECKED' => ( $eqdkp->config['account_activation'] == USER_ACTIVATION_ADMIN ) ? ' checked="checked"' : '', 'DEFAULT_ALIMIT' => $eqdkp->config['default_alimit'], 'DEFAULT_ELIMIT' => $eqdkp->config['default_elimit'], 'DEFAULT_ILIMIT' => $eqdkp->config['default_ilimit'], 'DEFAULT_NLIMIT' => $eqdkp->config['default_nlimit'], 'DEFAULT_RLIMIT' => $eqdkp->config['default_rlimit'], 'HIDE_INACTIVE_YES_CHECKED' => ( $eqdkp->config['hide_inactive'] == '1' ) ? ' checked="checked"' : '', 'HIDE_INACTIVE_NO_CHECKED' => ( $eqdkp->config['hide_inactive'] == '0' ) ? ' checked="checked"' : '', 'INACTIVE_PERIOD' => $eqdkp->config['inactive_period'], 'ACTIVE_POINT_ADJ' => $eqdkp->config['active_point_adj'], 'INACTIVE_POINT_ADJ' => $eqdkp->config['inactive_point_adj'], 'GZIP_YES_CHECKED' => ( $eqdkp->config['enable_gzip'] == '1' ) ? ' checked="checked"' : '', 'GZIP_NO_CHECKED' => ( $eqdkp->config['enable_gzip'] == '0' ) ? ' checked="checked"' : '', 'COOKIE_DOMAIN' => $eqdkp->config['cookie_domain'], 'COOKIE_NAME' => $eqdkp->config['cookie_name'], 'COOKIE_PATH' => $eqdkp->config['cookie_path'], 'SESSION_LENGTH' => $eqdkp->config['session_length'], 'ADMIN_EMAIL' => $eqdkp->config['admin_email'], 'DEFAULT_GAME' => $eqdkp->config['default_game'], // Language (General Settings) 'L_GENERAL_SETTINGS' => $user->lang['general_settings'], 'L_GUILDTAG' => $user->lang['guildtag'], 'L_GUILDTAG_NOTE' => $user->lang['guildtag_note'], 'L_PARSETAGS' => $user->lang['parsetags'], 'L_PARSETAGS_NOTE' => $user->lang['parsetags_note'], 'L_DOMAIN_NAME' => $user->lang['domain_name'], 'L_SERVER_PORT' => $user->lang['server_port'], 'L_SERVER_PORT_NOTE' => $user->lang['server_port_note'], 'L_SCRIPT_PATH' => $user->lang['script_path'], 'L_SCRIPT_PATH_NOTE' => $user->lang['script_path_note'], 'L_SITE_NAME' => $user->lang['site_name'], 'L_SITE_DESCRIPTION' => $user->lang['site_description'], 'L_POINT_NAME' => $user->lang['point_name'], 'L_POINT_NAME_NOTE' => $user->lang['point_name_note'], 'L_ENABLE_ACCOUNT_ACTIVATION' => $user->lang['enable_account_activation'], 'L_NONE' => $user->lang['none'], 'L_USER' => $user->lang['user'], 'L_ADMIN' => $user->lang['admin'], 'L_ADJUSTMENTS_PER_PAGE' => $user->lang['adjustments_per_page'], 'L_EVENTS_PER_PAGE' => $user->lang['events_per_page'], 'L_ITEMS_PER_PAGE' => $user->lang['items_per_page'], 'L_NEWS_PER_PAGE' => $user->lang['news_per_page'], 'L_RAIDS_PER_PAGE' => $user->lang['raids_per_page'], 'L_DEFAULT_LANGUAGE' => $user->lang['default_language'], 'L_DEFAULT_GAME' => $user->lang['default_game'], 'L_DEFAULT_GAME_WARN' => $user->lang['default_game_warn'], 'L_DEFAULT_STYLE' => $user->lang['default_style'], 'L_DEFAULT_PAGE' => $user->lang['default_page'], 'L_DEFAULT_LOCALE' => $user->lang['default_locale'], 'L_PREVIEW' => $user->lang['preview'], 'L_HIDE_INACTIVE' => $user->lang['hide_inactive'], 'L_HIDE_INACTIVE_NOTE' => $user->lang['hide_inactive_note'], 'L_INACTIVE_PERIOD' => $user->lang['inactive_period'], 'L_INACTIVE_PERIOD_NOTE' => $user->lang['inactive_period_note'], 'L_ACTIVE_POINT_ADJ' => $user->lang['active_point_adj'], 'L_ACTIVE_POINT_ADJ_NOTE' => $user->lang['active_point_adj_note'], 'L_INACTIVE_POINT_ADJ' => $user->lang['inactive_point_adj'], 'L_INACTIVE_POINT_ADJ_NOTE' => $user->lang['inactive_point_adj_note'], 'L_ENABLE_GZIP' => $user->lang['enable_gzip'], // Language (Default Permissions) 'L_DEFAULT_PERMISSIONS' => $user->lang['default_permissions'], 'L_DEFAULT_PERMISSIONS_NOTE' => $user->lang['default_permissions_note'], // Language (Cookie Settings) 'L_COOKIE_SETTINGS' => $user->lang['cookie_settings'], 'L_COOKIE_DOMAIN' => $user->lang['cookie_domain'], 'L_COOKIE_NAME' => $user->lang['cookie_name'], 'L_COOKIE_PATH' => $user->lang['cookie_path'], 'L_SESSION_LENGTH' => $user->lang['session_length'], // Language (E-mail Settings) 'L_EMAIL_SETTINGS' => $user->lang['email_settings'], 'L_ADMIN_EMAIL' => $user->lang['admin_email'], // Language 'L_YES' => $user->lang['yes'], 'L_NO' => $user->lang['no'], 'L_SUBMIT' => $user->lang['submit'], 'L_RESET' => $user->lang['reset']) ); // // Build language drop-down // if ( $dir = @opendir($eqdkp->root_path . 'language/') ) { while ( $file = @readdir($dir) ) { if ( (!is_file($eqdkp->root_path . 'language/' . $file)) && (!is_link($eqdkp->root_path . 'language/' . $file)) && ($file != '.') && ($file != '..') && ($file != 'CVS') && ($file != '.svn') ) { $tpl->assign_block_vars('lang_row', array( 'VALUE' => $file, 'SELECTED' => ( $eqdkp->config['default_lang'] == $file ) ? ' selected="selected"' : '', 'OPTION' => ucfirst($file)) ); } } } // // Build style drop-down // $sql = 'SELECT style_id, style_name FROM ' . STYLES_TABLE . ' ORDER BY style_name'; $result = $db->query($sql); while ( $row = $db->fetch_record($result) ) { $tpl->assign_block_vars('style_row', array( 'VALUE' => $row['style_id'], 'SELECTED' => ( $eqdkp->config['default_style'] == $row['style_id'] ) ? ' selected="selected"' : '', 'OPTION' => $row['style_name']) ); } $db->free_result($result); // // Build game option drop-down // New for 1.3 // Total hack job - I moved the class, race, and faction // info to the db, but I'm hardcoding what games I support // for the "button push" - what a tard I am :-) // To add a new game option, just copy the 4 lines below, // add them to the botton, increase the value of VALUE by 1, // and be sure to set OPTION to the EXACT SAME THING you put // in the == check in the SELECTED line and there must be // no spaces in the name, since the value below gets changed // to name.php and ran when you change it: for example, // if you change to WoW, this program will redirect you to // WoW.php and use that file to populate the database. // // Cheesy, but extensible and effective. // $tpl->assign_block_vars('game_row', array( 'VALUE' => "Everquest", 'SELECTED' => ( $eqdkp->config['default_game'] == "Everquest" ) ? ' selected="selected"' : '', 'OPTION' => "Everquest") ); $tpl->assign_block_vars('game_row', array( 'VALUE' => "Everquest2", 'SELECTED' => ( $eqdkp->config['default_game'] == "Everquest2" ) ? ' selected="selected"' : '', 'OPTION' => "Everquest2") ); $tpl->assign_block_vars('game_row', array( 'VALUE' => "WoW", 'SELECTED' => ( $eqdkp->config['default_game'] == "WoW" ) ? ' selected="selected"' : '', 'OPTION' => "WoW") ); $tpl->assign_block_vars('game_row', array( 'VALUE' => "DAoC", 'SELECTED' => ( $eqdkp->config['default_game'] == "DAoC" ) ? ' selected="selected"' : '', 'OPTION' => "DAoC") ); $tpl->assign_block_vars('game_row', array( 'VALUE' => "Vanguard-SoH", 'SELECTED' => ( $eqdkp->config['default_game'] == "Vanguard-SoH" ) ? ' selected="selected"' : '', 'OPTION' => "Vanguard-SoH") ); // Default locale drop-down // new for 1.3 // Dont forget to change the install script -- maybe query the system for all supported // locales? that would break the "pretty" name of the locale (english, french, etc) // but would provide greater support $tpl->assign_block_vars('locale_row', array( 'VALUE' => 'en_US', 'SELECTED' => ( $eqdkp->config['default_locale'] == "en_US" ) ? ' selected="selected"' : '', 'OPTION' => 'English' )); $tpl->assign_block_vars('locale_row', array( 'VALUE' => 'de_DE', 'SELECTED' => ( $eqdkp->config['default_locale'] == "de_DE" ) ? ' selected="selected"' : '', 'OPTION' => 'German' )); $tpl->assign_block_vars('locale_row', array( 'VALUE' => 'fr_FR', 'SELECTED' => ( $eqdkp->config['default_locale'] == "fr_FR" ) ? ' selected="selected"' : '', 'OPTION' => 'French' )); // // Build start page drop-down // $menus = $eqdkp->gen_menus(); $pages = array_merge($menus['menu1'], $menus['menu2']); unset($menus); foreach ( $pages as $page ) { $link = preg_replace('#\?' . URI_SESSION . '\=([0-9A-Za-z]{1,32})?#', '', $page['link']); $link = preg_replace('#\.php&#', '.php?', $link); $text = ( isset($user->data['username']) ) ? str_replace($user->data['username'], $user->lang['username'], $page['text']) : $page['text']; $tpl->assign_block_vars('page_row', array( 'VALUE' => $link, 'SELECTED' => ( $eqdkp->config['start_page'] == $link ) ? ' selected="selected"' : '', 'OPTION' => $text) ); unset($link, $text); } $eqdkp->set_vars(array( 'page_title' => sprintf($user->lang['admin_title_prefix'], $eqdkp->config['guildtag'], $eqdkp->config['dkp_name']).': '.$user->lang['config_title'], 'template_file' => 'admin/config.html', 'display' => true) ); } } $eqdkp_config = new EQdkp_Config; $eqdkp_config->process(); ?>