Exemplo n.º 1
0
/**
 * Edit some general settings related to the search function.
 * Called by ?action=admin;area=managesearch;sa=settings.
 * Requires the admin_forum permission.
 *
 * @param $return_config
 * @uses ManageSearch template, 'modify_settings' sub-template.
 */
function EditSearchSettings($return_config = false)
{
    global $txt, $context, $scripturl, $sourcedir, $modSettings;
    // What are we editing anyway?
    $config_vars = array(array('permissions', 'search_posts'), array('check', 'simpleSearch'), array('check', 'search_dropdown'), array('int', 'search_results_per_page'), array('int', 'search_max_results', 'subtext' => $txt['search_max_results_disable']), '', array('int', 'search_floodcontrol_time', 'subtext' => $txt['search_floodcontrol_time_desc'], 6, 'postinput' => $txt['seconds']));
    call_integration_hook('integrate_modify_search_settings', array(&$config_vars));
    // Perhaps the search method wants to add some settings?
    require_once $sourcedir . '/Search.php';
    $searchAPI = findSearchAPI();
    if (is_callable(array($searchAPI, 'searchSettings'))) {
        call_user_func_array($searchAPI->searchSettings, array(&$config_vars));
    }
    if ($return_config) {
        return $config_vars;
    }
    $context['page_title'] = $txt['search_settings_title'];
    $context['sub_template'] = 'show_settings';
    call_integration_hook('integrate_modify_search_weights', array(&$factors));
    // We'll need this for the settings.
    require_once $sourcedir . '/ManageServer.php';
    // A form was submitted.
    if (isset($_REQUEST['save'])) {
        checkSession();
        call_integration_hook('integrate_save_search_settings');
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=managesearch;sa=settings;' . $context['session_var'] . '=' . $context['session_id']);
    }
    // Prep the template!
    $context['post_url'] = $scripturl . '?action=admin;area=managesearch;save;sa=settings';
    $context['settings_title'] = $txt['search_settings_title'];
    // We need this for the in-line permissions
    createToken('admin-mp');
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 2
0
/**
 * Config array for chaning the karma settings
 * Accessed  from ?action=admin;area=featuresettings;sa=karma;
 *
 * @param $return_config
 */
function ModifyKarmaSettings($return_config = false)
{
    global $txt, $scripturl, $context, $modSettings;
    loadLanguage('Karma+ManageKarma');
    if (empty($modSettings['karmaMode'])) {
        $config_vars = array(array('select', 'karmaMode', explode('|', $txt['karma_options'])));
    } else {
        $config_vars = array(array('select', 'karmaMode', explode('|', $txt['karma_options'])), '', array('int', 'karmaMinPosts', 6, 'postinput' => strtolower($txt['posts'])), array('float', 'karmaWaitTime', 6, 'postinput' => $txt['hours']), array('check', 'karmaTimeRestrictAdmins'));
    }
    call_integration_hook('integrate_karma_settings', array(&$config_vars));
    if ($return_config) {
        return $config_vars;
    }
    // Saving?
    if (isset($_GET['save'])) {
        checkSession();
        call_integration_hook('integrate_save_karma_settings');
        saveDBSettings($config_vars);
        $_SESSION['adm-save'] = true;
        redirectexit('action=admin;area=featuresettings;sa=karma');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=featuresettings;save;sa=karma';
    $context['settings_title'] = $txt['karma'];
    loadLanguage('ManageKarma');
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 3
0
function gplus_admin()
{
    global $txt, $scripturl, $context;
    $context['sub_template'] = 'show_settings';
    $config_vars = array(array('check', 'gp_app_enabled'), array('check', 'gp_app_enabledautolog'), '', array('text', 'gp_app_client_id'), array('text', 'gp_app_client_secret'), '', array('text', 'gp_app_custon_logurl'), array('text', 'gp_app_custon_logimg'), array('int', 'gp_app_detait_gid'), array('select', 'gp_reg_auto', array($txt['gp_dfbregauto'], $txt['gp_dfbregauto1'])), '', array('text', 'gp_app_board_showplus1'));
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=gplus');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=gplus;save';
    $context['settings_title'] = $txt['gp_googplus'];
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 4
0
function CLS_ChangeThemeSettings($return_config = false)
{
    global $txt, $scripturl, $context;
    $config_vars = array();
    $config_vars[] = array('check', 'change_theme_check_top');
    $config_vars[] = array('check', 'change_theme_check_bot');
    if ($return_config) {
        return $config_vars;
    }
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=cls';
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=modsettings;sa=cls');
    }
    prepareDBSettingContext($config_vars);
}
/**
 * @param bool $return_config
 * @return array config vars
 */
function addMenuButtonWithBoardsListAdminSettings($return_config = false)
{
    global $txt, $scripturl, $context;
    loadLanguage('MenuButtonWithBoardsList/');
    $context['page_title'] = $txt['menu_button_with_boards'];
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=menu_button_with_boards';
    $context['settings_message'] = '';
    $config_vars = array(array('title', 'menu_button_with_boards_settings'), array('text', 'menu_button_with_boards_title'), array('text', 'menu_button_with_boards_cats', 'subtext' => $txt['menu_button_with_boards_cats_desc']));
    if ($return_config) {
        return $config_vars;
    }
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        clean_cache();
        redirectexit('action=admin;area=modsettings;sa=menu_button_with_boards');
    }
    prepareDBSettingContext($config_vars);
}
function ajaxchat_modifySettings($return_config = false)
{
    global $txt, $scripturl, $context, $settings, $sc, $modSettings;
    $config_vars = array(array('check', 'enableShoutBox'), array('check', 'anyPageShoutBox'), array('check', 'enableChatButtonNo'));
    if ($return_config) {
        return $config_vars;
    }
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=chat';
    $context['settings_title'] = $txt['chat'];
    // No removing this line you, dirty unwashed mod authors. :p
    if (empty($config_vars)) {
        $context['settings_save_dont_show'] = true;
        $context['settings_message'] = '<div style="text-align: center">' . $txt['modification_no_misc_settings'] . '</div>';
        return prepareDBSettingContext($config_vars);
    }
    // Saving?
    if (isset($_GET['save'])) {
        checkSession();
        $save_vars = $config_vars;
        saveDBSettings($save_vars);
        redirectexit('action=admin;area=modsettings;sa=chat');
    }
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 7
0
function ArcadeAdminPemission($return_config = false)
{
    global $scripturl, $txt, $modSettings, $context, $settings;
    $config_vars = array(array('select', 'arcadePermissionMode', array($txt['arcade_permission_mode_none'], $txt['arcade_permission_mode_category'], $txt['arcade_permission_mode_game'], $txt['arcade_permission_mode_and_both'], $txt['arcade_permission_mode_or_both'])), '', array('check', 'arcadePostPermission'), array('int', 'arcadePostsPlay'), array('int', 'arcadePostsLastDay'), array('int', 'arcadePostsPlayAverage'), '', array('permissions', 'arcade_view', 0, $txt['perm_arcade_view']), array('permissions', 'arcade_play', 0, $txt['perm_arcade_play']), array('permissions', 'arcade_submit', 0, $txt['perm_arcade_submit']));
    if ($return_config) {
        return $config_vars;
    }
    if (isset($_GET['save'])) {
        checkSession('post');
        saveDBSettings($config_vars);
        writeLog();
        redirectexit('action=admin;area=arcade;sa=permission');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=arcade;sa=permission;save';
    $context['settings_title'] = $txt['arcade_general_permissions'];
    $context['sub_template'] = 'show_settings';
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 8
0
function ModifyCacheSettings()
{
    global $context, $scripturl, $txt, $helptxt, $sc, $modSettings;
    // Cache information is in here, honest.
    loadLanguage('ModSettings');
    loadLanguage('Help');
    // Define the variables we want to edit.
    $config_vars = array(array('select', 'cache_enable', array($txt['cache_off'], $txt['cache_level1'], $txt['cache_level2'], $txt['cache_level3'])), array('text', 'cache_memcached'));
    // Saving again?
    if (isset($_GET['save'])) {
        saveDBSettings($config_vars);
        redirectexit('action=serversettings;sa=cache;sesc=' . $sc);
    }
    $context['post_url'] = $scripturl . '?action=serversettings2;save;sa=cache';
    $context['settings_title'] = $txt['caching_settings'];
    $context['settings_message'] = $txt['caching_information'];
    // Detect an optimizer?
    if (function_exists('eaccelerator_put')) {
        $detected = 'eAccelerator';
    } elseif (function_exists('mmcache_put')) {
        $detected = 'MMCache';
    } elseif (function_exists('apc_store')) {
        $detected = 'APC';
    } elseif (function_exists('output_cache_put')) {
        $detected = 'Zend';
    } elseif (function_exists('memcache_set')) {
        $detected = 'Memcached';
    } else {
        $detected = 'no_caching';
    }
    $context['settings_message'] = sprintf($context['settings_message'], $txt['detected_' . $detected]);
    // Prepare the template.
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 9
0
function ModifyDraftSettings($return_config = false)
{
    global $txt, $sourcedir, $context, $scripturl, $backend_subdir;
    $config_vars = array(array('int', 'enableAutoSaveDrafts', 'subtext' => $txt['draftsave_subnote'], 'postinput' => $txt['manageposts_seconds']));
    $context['page_title'] = $txt['manageposts_draft_settings'];
    $context['sub_template'] = 'show_settings';
    if ($return_config) {
        return $config_vars;
    }
    require_once $sourcedir . '/' . $backend_subdir . '/ManageServer.php';
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=postsettings;sa=drafts');
    }
    // Final settings...
    $context['post_url'] = $scripturl . '?action=admin;area=postsettings;save;sa=drafts';
    $context['settings_title'] = $txt['manageposts_draft_settings'];
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 10
0
/**
 * A screen to set a few general board and category settings.
 *
 * @uses modify_general_settings sub-template.
 * @param $return_config
 */
function EditBoardSettings($return_config = false)
{
    global $context, $txt, $sourcedir, $modSettings, $scripturl, $smcFunc;
    // Load the boards list - for the recycle bin!
    $recycle_boards = array('');
    $request = $smcFunc['db_query']('order_by_board_order', '
		SELECT b.id_board, b.name AS board_name, c.name AS cat_name
		FROM {db_prefix}boards AS b
			LEFT JOIN {db_prefix}categories AS c ON (c.id_cat = b.id_cat)
		WHERE redirect = {string:empty_string}', array('empty_string' => ''));
    while ($row = $smcFunc['db_fetch_assoc']($request)) {
        $recycle_boards[$row['id_board']] = $row['cat_name'] . ' - ' . $row['board_name'];
    }
    $smcFunc['db_free_result']($request);
    // Here and the board settings...
    $config_vars = array(array('title', 'settings'), array('permissions', 'manage_boards'), '', array('check', 'countChildPosts'), array('check', 'recycle_enable', 'onclick' => 'document.getElementById(\'recycle_board\').disabled = !this.checked;'), array('select', 'recycle_board', $recycle_boards), array('check', 'allow_ignore_boards'), array('check', 'deny_boards_access'));
    call_integration_hook('integrate_modify_board_settings', array(&$config_vars));
    if ($return_config) {
        return $config_vars;
    }
    // Needed for the settings template.
    require_once $sourcedir . '/ManageServer.php';
    // Don't let guests have these permissions.
    $context['post_url'] = $scripturl . '?action=admin;area=manageboards;save;sa=settings';
    $context['permissions_excluded'] = array(-1);
    $context['page_title'] = $txt['boards_and_cats'] . ' - ' . $txt['settings'];
    loadTemplate('ManageBoards');
    $context['sub_template'] = 'show_settings';
    // Add some javascript stuff for the recycle box.
    $context['settings_insert_below'] = '
		<script type="text/javascript"><!-- // --><![CDATA[
			document.getElementById("recycle_board").disabled = !document.getElementById("recycle_enable").checked;
		// ]]></script>';
    // Warn the admin against selecting the recycle topic without selecting a board.
    $context['force_form_onsubmit'] = 'if(document.getElementById(\'recycle_enable\').checked && document.getElementById(\'recycle_board\').value == 0) { return confirm(\'' . $txt['recycle_board_unselected_notice'] . '\');} return true;';
    // Doing a save?
    if (isset($_GET['save'])) {
        checkSession();
        call_integration_hook('integrate_save_board_settings');
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=manageboards;sa=settings');
    }
    // We need this for the in-line permissions
    createToken('admin-mp');
    // Prepare the settings...
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 11
0
    function settings($scripturl)
    {
        if (isset($_GET['save'])) {
            $charid = $_POST["tea_charid"];
            $userid = $_POST["tea_userid"];
            $api = $_POST["tea_api"];
        } else {
            $charid = $this->modSettings["tea_charid"];
            $userid = $this->modSettings["tea_userid"];
            $api = $this->modSettings["tea_api"];
        }
        $chars = $this->tea->get_characters($userid, $api);
        $charlist = array();
        if (!empty($chars)) {
            foreach ($chars as $char) {
                $charlist[$char['charid']] = $char['name'];
                if ($charid == $char['charid']) {
                    $corp = $char['corpid'];
                    $alliance = $char['allianceid'];
                }
            }
        }
        $groups2 = $this->tea->MemberGroups(TRUE);
        $groups[-1] = '-';
        foreach ($groups2 as $i => $g) {
            $groups[$i] = $g;
        }
        $options = '';
        if (!empty($charlist)) {
            foreach ($charlist as $i => $c) {
                $options .= '<option value="' . $i . '"';
                if ($this->tea->modSettings["tea_charid"] == $i) {
                    $options .= ' selected="selected"';
                }
                $options .= '>' . $c . '</option>
				';
            }
        }
        if (!empty($this->tea->modSettings['tea_ts_host'])) {
            require_once $this->sourcedir . '/TS3_Class/TeamSpeak3.php';
            $tslv = TeamSpeak3::LIB_VERSION;
            TeamSpeak3::init();
            try {
                $ts3 = TeamSpeak3::factory("serverquery://" . $this->modSettings["tea_ts_username"] . ":" . $this->modSettings["tea_ts_password"] . "@" . $this->modSettings["tea_ts_host"] . ":" . $this->modSettings["tea_ts_qport"] . "/?server_port=" . $this->modSettings["tea_ts_port"] . "&blocking=0");
                $sg = $ts3->serverGroupList();
                $gl[0] = '-';
                foreach ($sg as $n) {
                    if ((int) $n->type == 1 && (string) $n->name != 'Guest') {
                        //	$gl['s'.(int)$n -> sgid] = 'Server - '.(string)$n -> name;
                        $gl['s' . (int) $n->sgid] = (string) $n->name;
                    }
                }
                //		$cg = $ts3 -> channelGroupList();
                //		foreach($cg as $i => $n)
                //		{
                //			if((int)$n -> type == 1)
                //				$gl['c'.$i] = 'Channel - '.(string)$n -> name;
                //		}
            } catch (Exception $e) {
                echo "[ERROR] " . $e->getMessage() . "\n";
            }
        }
        $cgq = $this->smcFunc['db_query']('', "SELECT id, value FROM {db_prefix}tea_ts_groups ORDER BY id");
        $cgq = $this->tea->select($cgq);
        if (!empty($cgq)) {
            foreach ($cgq as $cgqs) {
                $cg[$cgqs[0]] = $cgqs[1];
            }
        }
        $groupcheck = '<dt>' . $this->txt['tea_groupmon'] . '
		<table><tr><td>Name</td><td>Checked</td></tr>';
        foreach ($gl as $id => $g) {
            if ($id != '0') {
                $check = '';
                if ($cg[$id] == 1) {
                    $check = 'checked';
                }
                $groupcheck .= '<tr><td>' . $g . '</td><td><input type="checkbox" name="group[' . $id . ']" value="main" ' . $check . ' /></td><td></tr>';
            }
        }
        $groupcheck .= '<tr><td>
			</td></tr></table></dt>';
        $config_vars = array('</form>
			<form name="miniform" method="post" action="">
				<input type="hidden" name="minitype" value="" />
				<input type="hidden" name="value" value="" />
			</form>
			<form action="' . $scripturl . '?action=admin;area=tea;sa=ts;save" method="post" accept-charset="ISO-8859-1" name="tea_ts_settings">', array('check', 'tea_ts_enable'), '', $groupcheck, '', array('text', 'tea_ts_host', 30), array('int', 'tea_ts_qport', 6), array('int', 'tea_ts_port', 6), array('text', 'tea_ts_username', 15), array('text', 'tea_ts_password', 15), array('text', 'tea_ts_nf', 15), '<dt>TeamSpeak Info (HTML) will display on TS area of profile</dt>', '<dt><textarea name="tea_ts_info" cols=120 rows=6>' . $this->modSettings['tea_ts_info'] . '</textarea></dt>', '', $this->txt['tea_ts_db_need'], array('text', 'tea_ts_db_host', 15), array('text', 'tea_ts_db_user', 15), array('text', 'tea_ts_db_pw', 15), array('text', 'tea_ts_db_pre', 15), array('int', 'tea_ts_dbid', 3), array('check', 'tea_ts_method_online'), array('check', 'tea_ts_method_create'), '', array('int', 'tea_ts_warnm', 4), array('int', 'tea_ts_kickm', 4), '');
        $rules = $this->smcFunc['db_query']('', "SELECT id, smf, ts, tst, nf FROM {db_prefix}tea_ts_rules ORDER BY id");
        $rules = $this->tea->select($rules);
        $ro = '<table border="1"><tr><td>Rule ID</td><td>SMF Group</td><td>TS Group</td><td>Name Format</td></tr>';
        $ids['new'] = 'new';
        if (!empty($rules)) {
            $first = TRUE;
            foreach ($rules as $i => $r) {
                $ids[$r[0]] = $r[0];
                $ro .= '<tr><td>' . $r[0] . '</td><td>' . $groups[$r[1]] . '</td><td>' . $gl[$r[3] . $r[2]] . '</td><td>' . $r[4] . '</td>';
                $ro .= '<td>';
                if (!$first) {
                    $ro .= '<a href="javascript:move(' . $r[0] . ', \'up\')"><img src="' . $this->settings['images_url'] . '/sort_up.gif"></a>';
                }
                if ($i != count($rules) - 1) {
                    $ro .= '<a href="javascript:move(' . $r[0] . ', \'down\')"><img src="' . $this->settings['images_url'] . '/sort_down.gif"></a>';
                }
                $ro .= '<a href="javascript:edit(' . $r[0] . ', ' . $r[1] . ', \'' . $r[3] . $r[2] . '\', \'' . $r[4] . '\')"><img src="' . $this->settings['images_url'] . '/icons/config_sm.gif"></a>
				<a href="javascript: delrule(' . $r[0] . ')"><img src="' . $this->settings['images_url'] . '/icons/quick_remove.gif"></a></td></tr>';
                $first = FALSE;
            }
        }
        $config_vars[] = '<dt>' . $ro . '</table></dt>';
        $config_vars[] = '';
        $config_vars[100] = array('select', 'tea_ts_addrule_id', $ids, 'Rule ID');
        $config_vars[101] = array('select', 'tea_ts_addrule_group', $groups);
        $config_vars[102] = array('select', 'tea_ts_addrule_tsg', $gl);
        $config_vars[103] = array('text', 'tea_ts_addrule_nf', 15);
        //$config_vars[103] = array('hidden', 'tea_ts_editrule_id');
        $config_vars[] = '
<script type="text/javascript">
function edit(id, smf, ts, nf)
{
	document.tea_ts_settings.tea_ts_addrule_id.value=id;
	document.tea_ts_settings.tea_ts_addrule_group.value=smf;
	document.tea_ts_settings.tea_ts_addrule_tsg.value=ts;
	document.tea_ts_settings.tea_ts_addrule_nf.value=nf;
}
function delrule(value)
{
	if (confirm("\\nAre you sure you want Delete rule "+value+"?"))
		subform(\'delrule\', value);
}
function subform(type, value)
{
	document.miniform.minitype.value=type;
	document.miniform.value.value=value;
	document.miniform.submit();
}
function move(id, value)
{
	subform(value, id);
}
</script>';
        //	if(isset($_POST['tea_useapiabove']))
        //	{
        //		$_POST['tea_corpid'] = $corp;
        //		$_POST['tea_allianceid'] = $alliance;
        //		unset($_POST['tea_useapiabove']);
        //	}
        //	if(!empty($_POST['tea_ts_delrule']
        if ($_POST['minitype'] == 'delrule') {
            if (!is_numeric($_POST['value'])) {
                die("delete value must be number");
            }
            $this->tea->query("DELETE FROM {db_prefix}tea_ts_rules WHERE id = " . $_POST['value']);
            redirectexit('action=admin;area=tea;sa=ts');
        } elseif ($_POST['minitype'] == 'up' || $_POST['minitype'] == 'down') {
            $id = $_POST['value'];
            if (!is_numeric($id)) {
                die("move id must be number");
            }
            $rules = $this->smcFunc['db_query']('', "SELECT id FROM {db_prefix}tea_ts_rules ORDER BY id");
            $rules = $this->tea->select($rules);
            if (!empty($rules)) {
                //	foreach($rules as $rule)
                //	{
                //		$rl[$rule[1]][$rule[0]] = $rule[0];
                //		if($rule[0] == $id)
                //			$main = $rule[1];
                //	}
                //	if(isset($main))
                //	{
                //		$rules = $rl[$main];
                //		sort($rules);
                foreach ($rules as $i => $rule) {
                    if ($rule[0] == $id) {
                        if ($_POST['minitype'] == 'up') {
                            $move = $rules[$i - 1][0];
                        } elseif ($_POST['minitype'] == 'down') {
                            $move = $rules[$i + 1][0];
                        }
                        $this->tea->query("UPDATE {db_prefix}tea_ts_rules SET id = -1 WHERE id = " . $move);
                        $this->tea->query("UPDATE {db_prefix}tea_ts_rules SET id = {$move} WHERE id = " . $id);
                        $this->tea->query("UPDATE {db_prefix}tea_ts_rules SET id = {$id} WHERE id = -1");
                        break;
                    }
                }
            }
            redirectexit('action=admin;area=tea;sa=ts');
        }
        if (isset($_POST['group'])) {
            $this->tea->query("DELETE FROM {db_prefix}tea_ts_groups");
            foreach ($_POST['group'] as $g => $v) {
                $this->tea->query("\n\t\t\t\t\t\tINSERT INTO {db_prefix}tea_ts_groups\n\t\t\t\t\t\t\t(id, value)\n\t\t\t\t\t\tVALUES \n\t\t\t\t\t\t\t({string:id}, {int:value})", array('id' => $g, 'value' => '1'));
            }
        }
        // Saving?
        if (isset($_GET['save'])) {
            if ($_POST['tea_ts_addrule_group'] > -1 && !empty($_POST['tea_ts_addrule_tsg'])) {
                if (!is_numeric($_POST['tea_ts_addrule_group'])) {
                    die('Group must be Number');
                }
                $l = $_POST['tea_ts_addrule_tsg'][0];
                $_POST['tea_ts_addrule_tsg'] = substr($_POST['tea_ts_addrule_tsg'], 1);
                if (!is_numeric($_POST['tea_ts_addrule_tsg'])) {
                    die('Group must be Number');
                }
                if ($l != 's' && $l != 'c') {
                    die('Channel must be s or c');
                }
                if ($_POST['tea_ts_addrule_id'] == 'new') {
                    $this->tea->query('INSERT INTO {db_prefix}tea_ts_rules (smf, ts, tst, nf) VALUES (' . $_POST['tea_ts_addrule_group'] . ', ' . $_POST['tea_ts_addrule_tsg'] . ', \'' . $l . '\', \'' . mysql_real_escape_string($_POST['tea_ts_addrule_nf']) . '\')');
                } else {
                    if (!is_numeric($_POST['tea_ts_addrule_id'])) {
                        die('ID must be Number or new');
                    }
                    $this->tea->query("UPDATE {db_prefix}tea_ts_rules SET smf = " . $_POST['tea_ts_addrule_group'] . ", ts = " . $_POST['tea_ts_addrule_tsg'] . ", tst = '" . $l . "', nf = '" . mysql_real_escape_string($_POST['tea_ts_addrule_nf']) . "' WHERE id = " . $_POST['tea_ts_addrule_id']);
                }
            }
            unset($config_vars[100], $config_vars[101], $config_vars[102], $config_vars[103]);
            $config_vars[] = array('select', 'tea_charid', $charlist);
            $config_vars[] = array('text', 'tea_ts_info');
            saveDBSettings($config_vars);
            redirectexit('action=admin;area=tea;sa=ts');
            loadUserSettings();
            writeLog();
        }
        $this->context['post_url'] = $scripturl . '?action=admin;area=tea;sa=ts;save';
        //	$context['settings_title'] = $txt['tea_tea'];
        //	$context['settings_message'] = $txt['tea_settings_message'];
        prepareDBSettingContext($config_vars);
    }
Exemplo n.º 12
0
function ModifyLoadBalancingSettings($return_config = false)
{
    global $txt, $scripturl, $context, $settings, $modSettings;
    // Setup a warning message, but disabled by default.
    $disabled = true;
    $context['settings_message'] = $txt['loadavg_disabled_conf'];
    if (strpos(strtolower(PHP_OS), 'win') === 0) {
        $context['settings_message'] = $txt['loadavg_disabled_windows'];
    } else {
        $modSettings['load_average'] = @file_get_contents('/proc/loadavg');
        if (!empty($modSettings['load_average']) && preg_match('~^([^ ]+?) ([^ ]+?) ([^ ]+)~', $modSettings['load_average'], $matches) !== 0) {
            $modSettings['load_average'] = (double) $matches[1];
        } elseif (($modSettings['load_average'] = @`uptime`) !== null && preg_match('~load averages?: (\\d+\\.\\d+), (\\d+\\.\\d+), (\\d+\\.\\d+)~i', $modSettings['load_average'], $matches) !== 0) {
            $modSettings['load_average'] = (double) $matches[1];
        } else {
            unset($modSettings['load_average']);
        }
        if (!empty($modSettings['load_average'])) {
            $context['settings_message'] = sprintf($txt['loadavg_warning'], $modSettings['load_average']);
            $disabled = false;
        }
    }
    // Start with a simple checkbox.
    $config_vars = array(array('check', 'loadavg_enable'));
    // Set the default values for each option.
    $default_values = array('loadavg_auto_opt' => '1.0', 'loadavg_search' => '2.5', 'loadavg_allunread' => '2.0', 'loadavg_unreadreplies' => '3.5', 'loadavg_show_posts' => '2.0', 'loadavg_forum' => '40.0');
    // Loop through the settings.
    foreach ($default_values as $name => $value) {
        // Use the default value if the setting isn't set yet.
        $value = !isset($modSettings[$name]) ? $value : $modSettings[$name];
        $config_vars[] = array('text', $name, 'value' => $value, 'disabled' => $disabled);
    }
    if ($return_config) {
        return $config_vars;
    }
    $context['post_url'] = $scripturl . '?action=admin;area=serversettings;sa=loads;save';
    $context['settings_title'] = $txt['load_balancing_settings'];
    // Saving?
    if (isset($_GET['save'])) {
        // Stupidity is not allowed.
        foreach ($_POST as $key => $value) {
            if (strpos($key, 'loadavg') === 0 || $key === 'loadavg_enable') {
                continue;
            } elseif ($key == 'loadavg_auto_opt' && $value <= 1) {
                $_POST['loadavg_auto_opt'] = '1.0';
            } elseif ($key == 'loadavg_forum' && $value < 10) {
                $_POST['loadavg_forum'] = '10.0';
            } elseif ($value < 2) {
                $_POST[$key] = '2.0';
            }
        }
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=serversettings;sa=loads;' . $context['session_var'] . '=' . $context['session_id']);
    }
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 13
0
/**
 * Set some general membergroup settings and permissions.
 * Called by ?action=admin;area=membergroups;sa=settings
 * Requires the admin_forum permission (and manage_permissions for changing permissions)
 * Redirects to itself.
 *
 * @uses membergroup_settings sub template of ManageMembergroups.
 */
function ModifyMembergroupsettings()
{
    global $context, $sourcedir, $scripturl, $modSettings, $txt;
    $context['sub_template'] = 'show_settings';
    $context['page_title'] = $txt['membergroups_settings'];
    // Needed for the settings functions.
    require_once $sourcedir . '/ManageServer.php';
    // Don't allow assignment of guests.
    $context['permissions_excluded'] = array(-1);
    // Only one thing here!
    $config_vars = array(array('permissions', 'manage_membergroups'));
    call_integration_hook('integrate_modify_membergroup_settings', array(&$config_vars));
    if (isset($_REQUEST['save'])) {
        checkSession();
        call_integration_hook('integrate_save_membergroup_settings');
        // Yeppers, saving this...
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=membergroups;sa=settings');
    }
    // Some simple context.
    $context['post_url'] = $scripturl . '?action=admin;area=membergroups;save;sa=settings';
    $context['settings_title'] = $txt['membergroups_settings'];
    // We need this for the in-line permissions
    createToken('admin-mp');
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 14
0
function EditSmileySettings($return_config = false)
{
    global $modSettings, $context, $settings, $txt, $boarddir, $sourcedir, $scripturl;
    // The directories...
    $context['smileys_dir'] = empty($modSettings['smileys_dir']) ? $boarddir . '/Smileys' : $modSettings['smileys_dir'];
    $context['smileys_dir_found'] = is_dir($context['smileys_dir']);
    // Get the names of the smiley sets.
    $smiley_sets = explode(',', $modSettings['smiley_sets_known']);
    $set_names = explode("\n", $modSettings['smiley_sets_names']);
    $smiley_context = array();
    foreach ($smiley_sets as $i => $set) {
        $smiley_context[$set] = $set_names[$i];
    }
    // All the settings for the page...
    $config_vars = array(array('title', 'settings'), array('permissions', 'manage_smileys'), '', array('select', 'smiley_sets_default', $smiley_context), array('check', 'smiley_sets_enable'), array('check', 'smiley_enable', 'subtext' => $txt['smileys_enable_note']), array('text', 'smileys_url'), array('text', 'smileys_dir', 'invalid' => !$context['smileys_dir_found']), '', array('check', 'messageIcons_enable', 'subtext' => $txt['setting_messageIcons_enable_note']));
    if ($return_config) {
        return $config_vars;
    }
    // Setup the basics of the settings template.
    require_once $sourcedir . '/ManageServer.php';
    $context['sub_template'] = 'show_settings';
    // Finish up the form...
    $context['post_url'] = $scripturl . '?action=admin;area=smileys;save;sa=settings';
    $context['permissions_excluded'] = array(-1);
    // Saving the settings?
    if (isset($_GET['save'])) {
        checkSession();
        // Validate the smiley set name.
        $_POST['smiley_sets_default'] = empty($smiley_context[$_POST['smiley_sets_default']]) ? 'default' : $_POST['smiley_sets_default'];
        // Make sure that the smileys are in the right order after enabling them.
        if (isset($_POST['smiley_enable'])) {
            sortSmileyTable();
        }
        saveDBSettings($config_vars);
        cache_put_data('parsing_smileys', null, 480);
        cache_put_data('posting_smileys', null, 480);
        redirectexit('action=admin;area=smileys;sa=settings');
    }
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 15
0
function ModifyCalendarSettings($return_config = false)
{
    global $modSettings, $context, $settings, $txt, $boarddir, $sourcedir, $scripturl, $smcFunc;
    // Load the boards list.
    $boards = array('');
    $request = $smcFunc['db_query']('order_by_board_order', '
		SELECT b.id_board, b.name AS board_name, c.name AS cat_name
		FROM {db_prefix}boards AS b
			LEFT JOIN {db_prefix}categories AS c ON (c.id_cat = b.id_cat)', array());
    while ($row = $smcFunc['db_fetch_assoc']($request)) {
        $boards[$row['id_board']] = $row['cat_name'] . ' - ' . $row['board_name'];
    }
    $smcFunc['db_free_result']($request);
    // Look, all the calendar settings - of which there are many!
    $config_vars = array(array('permissions', 'calendar_view', 'help' => 'cal_enabled'), array('permissions', 'calendar_post'), array('permissions', 'calendar_edit_own'), array('permissions', 'calendar_edit_any'), '', array('int', 'cal_days_for_index'), array('select', 'cal_showholidays', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])), array('select', 'cal_showbdays', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])), array('select', 'cal_showevents', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])), '', array('select', 'cal_defaultboard', $boards), array('check', 'cal_daysaslink'), array('check', 'cal_allow_unlinked'), array('check', 'cal_showInTopic'), '', array('int', 'cal_minyear'), array('int', 'cal_maxyear'), '', array('check', 'cal_allowspan'), array('int', 'cal_maxspan'));
    if ($return_config) {
        return $config_vars;
    }
    // Get the settings template fired up.
    require_once $sourcedir . '/ManageServer.php';
    // Some important context stuff
    $context['page_title'] = $txt['calendar_settings'];
    $context['sub_template'] = 'show_settings';
    // Get the final touches in place.
    $context['post_url'] = $scripturl . '?action=admin;area=managecalendar;save;sa=settings';
    $context['settings_title'] = $txt['calendar_settings'];
    // Saving the settings?
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        // Update the stats in case.
        updateSettings(array('calendar_updated' => time()));
        redirectexit('action=admin;area=managecalendar;sa=settings');
    }
    // Prepare the settings...
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 16
0
/**
 * If you have a general mod setting to add stick it here.
 *
 * @param $return_config
 */
function ModifyGeneralModSettings($return_config = false)
{
    global $txt, $scripturl, $context, $settings, $sc, $modSettings;
    $config_vars = array();
    // Make it even easier to add new settings.
    call_integration_hook('integrate_general_mod_settings', array(&$config_vars));
    if ($return_config) {
        return $config_vars;
    }
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=general';
    $context['settings_title'] = $txt['mods_cat_modifications_misc'];
    // No removing this line you, dirty unwashed mod authors. :p
    if (empty($config_vars)) {
        $context['settings_save_dont_show'] = true;
        $context['settings_message'] = '<div class="centertext">' . $txt['modification_no_misc_settings'] . '</div>';
        return prepareDBSettingContext($config_vars);
    }
    // Saving?
    if (isset($_GET['save'])) {
        checkSession();
        $save_vars = $config_vars;
        call_integration_hook('integrate_save_general_mod_settings', array(&$save_vars));
        // This line is to help mod authors do a search/add after if you want to add something here. Keyword: FOOT TAPPING SUCKS!
        saveDBSettings($save_vars);
        // This line is to help mod authors do a search/add after if you want to add something here. Keyword: I LOVE TEA!
        redirectexit('action=admin;area=modsettings;sa=general');
    }
    // This line is to help mod authors do a search/add after if you want to add something here. Keyword: RED INK IS FOR TEACHERS AND THOSE WHO LIKE PAIN!
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 17
0
function ModifyInviteSettings($return_config = false)
{
    global $context, $txt, $scripturl, $smcFunc, $modSettings;
    $context['sub_template'] = 'show_settings';
    $config_vars = array(array('check', 'invite_enabled'), array('check', 'roll_over'), array('check', 'invite_email'), array('int', 'key_renew'), array('int', 'key_expire'));
    if ($return_config) {
        return $config_vars;
    }
    if (isset($_GET['save'])) {
        // Looks like you pressed that save button. Great, let's throw that in then.
        checkSession();
        $smcFunc['db_query']('', '
			UPDATE {db_prefix}scheduled_tasks
			SET time_regularity = {int:time}, disabled = {int:active}
			WHERE task = {string:task}', array('time' => (int) $_POST[$config_vars[4][1]], 'active' => (int) $_POST[$config_vars[4][1]] == 0 ? 1 : 0, 'task' => 'keyExpire'));
        $smcFunc['db_query']('', '
			UPDATE {db_prefix}scheduled_tasks
			SET time_regularity = {int:time}, disabled = {int:active}
			WHERE task = {string:task}', array('time' => (int) $_POST[$config_vars[3][1]], 'active' => $_POST[$config_vars[3][1]] == 0 ? 1 : 0, 'task' => 'keyRenew'));
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=invite;sa=modify');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=invite;sa=modify;save';
    $context['settings_title'] = $txt['invite_settings_title'];
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 18
0
function ModifySubscriptionSettings($return_config = false)
{
    global $context, $txt, $modSettings, $sourcedir, $smcFunc, $scripturl;
    // If the currency is set to something different then we need to set it to other for this to work and set it back shortly.
    $modSettings['paid_currency'] = !empty($modSettings['paid_currency_code']) ? $modSettings['paid_currency_code'] : '';
    if (!empty($modSettings['paid_currency_code']) && !in_array($modSettings['paid_currency_code'], array('usd', 'eur', 'gbp'))) {
        $modSettings['paid_currency'] = 'other';
    }
    // These are all the default settings.
    $config_vars = array(array('select', 'paid_email', array(0 => $txt['paid_email_no'], 1 => $txt['paid_email_error'], 2 => $txt['paid_email_all']), 'subtext' => $txt['paid_email_desc']), array('text', 'paid_email_to', 'subtext' => $txt['paid_email_to_desc'], 'size' => 60), '', 'dummy_currency' => array('select', 'paid_currency', array('usd' => $txt['usd'], 'eur' => $txt['eur'], 'gbp' => $txt['gbp'], 'other' => $txt['other']), 'javascript' => 'onchange="toggleOther();"'), array('text', 'paid_currency_code', 'subtext' => $txt['paid_currency_code_desc'], 'size' => 5, 'force_div_id' => 'custom_currency_code_div'), array('text', 'paid_currency_symbol', 'subtext' => $txt['paid_currency_symbol_desc'], 'size' => 8, 'force_div_id' => 'custom_currency_symbol_div'), array('check', 'paidsubs_test', 'subtext' => $txt['paidsubs_test_desc'], 'onclick' => 'return document.getElementById(\'paidsubs_test\').checked ? confirm(\'' . $txt['paidsubs_test_confirm'] . '\') : true;'));
    // Now load all the other gateway settings.
    $gateways = loadPaymentGateways();
    foreach ($gateways as $gateway) {
        $gatewayClass = new $gateway['display_class']();
        $setting_data = $gatewayClass->getGatewaySettings();
        if (!empty($setting_data)) {
            $config_vars[] = array('title', $gatewayClass->title, 'text_label' => isset($txt['paidsubs_gateway_title_' . $gatewayClass->title]) ? $txt['paidsubs_gateway_title_' . $gatewayClass->title] : $gatewayClass->title);
            $config_vars = array_merge($config_vars, $setting_data);
        }
    }
    // Just searching?
    if ($return_config) {
        return $config_vars;
    }
    // Get the settings template fired up.
    require_once $sourcedir . '/ManageServer.php';
    // Some important context stuff
    $context['page_title'] = $txt['settings'];
    $context['sub_template'] = 'show_settings';
    $context['settings_message'] = '<span class="smalltext">' . $txt['paid_note'] . '</span>';
    $context[$context['admin_menu_name']]['current_subsection'] = 'settings';
    // Get the final touches in place.
    $context['post_url'] = $scripturl . '?action=admin;area=paidsubscribe;save;sa=settings';
    $context['settings_title'] = $txt['settings'];
    // We want javascript for our currency options.
    $context['settings_insert_below'] = '
		<script type="text/javascript"><!-- // --><![CDATA[
			function toggleOther()
			{
				var otherOn = document.getElementById("paid_currency").value == \'other\';
				var currencydd = document.getElementById("custom_currency_code_div_dd");

				if (otherOn)
				{
					document.getElementById("custom_currency_code_div").style.display = "";
					document.getElementById("custom_currency_symbol_div").style.display = "";

					if (currencydd)
					{
						document.getElementById("custom_currency_code_div_dd").style.display = "";
						document.getElementById("custom_currency_symbol_div_dd").style.display = "";
					}
				}
				else
				{
					document.getElementById("custom_currency_code_div").style.display = "none";
					document.getElementById("custom_currency_symbol_div").style.display = "none";

					if (currencydd)
					{
						document.getElementById("custom_currency_symbol_div_dd").style.display = "none";
						document.getElementById("custom_currency_code_div_dd").style.display = "none";
					}
				}
			}
			toggleOther();
		// ]]></script>';
    // Saving the settings?
    if (isset($_GET['save'])) {
        checkSession();
        // Sort out the currency stuff.
        if ($_POST['paid_currency'] != 'other') {
            $_POST['paid_currency_code'] = $_POST['paid_currency'];
            $_POST['paid_currency_symbol'] = $txt[$_POST['paid_currency'] . '_symbol'];
        }
        unset($config_vars['dummy_currency']);
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=paidsubscribe;sa=settings');
    }
    // Prepare the settings...
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 19
0
function og_settings($return_config = false)
{
    global $scripturl, $context, $txt;
    $config_vars = array(array('check', 'og_ext_chk', 'subtext' => $txt['og_ext_chk_desc']), array('large_text', 'og_allowed', 'subtext' => $txt['og_allowed_desc']));
    if (!empty($return_config)) {
        return $config_vars;
    }
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=og_settings';
    $context['settings_title'] = $txt['og_settings'];
    if (isset($_GET['save'])) {
        checkSession();
        $save_vars = $config_vars;
        saveDBSettings($save_vars);
        redirectexit('action=admin;area=modsettings;sa=og_settings');
    }
    prepareDBSettingContext($config_vars);
}
function teknoromisidebarSettings($return_config = false)
{
    global $modSettings, $webmaster_email, $txt, $scripturl, $context, $sc, $smcFunc;
    loadLanguage('teknoromisidebar');
    $boards = array();
    $request = $smcFunc['db_query']('order_by_board_order', '
		SELECT b.id_board, b.name AS board_name, c.name AS cat_name
		FROM {db_prefix}boards AS b
			LEFT JOIN {db_prefix}categories AS c ON (c.id_cat = b.id_cat)', array());
    while ($row = $smcFunc['db_fetch_assoc']($request)) {
        $boards[$row['id_board']] = $row['cat_name'] . ' - ' . $row['board_name'];
    }
    $smcFunc['db_free_result']($request);
    $config_vars = array(array('check', 'sideleft'), array('text', 'sideleftwidth'), array('text', 'lefthtmlbaslik'), array('large_text', 'sideleft1'), array('text', 'leftphpbaslik'), array('large_text', 'sideleftphp'), array('check', 'sidelefthaberetkin'), array('text', 'lbaslik'), array('select', 'sidelefthaber', $boards), array('int', 'sideleftsay'), '', array('check', 'sideright'), array('text', 'siderightwidth'), array('text', 'righthtmlbaslik'), array('large_text', 'sideright1'), array('text', 'rightphpbaslik'), array('large_text', 'siderightphp'), array('check', 'siderighthaberetkin'), array('text', 'rbaslik'), array('select', 'siderighthaber', $boards), array('int', 'siderightsay'));
    if ($return_config) {
        return $config_vars;
    }
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=teknoromisidebar';
    $context['settings_title'] = $txt['teknoromisidebartitle'];
    // Saving?
    if (isset($_GET['save'])) {
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=modsettings;sa=teknoromisidebar');
    }
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 21
0
function KB_standalone()
{
    global $context, $sourcedir, $scripturl, $modSettings, $txt;
    require_once $sourcedir . '/ManageServer.php';
    $context['sub_template'] = 'show_settings';
    $value = false;
    $disabled = !empty($modSettings['kb_knowledge_only']) ? false : true;
    $config_vars = array(array('check', 'kb_knowledge_only', 'subtext' => $txt['kb_knowledge_only_note']));
    $disabled_options = array('kb_disable_pm', 'kb_disable_mlist');
    foreach ($disabled_options as $name) {
        $value = !isset($modSettings[$name]) ? $value : $modSettings[$name];
        $config_vars[] = array('check', $name, 'value' => $value, 'disabled' => $disabled);
    }
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        KB_cleanCache();
        redirectexit('action=admin;area=kb;sa=kbstand');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=kb;sa=kbstand;save';
    $context['settings_title'] = $txt['kbase_sto'];
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 22
0
    /**
     * Called in SMF admin panel for managing roles
     */
    private function ManageRoles()
    {
        global $txt, $scripturl, $context, $settings, $smcFunc, $modSettings;
        // Get the basic group data.
        $request = $smcFunc['db_query']('', '
			SELECT id_group, group_name
			FROM {db_prefix}membergroups
			WHERE min_posts = -1
			ORDER BY CASE WHEN id_group < 4 THEN id_group ELSE 4 END, group_name', array());
        $context['smfGroups'] = array('0' => array('id_group' => 0, 'group_name' => $txt['membergroups_members']));
        while ($row = $smcFunc['db_fetch_assoc']($request)) {
            $context['smfGroups'][$row['id_group']] = array('id_group' => $row['id_group'], 'group_name' => $row['group_name']);
        }
        $smcFunc['db_free_result']($request);
        $this->loadWordpressSettings();
        // Get the WP roles
        $request = $smcFunc['db_query']('', '
			SELECT option_value
			FROM {raw:wp_prefix}options
			WHERE option_name LIKE {string:wp_roles}', array('wp_prefix' => $this->db_prefix, 'wp_roles' => 'wp_user_roles'), $this->db_connection);
        list($wp_roles) = $smcFunc['db_fetch_row']($request);
        $smcFunc['db_free_result']($request);
        $context['wpRoles'] = unserialize($wp_roles);
        // Lastly, our mapping
        $context['wpMapping'] = !empty($modSettings['wordpress_role_maps']) ? unserialize($modSettings['wordpress_role_maps']) : array('smf' => array(), 'wp' => array());
        $config_vars = array(array('title', 'wordpress wp to smf mapping'), array('desc', 'wordpress wp to smf mapping desc'), array('callback', 'wordpress_edit_roles'), array('title', 'wordpress smf to wp mapping'), array('desc', 'wordpress smf to wp mapping desc'), array('callback', 'wordpress_edit_membergroups'));
        $context['post_url'] = $scripturl . '?action=admin;area=wordpress;sa=roles;save';
        if (isset($_GET['save'])) {
            checkSession();
            foreach ($_POST['smfroles'] as $id_group => $role) {
                if (empty($context['smfGroups'][$id_group]) || empty($context['wpRoles'][$role])) {
                    unset($_POST['smfroles'][$id_group]);
                }
            }
            foreach ($_POST['wproles'] as $role => $id_group) {
                if (empty($context['smfGroups'][$id_group]) || empty($context['wpRoles'][$role])) {
                    unset($_POST['wproles'][$role]);
                }
            }
            $_POST['wordpress_role_maps'] = serialize(array('smf' => $_POST['smfroles'], 'wp' => $_POST['wproles']));
            $save_vars = array(array('text', 'wordpress_role_maps'));
            saveDBSettings($save_vars);
            redirectexit('action=admin;area=wordpress;sa=roles');
        }
        prepareDBSettingContext($config_vars);
    }
Exemplo n.º 23
0
function ManageSearchEngineSettings($return_config = false)
{
    global $context, $txt, $modSettings, $scripturl, $sourcedir, $smcFunc;
    $config_vars = array(array('select', 'spider_mode', array($txt['spider_mode_off'], $txt['spider_mode_standard'], $txt['spider_mode_high'], $txt['spider_mode_vhigh']), 'onchange' => 'disableFields();'), 'spider_group' => array('select', 'spider_group', array($txt['spider_group_none'], $txt['membergroups_members'])), array('select', 'show_spider_online', array($txt['show_spider_online_no'], $txt['show_spider_online_summary'], $txt['show_spider_online_detail'], $txt['show_spider_online_detail_admin'])));
    // Set up a message.
    $context['settings_message'] = '<span class="smalltext">' . sprintf($txt['spider_settings_desc'], $scripturl . '?action=admin;area=logs;sa=pruning;' . $context['session_var'] . '=' . $context['session_id']) . '</span>';
    // Do some javascript.
    $javascript_function = '
		function disableFields()
		{
			disabledState = document.getElementById(\'spider_mode\').value == 0;';
    foreach ($config_vars as $variable) {
        if ($variable[1] != 'spider_mode') {
            $javascript_function .= '
			if (document.getElementById(\'' . $variable[1] . '\'))
				document.getElementById(\'' . $variable[1] . '\').disabled = disabledState;';
        }
    }
    $javascript_function .= '
		}
		disableFields();';
    if ($return_config) {
        return $config_vars;
    }
    // We need to load the groups for the spider group thingy.
    $request = $smcFunc['db_query']('', '
		SELECT id_group, group_name
		FROM {db_prefix}membergroups
		WHERE id_group != {int:admin_group}
			AND id_group != {int:moderator_group}', array('admin_group' => 1, 'moderator_group' => 3));
    while ($row = $smcFunc['db_fetch_assoc']($request)) {
        $config_vars['spider_group'][2][$row['id_group']] = $row['group_name'];
    }
    $smcFunc['db_free_result']($request);
    // Make sure it's valid - note that regular members are given id_group = 1 which is reversed in Load.php - no admins here!
    if (isset($_POST['spider_group']) && !isset($config_vars['spider_group'][2][$_POST['spider_group']])) {
        $_POST['spider_group'] = 0;
    }
    // We'll want this for our easy save.
    require_once $sourcedir . '/ManageServer.php';
    // Setup the template.
    $context['page_title'] = $txt['settings'];
    $context['sub_template'] = 'show_settings';
    // Are we saving them - are we??
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        recacheSpiderNames();
        redirectexit('action=admin;area=sengines;sa=settings');
    }
    // Final settings...
    $context['post_url'] = $scripturl . '?action=admin;area=sengines;save;sa=settings';
    $context['settings_title'] = $txt['settings'];
    $context['settings_insert_below'] = '
		<script type="text/javascript"><!-- // --><![CDATA[
			' . $javascript_function . '
		// ]]></script>';
    // Prepare the settings...
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 24
0
function ModifyNewsSettings($return_config = false)
{
    global $context, $sourcedir, $modSettings, $txt, $scripturl;
    $config_vars = array(array('title', 'settings'), array('permissions', 'edit_news', 'help' => ''), array('permissions', 'send_mail'), '', array('check', 'xmlnews_enable', 'onclick' => 'document.getElementById(\'xmlnews_maxlen\').disabled = !this.checked;'), array('text', 'xmlnews_maxlen', 10));
    if ($return_config) {
        return $config_vars;
    }
    $context['page_title'] = $txt['admin_edit_news'] . ' - ' . $txt['settings'];
    $context['sub_template'] = 'show_settings';
    // Needed for the inline permission functions, and the settings template.
    require_once $sourcedir . '/ManagePermissions.php';
    require_once $sourcedir . '/ManageServer.php';
    // Wrap it all up nice and warm...
    $context['post_url'] = $scripturl . '?action=admin;area=news;save;sa=settings';
    $context['permissions_excluded'] = array(-1);
    // Add some javascript at the bottom...
    $context['settings_insert_below'] = '
		<script type="text/javascript"><!-- // --><![CDATA[
			document.getElementById("xmlnews_maxlen").disabled = !document.getElementById("xmlnews_enable").checked;
		// ]]></script>';
    // Saving the settings?
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=news;sa=settings');
    }
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 25
0
/**
 * Allows to view and modify the mail settings.
 *
 * @param bool $return_config = false
 * @return array
 */
function ModifyMailSettings($return_config = false)
{
    global $txt, $scripturl, $context, $settings, $modSettings, $txtBirthdayEmails;
    loadLanguage('EmailTemplates');
    $body = $txtBirthdayEmails[(empty($modSettings['birthday_email']) ? 'happy_birthday' : $modSettings['birthday_email']) . '_body'];
    $subject = $txtBirthdayEmails[(empty($modSettings['birthday_email']) ? 'happy_birthday' : $modSettings['birthday_email']) . '_subject'];
    $emails = array();
    $processedBirthdayEmails = array();
    foreach ($txtBirthdayEmails as $key => $value) {
        $index = substr($key, 0, strrpos($key, '_'));
        $element = substr($key, strrpos($key, '_') + 1);
        $processedBirthdayEmails[$index][$element] = $value;
    }
    foreach ($processedBirthdayEmails as $index => $dummy) {
        $emails[$index] = $index;
    }
    $config_vars = array(array('check', 'mail_queue'), array('int', 'mail_limit'), array('int', 'mail_quantity'), '', array('select', 'mail_type', array($txt['mail_type_default'], 'SMTP')), array('text', 'smtp_host'), array('text', 'smtp_port'), array('text', 'smtp_username'), array('password', 'smtp_password'), '', array('select', 'birthday_email', $emails, 'value' => array('subject' => $subject, 'body' => $body), 'javascript' => 'onchange="fetch_birthday_preview()"'), 'birthday_subject' => array('var_message', 'birthday_subject', 'var_message' => $processedBirthdayEmails[empty($modSettings['birthday_email']) ? 'happy_birthday' : $modSettings['birthday_email']]['subject'], 'disabled' => true, 'size' => strlen($subject) + 3), 'birthday_body' => array('var_message', 'birthday_body', 'var_message' => nl2br($body), 'disabled' => true, 'size' => ceil(strlen($body) / 25)));
    call_integration_hook('integrate_modify_mail_settings', array(&$config_vars));
    if ($return_config) {
        return $config_vars;
    }
    // Saving?
    if (isset($_GET['save'])) {
        // Make the SMTP password a little harder to see in a backup etc.
        if (!empty($_POST['smtp_password'][1])) {
            $_POST['smtp_password'][0] = base64_encode($_POST['smtp_password'][0]);
            $_POST['smtp_password'][1] = base64_encode($_POST['smtp_password'][1]);
        }
        checkSession();
        // We don't want to save the subject and body previews.
        unset($config_vars['birthday_subject'], $config_vars['birthday_body']);
        call_integration_hook('integrate_save_mail_settings');
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=mailqueue;sa=settings');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=mailqueue;save;sa=settings';
    $context['settings_title'] = $txt['mailqueue_settings'];
    prepareDBSettingContext($config_vars);
    $context['settings_insert_above'] = '
	<script type="text/javascript"><!-- // --><![CDATA[
		var bDay = {';
    $i = 0;
    foreach ($processedBirthdayEmails as $index => $email) {
        $is_last = ++$i == count($processedBirthdayEmails);
        $context['settings_insert_above'] .= '
			' . $index . ': {
				subject: ' . JavaScriptEscape($email['subject']) . ',
				body: ' . JavaScriptEscape(nl2br($email['body'])) . '
			}' . (!$is_last ? ',' : '');
    }
    $context['settings_insert_above'] .= '
		};
		function fetch_birthday_preview()
		{
			var index = document.getElementById(\'birthday_email\').value;
			document.getElementById(\'birthday_subject\').innerHTML = bDay[index].subject;
			document.getElementById(\'birthday_body\').innerHTML = bDay[index].body;
		}
	// ]]></script>';
}
function ManageAvatarSettings($return_config = false)
{
    global $txt, $context, $modSettings, $sourcedir, $scripturl;
    // Perform a test to see if the GD module is installed.
    $testGD = get_extension_funcs('gd');
    $context['valid_avatar_dir'] = is_dir($modSettings['avatar_directory']);
    $context['valid_custom_avatar_dir'] = empty($modSettings['custom_avatar_enabled']) || !empty($modSettings['custom_avatar_dir']) && is_dir($modSettings['custom_avatar_dir']) && is_writable($modSettings['custom_avatar_dir']);
    $config_vars = array(array('title', 'avatar_server_stored'), array('warning', empty($testGD) ? 'avatar_gd_warning' : ''), array('permissions', 'profile_server_avatar', 0, $txt['avatar_server_stored_groups']), array('text', 'avatar_directory', 40, 'invalid' => !$context['valid_avatar_dir']), array('text', 'avatar_url', 40), array('title', 'avatar_external'), array('permissions', 'profile_remote_avatar', 0, $txt['avatar_external_url_groups']), array('check', 'avatar_download_external', 0, 'onchange' => 'fUpdateStatus();'), array('text', 'avatar_max_width_external', 6), array('text', 'avatar_max_height_external', 6), array('select', 'avatar_action_too_large', array('option_refuse' => $txt['option_refuse'], 'option_html_resize' => $txt['option_html_resize'], 'option_js_resize' => $txt['option_js_resize'], 'option_download_and_resize' => $txt['option_download_and_resize'])), array('title', 'avatar_upload'), array('permissions', 'profile_upload_avatar', 0, $txt['avatar_upload_groups']), array('text', 'avatar_max_width_upload', 6), array('text', 'avatar_max_height_upload', 6), array('check', 'avatar_resize_upload', 'subtext' => $txt['avatar_resize_upload_note']), array('check', 'avatar_reencode'), '', array('warning', 'avatar_paranoid_warning'), array('check', 'avatar_paranoid'), '', array('check', 'avatar_download_png'), array('select', 'custom_avatar_enabled', array($txt['option_attachment_dir'], $txt['option_specified_dir']), 'onchange' => 'fUpdateStatus();'), array('text', 'custom_avatar_dir', 40, 'subtext' => $txt['custom_avatar_dir_desc'], 'invalid' => !$context['valid_custom_avatar_dir']), array('text', 'custom_avatar_url', 40));
    if ($return_config) {
        return $config_vars;
    }
    // We need these files for the inline permission settings, and the settings template.
    require_once $sourcedir . '/ManagePermissions.php';
    require_once $sourcedir . '/ManageServer.php';
    // Saving avatar settings?
    if (isset($_GET['save'])) {
        checkSession();
        // Just incase the admin forgot to set both custom avatar values, we disable it to prevent errors.
        if (isset($_POST['custom_avatar_enabled']) && $_POST['custom_avatar_enabled'] == 1 && (empty($_POST['custom_avatar_dir']) || empty($_POST['custom_avatar_url']))) {
            $_POST['custom_avatar_enabled'] = 0;
        }
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=manageattachments;sa=avatars');
    }
    // Attempt to figure out if the admin is trying to break things.
    $context['settings_save_onclick'] = 'return document.getElementById(\'custom_avatar_enabled\').value == 1 && (document.getElementById(\'custom_avatar_dir\').value == \'\' || document.getElementById(\'custom_avatar_url\').value == \'\') ? confirm(\'' . $txt['custom_avatar_check_empty'] . '\') : true;';
    // Prepare the context.
    $context['post_url'] = $scripturl . '?action=admin;area=manageattachments;save;sa=avatars';
    prepareDBSettingContext($config_vars);
    // Add a layer for the javascript.
    $context['template_layers'][] = 'avatar_settings';
    $context['sub_template'] = 'show_settings';
}
Exemplo n.º 27
0
function ModifyRegistrationSettings($return_config = false)
{
    global $txt, $context, $scripturl, $modSettings, $sourcedir, $backend_subdir;
    // This is really quite wanting.
    require_once $sourcedir . '/' . $backend_subdir . '/ManageServer.php';
    $config_vars = array(array('select', 'registration_method', array($txt['setting_registration_standard'], $txt['setting_registration_activate'], $txt['setting_registration_approval'], $txt['setting_registration_disabled'])), array('check', 'enableOpenID'), array('check', 'notify_new_registration'), array('check', 'send_welcomeEmail'), '', array('int', 'coppaAge', 'subtext' => $txt['setting_coppaAge_desc'], 'onchange' => 'checkCoppa();'), array('select', 'coppaType', array($txt['setting_coppaType_reject'], $txt['setting_coppaType_approval']), 'onchange' => 'checkCoppa();'), array('large_text', 'coppaPost', 'subtext' => $txt['setting_coppaPost_desc']), array('text', 'coppaFax'), array('text', 'coppaPhone'));
    if ($return_config) {
        return $config_vars;
    }
    // Setup the template
    $context['sub_template'] = 'show_settings';
    $context['page_title'] = $txt['registration_center'];
    if (isset($_GET['save'])) {
        checkSession();
        // Are there some contacts missing?
        if (!empty($_POST['coppaAge']) && !empty($_POST['coppaType']) && empty($_POST['coppaPost']) && empty($_POST['coppaFax'])) {
            fatal_lang_error('admin_setting_coppa_require_contact');
        }
        // Post needs to take into account line breaks.
        $_POST['coppaPost'] = str_replace("\n", '<br />', empty($_POST['coppaPost']) ? '' : $_POST['coppaPost']);
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=regcenter;sa=settings');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=regcenter;save;sa=settings';
    $context['settings_title'] = $txt['settings'];
    // Define some javascript for COPPA.
    $context['settings_post_javascript'] = '
		function checkCoppa()
		{
			var coppaDisabled = document.getElementById(\'coppaAge\').value == 0;
			document.getElementById(\'coppaType\').disabled = coppaDisabled;

			var disableContacts = coppaDisabled || document.getElementById(\'coppaType\').options[document.getElementById(\'coppaType\').selectedIndex].value != 1;
			document.getElementById(\'coppaPost\').disabled = disableContacts;
			document.getElementById(\'coppaFax\').disabled = disableContacts;
			document.getElementById(\'coppaPhone\').disabled = disableContacts;
		}
		checkCoppa();';
    // Turn the postal address into something suitable for a textbox.
    $modSettings['coppaPost'] = !empty($modSettings['coppaPost']) ? preg_replace('~<br ?/?' . '>~', "\n", $modSettings['coppaPost']) : '';
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 28
0
/**
 * Modify any setting related to drafts.
 * Requires the admin_forum permission.
 * Accessed from ?action=admin;area=managedrafts
 *
 * @param bool $return_config = false
 * @uses Admin template, edit_topic_settings sub-template.
 */
function ModifyDraftSettings($return_config = false)
{
    global $context, $txt, $sourcedir, $scripturl;
    isAllowedTo('admin_forum');
    // Here are all the draft settings, a bit lite for now, but we can add more :P
    $config_vars = array(array('check', 'drafts_post_enabled'), array('check', 'drafts_pm_enabled'), array('check', 'drafts_show_saved_enabled', 'subtext' => $txt['drafts_show_saved_enabled_subnote']), array('int', 'drafts_keep_days', 'postinput' => $txt['days_word'], 'subtext' => $txt['drafts_keep_days_subnote']), '', array('check', 'drafts_autosave_enabled', 'subtext' => $txt['drafts_autosave_enabled_subnote']), array('int', 'drafts_autosave_frequency', 'postinput' => $txt['manageposts_seconds'], 'subtext' => $txt['drafts_autosave_frequency_subnote']));
    if ($return_config) {
        return $config_vars;
    }
    // Get the settings template ready.
    require_once $sourcedir . '/ManageServer.php';
    // Setup the template.
    $context['page_title'] = $txt['managedrafts_settings'];
    $context['sub_template'] = 'show_settings';
    // Saving them ?
    if (isset($_GET['save'])) {
        checkSession();
        // Protect them from themselves.
        $_POST['drafts_autosave_frequency'] = $_POST['drafts_autosave_frequency'] < 30 ? 30 : $_POST['drafts_autosave_frequency'];
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=managedrafts');
    }
    // some javascript to enable / disable the frequency input box
    $context['settings_post_javascript'] = '
		var autosave = document.getElementById(\'drafts_autosave_enabled\');
		createEventListener(autosave)
		autosave.addEventListener(\'change\', toggle);
		toggle();

		function toggle()
		{
			var select_elem = document.getElementById(\'drafts_autosave_frequency\');
			select_elem.disabled = !autosave.checked;
		}
	';
    // Final settings...
    $context['post_url'] = $scripturl . '?action=admin;area=managedrafts;save';
    $context['settings_title'] = $txt['managedrafts_settings'];
    // Prepare the settings...
    prepareDBSettingContext($config_vars);
}
Exemplo n.º 29
0
function ModifyTopicSettings($return_config = false)
{
    global $context, $txt, $modSettings, $sourcedir, $scripturl;
    // Here are all the topic settings.
    $config_vars = array(array('check', 'enableStickyTopics'), array('check', 'enableParticipation'), '', array('int', 'oldTopicDays', 'postinput' => $txt['manageposts_days'], 'subtext' => $txt['oldTopicDays_zero']), array('int', 'defaultMaxTopics', 'postinput' => $txt['manageposts_topics']), array('int', 'defaultMaxMessages', 'postinput' => $txt['manageposts_posts']), '', array('int', 'hotTopicPosts', 'postinput' => $txt['manageposts_posts']), array('int', 'hotTopicVeryPosts', 'postinput' => $txt['manageposts_posts']), '', array('int', 'enableAllMessages', 'postinput' => $txt['manageposts_posts'], 'subtext' => $txt['enableAllMessages_zero']), array('check', 'disableCustomPerPage'), array('check', 'enablePreviousNext'), '', array('int', 'doublePostThold', 'postinput' => $txt['doublePostAdmin_main'], 'subtext' => $txt['doublePostAdmin_sub']));
    if ($return_config) {
        return $config_vars;
    }
    // Get the settings template ready.
    require_once $sourcedir . '/ManageServer.php';
    // Setup the template.
    $context['page_title'] = $txt['manageposts_topic_settings'];
    $context['sub_template'] = 'show_settings';
    // Are we saving them - are we??
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=postsettings;sa=topics');
    }
    // Final settings...
    $context['post_url'] = $scripturl . '?action=admin;area=postsettings;save;sa=topics';
    $context['settings_title'] = $txt['manageposts_topic_settings'];
    // Prepare the settings...
    prepareDBSettingContext($config_vars);
}
/**
 * ModifyGoogleMapSettings()
 */
function ModifyGoogleMapSettings()
{
    global $txt, $scripturl, $context, $settings, $sc;
    loadlanguage('GoogleMap');
    $context[$context['admin_menu_name']]['tab_data']['tabs']['googlemap']['description'] = $txt['googleMap_desc'];
    $config_vars = array(array('check', 'googleMap_Enable', 'postinput' => $txt['googleMap_license']), array('title', 'googleMap_MapSettings'), array('select', 'googleMap_ButtonLocation', array('home' => $txt['home'], 'help' => $txt['help'], 'search' => $txt['search'], 'login' => $txt['login'], 'register' => $txt['register'], 'calendar' => $txt['calendar'], 'profile' => $txt['profile'], 'pm' => $txt['pm_short'])), array('float', 'googleMap_DefaultLat', 10, 'postinput' => $txt['googleMap_DefaultLat_info']), array('float', 'googleMap_DefaultLong', 10, 'postinput' => $txt['googleMap_DefaultLong_info']), array('int', 'googleMap_DefaultZoom', 'subtext' => $txt['googleMap_DefaultZoom_Info']), array('select', 'googleMap_Type', array('ROADMAP' => $txt['googleMap_roadmap'], 'SATELLITE' => $txt['googleMap_satellite'], 'HYBRID' => $txt['googleMap_hybrid'])), array('select', 'googleMap_NavType', array('LARGE' => $txt['googleMap_largemapcontrol3d'], 'SMALL' => $txt['googleMap_smallzoomcontrol3d'], 'DEFAULT' => $txt['googleMap_defaultzoomcontrol'])), array('check', 'googleMap_EnableLegend'), array('check', 'googleMap_KMLoutput_enable', 'subtext' => $txt['googleMap_KMLoutput_enable_info']), array('int', 'googleMap_PinNumber', 'subtext' => $txt['googleMap_PinNumber_info']), array('select', 'googleMap_Sidebar', array('none' => $txt['googleMap_nosidebar'], 'right' => $txt['googleMap_rightsidebar'], 'left' => $txt['googleMap_leftsidebar'])), array('check', 'googleMap_BoldMember'), array('title', 'googleMap_MemeberpinSettings'), array('check', 'googleMap_PinGender'), array('text', 'googleMap_PinBackground', 6), array('text', 'googleMap_PinForeground', 6), array('select', 'googleMap_PinStyle', array('googleMap_plainpin' => $txt['googleMap_plainpin'], 'googleMap_textpin' => $txt['googleMap_textpin'], 'googleMap_iconpin' => $txt['googleMap_iconpin'])), array('check', 'googleMap_PinShadow'), array('int', 'googleMap_PinSize', 2), array('text', 'googleMap_PinText', 10, 'postinput' => $txt['googleMap_PinText_info']), array('select', 'googleMap_PinIcon', array('academy' => $txt['academy'], 'activities' => $txt['activities'], 'airport' => $txt['airport'], 'amusement' => $txt['amusement'], 'aquarium' => $txt['aquarium'], 'art-gallery' => $txt['art-gallery'], 'atm' => $txt['atm'], 'baby' => $txt['baby'], 'bank-dollar' => $txt['bank-dollar'], 'bank-euro' => $txt['bank-euro'], 'bank-intl' => $txt['bank-intl'], 'bank-pound' => $txt['bank-pound'], 'bank-yen' => $txt['bank-yen'], 'bar' => $txt['bar'], 'barber' => $txt['barber'], 'beach' => $txt['beach'], 'beer' => $txt['beer'], 'bicycle' => $txt['bicycle'], 'books' => $txt['books'], 'bowling' => $txt['bowling'], 'bus' => $txt['bus'], 'cafe' => $txt['cafe'], 'camping' => $txt['camping'], 'car-dealer' => $txt['car-dealer'], 'car-rental' => $txt['car-rental'], 'car-repair' => $txt['car-repair'], 'casino' => $txt['casino'], 'caution' => $txt['caution'], 'cemetery-grave' => $txt['cemetery-grave'], 'cemetery-tomb' => $txt['cemetery-tomb'], 'cinema' => $txt['cinema'], 'civic-building' => $txt['civic-building'], 'computer' => $txt['computer'], 'corporate' => $txt['corporate'], 'fire' => $txt['fire'], 'flag' => $txt['flag'], 'floral' => $txt['floral'], 'helicopter' => $txt['helicopter'], 'home' => $txt['home1'], 'info' => $txt['info'], 'landslide' => $txt['landslide'], 'legal' => $txt['legal'], 'location' => $txt['location1'], 'locomotive' => $txt['locomotive'], 'medical' => $txt['medical'], 'mobile' => $txt['mobile'], 'motorcycle' => $txt['motorcycle'], 'music' => $txt['music'], 'parking' => $txt['parking'], 'pet' => $txt['pet'], 'petrol' => $txt['petrol'], 'phone' => $txt['phone'], 'picnic' => $txt['picnic'], 'postal' => $txt['postal'], 'repair' => $txt['repair'], 'restaurant' => $txt['restaurant'], 'sail' => $txt['sail'], 'school' => $txt['school'], 'scissors' => $txt['scissors'], 'ship' => $txt['ship'], 'shoppingbag' => $txt['shoppingbag'], 'shoppingcart' => $txt['shoppingcart'], 'ski' => $txt['ski'], 'snack' => $txt['snack'], 'snow' => $txt['snow'], 'sport' => $txt['sport'], 'star' => $txt['star'], 'swim' => $txt['swim'], 'taxi' => $txt['taxi'], 'train' => $txt['train'], 'truck' => $txt['truck'], 'wc-female' => $txt['wc-female'], 'wc-male' => $txt['wc-male'], 'wc' => $txt['wc'], 'wheelchair' => $txt['wheelchair']), 'postinput' => $txt['googleMap_PinIcon_info']), array('title', 'googleMap_ClusterpinSettings'), array('check', 'googleMap_EnableClusterer', 'subtext' => $txt['googleMap_EnableClusterer_info']), array('int', 'googleMap_MinMarkerPerCluster'), array('int', 'googleMap_MinMarkertoCluster'), array('int', 'googleMap_GridSize'), array('check', 'googleMap_ScalableCluster', 'subtext' => $txt['googleMap_ScalableCluster_info']), array('title', 'googleMap_ClusterpinStyle'), array('text', 'googleMap_ClusterBackground', 6), array('text', 'googleMap_ClusterForeground', 6), array('select', 'googleMap_ClusterStyle', array('googleMap_plainpin' => $txt['googleMap_plainpin'], 'googleMap_textpin' => $txt['googleMap_textpin'], 'googleMap_iconpin' => $txt['googleMap_iconpin'], 'googleMap_zonepin' => $txt['googleMap_zonepin'], 'googleMap_peepspin' => $txt['googleMap_peepspin'], 'googleMap_talkpin' => $txt['googleMap_talkpin'])), array('check', 'googleMap_ClusterShadow'), array('int', 'googleMap_ClusterSize', '2'), array('text', 'googleMap_ClusterText', 'postinput' => $txt['googleMap_PinText_info']), array('select', 'googleMap_ClusterIcon', array('academy' => $txt['academy'], 'activities' => $txt['activities'], 'airport' => $txt['airport'], 'amusement' => $txt['amusement'], 'aquarium' => $txt['aquarium'], 'art-gallery' => $txt['art-gallery'], 'atm' => $txt['atm'], 'baby' => $txt['baby'], 'bank-dollar' => $txt['bank-dollar'], 'bank-euro' => $txt['bank-euro'], 'bank-intl' => $txt['bank-intl'], 'bank-pound' => $txt['bank-pound'], 'bank-yen' => $txt['bank-yen'], 'bar' => $txt['bar'], 'barber' => $txt['barber'], 'beach' => $txt['beach'], 'beer' => $txt['beer'], 'bicycle' => $txt['bicycle'], 'books' => $txt['books'], 'bowling' => $txt['bowling'], 'bus' => $txt['bus'], 'cafe' => $txt['cafe'], 'camping' => $txt['camping'], 'car-dealer' => $txt['car-dealer'], 'car-rental' => $txt['car-rental'], 'car-repair' => $txt['car-repair'], 'casino' => $txt['casino'], 'caution' => $txt['caution'], 'cemetery-grave' => $txt['cemetery-grave'], 'cemetery-tomb' => $txt['cemetery-tomb'], 'cinema' => $txt['cinema'], 'civic-building' => $txt['civic-building'], 'computer' => $txt['computer'], 'corporate' => $txt['corporate'], 'fire' => $txt['fire'], 'flag' => $txt['flag'], 'floral' => $txt['floral'], 'helicopter' => $txt['helicopter'], 'home' => $txt['home1'], 'info' => $txt['info'], 'landslide' => $txt['landslide'], 'legal' => $txt['legal'], 'location' => $txt['location1'], 'locomotive' => $txt['locomotive'], 'medical' => $txt['medical'], 'mobile' => $txt['mobile'], 'motorcycle' => $txt['motorcycle'], 'music' => $txt['music'], 'parking' => $txt['parking'], 'pet' => $txt['pet'], 'petrol' => $txt['petrol'], 'phone' => $txt['phone'], 'picnic' => $txt['picnic'], 'postal' => $txt['postal'], 'repair' => $txt['repair'], 'restaurant' => $txt['restaurant'], 'sail' => $txt['sail'], 'school' => $txt['school'], 'scissors' => $txt['scissors'], 'ship' => $txt['ship'], 'shoppingbag' => $txt['shoppingbag'], 'shoppingcart' => $txt['shoppingcart'], 'ski' => $txt['ski'], 'snack' => $txt['snack'], 'snow' => $txt['snow'], 'sport' => $txt['sport'], 'star' => $txt['star'], 'swim' => $txt['swim'], 'taxi' => $txt['taxi'], 'train' => $txt['train'], 'truck' => $txt['truck'], 'wc-female' => $txt['wc-female'], 'wc-male' => $txt['wc-male'], 'wc' => $txt['wc'], 'wheelchair' => $txt['wheelchair']), 'postinput' => $txt['googleMap_PinIcon_info']));
    // Saving?
    if (isset($_GET['save'])) {
        checkSession();
        saveDBSettings($config_vars);
        redirectexit('action=admin;area=modsettings;sa=googlemap');
    }
    $context['post_url'] = $scripturl . '?action=admin;area=modsettings;save;sa=googlemap';
    $context['settings_title'] = $txt['googleMap'];
    $context['settings_insert_below'] = '
	<script type="text/javascript" src="' . $settings['default_theme_url'] . '/scripts/jscolor/jscolor.js"></script>
	<script type="text/javascript">
		var myPicker1 = new jscolor.color(document.getElementById(\'googleMap_PinBackground\'), {});
		myPicker1.fromString(document.getElementById(\'googleMap_PinBackground\').value);

		var myPicker2 = new jscolor.color(document.getElementById(\'googleMap_PinForeground\'), {});
		myPicker2.fromString(document.getElementById(\'googleMap_PinForeground\').value);

		var myPicker3 = new jscolor.color(document.getElementById(\'googleMap_ClusterBackground\'), {});
		myPicker3.fromString(document.getElementById(\'googleMap_ClusterBackground\').value);

		var myPicker4 = new jscolor.color(document.getElementById(\'googleMap_ClusterForeground\'), {});
		myPicker4.fromString(document.getElementById(\'googleMap_ClusterForeground\').value);
	</script>';
    prepareDBSettingContext($config_vars);
}