Chris@76: &$txt['displayedValue']), Chris@76: &$txt['descriptionOfTheOption'], 'OptionalReferenceToHelpAdmin'), Chris@76: Note that just saying array('first', 'second') will put 0 in the SQL for 'first'. Chris@76: Chris@76: * A password input box. Used for passwords, no less! Chris@76: ie. array('password', 'nameInModSettingsAndSQL', 'OptionalInputBoxWidth', Chris@76: &$txt['descriptionOfTheOption'], 'OptionalReferenceToHelpAdmin'), Chris@76: Chris@76: For each option: Chris@76: type (see above), variable name, size/possible values, description, helptext. Chris@76: OR make type 'rule' for an empty string for a horizontal rule. Chris@76: OR make type 'heading' with a string for a titled section. */ Chris@76: Chris@76: // This function passes control through to the relevant tab. Chris@76: function ModifyFeatureSettings() Chris@76: { Chris@76: global $context, $txt, $scripturl, $modSettings, $sourcedir; Chris@76: Chris@76: // You need to be an admin to edit settings! Chris@76: isAllowedTo('admin_forum'); Chris@76: Chris@76: // All the admin bar, to make it right. Chris@76: adminIndex('edit_mods_settings'); Chris@76: loadLanguage('Help'); Chris@76: loadLanguage('ModSettings'); Chris@76: Chris@76: // Will need the utility functions from here. Chris@76: require_once($sourcedir . '/ManageServer.php'); Chris@76: Chris@76: $context['page_title'] = $txt['modSettings_title']; Chris@76: $context['sub_template'] = 'show_settings'; Chris@76: Chris@76: $subActions = array( Chris@76: 'basic' => 'ModifyBasicSettings', Chris@76: 'layout' => 'ModifyLayoutSettings', Chris@76: 'karma' => 'ModifyKarmaSettings', Chris@76: ); Chris@76: Chris@76: // By default do the basic settings. Chris@76: $_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'basic'; Chris@76: $context['sub_action'] = $_REQUEST['sa']; Chris@76: Chris@76: // Load up all the tabs... Chris@76: $context['admin_tabs'] = array( Chris@76: 'title' => &$txt['modSettings_title'], Chris@76: 'help' => 'modsettings', Chris@76: 'description' => $txt['smf3'], Chris@76: 'tabs' => array( Chris@76: 'basic' => array( Chris@76: 'title' => $txt['mods_cat_features'], Chris@76: 'href' => $scripturl . '?action=featuresettings;sa=basic;sesc=' . $context['session_id'], Chris@76: ), Chris@76: 'layout' => array( Chris@76: 'title' => $txt['mods_cat_layout'], Chris@76: 'href' => $scripturl . '?action=featuresettings;sa=layout;sesc=' . $context['session_id'], Chris@76: ), Chris@76: 'karma' => array( Chris@76: 'title' => $txt['smf293'], Chris@76: 'href' => $scripturl . '?action=featuresettings;sa=karma;sesc=' . $context['session_id'], Chris@76: 'is_last' => true, Chris@76: ), Chris@76: ), Chris@76: ); Chris@76: Chris@76: // Select the right tab based on the sub action. Chris@76: if (isset($context['admin_tabs']['tabs'][$context['sub_action']])) Chris@76: $context['admin_tabs']['tabs'][$context['sub_action']]['is_selected'] = true; Chris@76: Chris@76: // Call the right function for this sub-acton. Chris@76: $subActions[$_REQUEST['sa']](); Chris@76: } Chris@76: Chris@76: // This function basically just redirects to the right save function. Chris@76: function ModifyFeatureSettings2() Chris@76: { Chris@76: global $context, $txt, $scripturl, $modSettings, $sourcedir; Chris@76: Chris@76: isAllowedTo('admin_forum'); Chris@76: loadLanguage('ModSettings'); Chris@76: Chris@76: // Quick session check... Chris@76: checkSession(); Chris@76: Chris@76: require_once($sourcedir . '/ManageServer.php'); Chris@76: Chris@76: $subActions = array( Chris@76: 'basic' => 'ModifyBasicSettings', Chris@76: 'layout' => 'ModifyLayoutSettings', Chris@76: 'karma' => 'ModifyKarmaSettings', Chris@76: ); Chris@76: Chris@76: // Default to core (I assume) Chris@76: $_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : 'basic'; Chris@76: Chris@76: // Actually call the saving function. Chris@76: $subActions[$_REQUEST['sa']](); Chris@76: } Chris@76: Chris@76: function ModifyBasicSettings() Chris@76: { Chris@76: global $txt, $scripturl, $context, $settings, $sc, $modSettings; Chris@76: Chris@76: $config_vars = array( Chris@76: // Big Options... polls, sticky, bbc.... Chris@76: array('select', 'pollMode', array(&$txt['smf34'], &$txt['smf32'], &$txt['smf33'])), Chris@76: '', Chris@76: // Basic stuff, user languages, titles, flash, permissions... Chris@76: array('check', 'allow_guestAccess'), Chris@76: array('check', 'userLanguage'), Chris@76: array('check', 'allow_editDisplayName'), Chris@76: array('check', 'allow_hideOnline'), Chris@76: array('check', 'allow_hideEmail'), Chris@76: array('check', 'guest_hideContacts'), Chris@76: array('check', 'titlesEnable'), Chris@76: array('check', 'enable_buddylist'), Chris@76: array('text', 'default_personalText'), Chris@76: array('int', 'max_signatureLength'), Chris@76: '', Chris@76: // Stats, compression, cookies.... server type stuff. Chris@76: array('text', 'time_format'), Chris@76: array('select', 'number_format', array('1234.00' => '1234.00', '1,234.00' => '1,234.00', '1.234,00' => '1.234,00', '1 234,00' => '1 234,00', '1234,00' => '1234,00')), Chris@76: array('float', 'time_offset'), Chris@76: array('int', 'failed_login_threshold'), Chris@76: array('int', 'lastActive'), Chris@76: array('check', 'trackStats'), Chris@76: array('check', 'hitStats'), Chris@76: array('check', 'enableErrorLogging'), Chris@76: array('check', 'securityDisable'), Chris@76: '', Chris@76: // Reactive on email, and approve on delete Chris@76: array('check', 'send_validation_onChange'), Chris@76: array('check', 'approveAccountDeletion'), Chris@76: '', Chris@76: // Option-ish things... miscellaneous sorta. Chris@76: array('check', 'allow_disableAnnounce'), Chris@76: array('check', 'disallow_sendBody'), Chris@76: array('check', 'modlog_enabled'), Chris@76: array('check', 'queryless_urls'), Chris@76: '', Chris@76: // Width/Height image reduction. Chris@76: array('int', 'max_image_width'), Chris@76: array('int', 'max_image_height'), Chris@76: '', Chris@76: // Reporting of personal messages? Chris@76: array('check', 'enableReportPM'), Chris@76: ); Chris@76: Chris@76: // Saving? Chris@76: if (isset($_GET['save'])) Chris@76: { Chris@76: // Fix PM settings. Chris@76: $_POST['pm_spam_settings'] = (int) $_POST['max_pm_recipients'] . ',' . (int) $_POST['pm_posts_verification'] . ',' . (int) $_POST['pm_posts_per_hour']; Chris@76: $save_vars = $config_vars; Chris@76: $save_vars[] = array('text', 'pm_spam_settings'); Chris@76: Chris@76: saveDBSettings($save_vars); Chris@76: Chris@76: writeLog(); Chris@76: redirectexit('action=featuresettings;sa=basic'); Chris@76: } Chris@76: Chris@76: // Hack for PM spam settings. Chris@76: list ($modSettings['max_pm_recipients'], $modSettings['pm_posts_verification'], $modSettings['pm_posts_per_hour']) = explode(',', $modSettings['pm_spam_settings']); Chris@76: $config_vars[] = array('int', 'max_pm_recipients'); Chris@76: $config_vars[] = array('int', 'pm_posts_verification'); Chris@76: $config_vars[] = array('int', 'pm_posts_per_hour'); Chris@76: Chris@76: $context['post_url'] = $scripturl . '?action=featuresettings2;save;sa=basic'; Chris@76: $context['settings_title'] = $txt['mods_cat_features']; Chris@76: Chris@76: prepareDBSettingContext($config_vars); Chris@76: } Chris@76: Chris@76: function ModifyLayoutSettings() Chris@76: { Chris@76: global $txt, $scripturl, $context, $settings, $sc; Chris@76: Chris@76: $config_vars = array( Chris@76: // Compact pages? Chris@76: array('check', 'compactTopicPagesEnable'), Chris@76: array('int', 'compactTopicPagesContiguous', null, $txt['smf235'] . '
' . str_replace(' ', ' ', '"3" ' . $txt['smf236'] . ': 1 ... 4 [5] 6 ... 9') . '
' . str_replace(' ', ' ', '"5" ' . $txt['smf236'] . ': 1 ... 3 4 [5] 6 7 ... 9') . '
'), Chris@76: '', Chris@76: // Stuff that just is everywhere - today, search, online, etc. Chris@76: array('select', 'todayMod', array(&$txt['smf290'], &$txt['smf291'], &$txt['smf292'])), Chris@76: array('check', 'topbottomEnable'), Chris@76: array('check', 'onlineEnable'), Chris@76: array('check', 'enableVBStyleLogin'), Chris@76: '', Chris@76: // Pagination stuff. Chris@76: array('int', 'defaultMaxMembers'), Chris@76: '', Chris@76: // This is like debugging sorta. Chris@76: array('check', 'timeLoadPageEnable'), Chris@76: array('check', 'disableHostnameLookup'), Chris@76: '', Chris@76: // Who's online. Chris@76: array('check', 'who_enabled'), Chris@76: ); Chris@76: Chris@76: // Saving? Chris@76: if (isset($_GET['save'])) Chris@76: { Chris@76: saveDBSettings($config_vars); Chris@76: redirectexit('action=featuresettings;sa=layout'); Chris@76: Chris@76: loadUserSettings(); Chris@76: writeLog(); Chris@76: } Chris@76: Chris@76: $context['post_url'] = $scripturl . '?action=featuresettings2;save;sa=layout'; Chris@76: $context['settings_title'] = $txt['mods_cat_layout']; Chris@76: Chris@76: prepareDBSettingContext($config_vars); Chris@76: } Chris@76: Chris@76: function ModifyKarmaSettings() Chris@76: { Chris@76: global $txt, $scripturl, $context, $settings, $sc; Chris@76: Chris@76: $config_vars = array( Chris@76: // Karma - On or off? Chris@76: array('select', 'karmaMode', explode('|', $txt['smf64'])), Chris@76: '', Chris@76: // Who can do it.... and who is restricted by time limits? Chris@76: array('int', 'karmaMinPosts'), Chris@76: array('float', 'karmaWaitTime'), Chris@76: array('check', 'karmaTimeRestrictAdmins'), Chris@76: '', Chris@76: // What does it look like? [smite]? Chris@76: array('text', 'karmaLabel'), Chris@76: array('text', 'karmaApplaudLabel'), Chris@76: array('text', 'karmaSmiteLabel'), Chris@76: ); Chris@76: Chris@76: // Saving? Chris@76: if (isset($_GET['save'])) Chris@76: { Chris@76: saveDBSettings($config_vars); Chris@76: redirectexit('action=featuresettings;sa=karma'); Chris@76: } Chris@76: Chris@76: $context['post_url'] = $scripturl . '?action=featuresettings2;save;sa=karma'; Chris@76: $context['settings_title'] = $txt['smf293']; Chris@76: Chris@76: prepareDBSettingContext($config_vars); Chris@76: } Chris@76: Chris@76: ?>