Vergleich admin/modules/config/settings.php - 1.8.7 - 1.8.17

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 882Zeile 882
			admin_redirect("index.php?module=config-settings");
}


			admin_redirect("index.php?module=config-settings");
}


		// If we are changing the hidden captcha, make sure it doesn't conflict with another registration field
if(isset($mybb->input['upsetting']['hiddencaptchaimagefield']))
{
// Not allowed to be hidden captcha fields
$disallowed_fields = array(
'username',
'password',
'password2',
'email',
'email2',
'imagestring',
'imagehash',
'answer',
'question_id',
'allownotices',
'hideemail',
'receivepms',
'pmnotice',
'emailpmnotify',
'invisible',
'subscriptionmethod',
'timezoneoffset',
'dstcorrection',
'language',
'step',
'action',
'agree',
'regtime',
'regcheck1',
'regcheck2',
'regsubmit'
);

if(in_array($mybb->input['upsetting']['hiddencaptchaimagefield'], $disallowed_fields))






		// Not allowed to be hidden captcha fields
$disallowed_fields = array(
'username',
'password',
'password2',
'email',
'email2',
'imagestring',
'imagehash',
'answer',
'question_id',
'allownotices',
'hideemail',
'receivepms',
'pmnotice',
'emailpmnotify',
'invisible',
'subscriptionmethod',
'timezoneoffset',
'dstcorrection',
'language',
'step',
'action',
'agree',
'regtime',
'regcheck1',
'regcheck2',
'regsubmit'
);

$is_current_hiddencaptcha_wrong = in_array($mybb->settings['hiddencaptchaimagefield'], $disallowed_fields);
if(in_array($mybb->input['upsetting']['hiddencaptchaimagefield'], $disallowed_fields) || $is_current_hiddencaptcha_wrong)
{
if(isset($mybb->input['upsetting']['hiddencaptchaimagefield']) && $mybb->input['upsetting']['hiddencaptchaimagefield'] != $mybb->settings['hiddencaptchaimagefield'] && !$is_current_hiddencaptcha_wrong)
{
$wrong_value = $mybb->input['upsetting']['hiddencaptchaimagefield'];
$mybb->input['upsetting']['hiddencaptchaimagefield'] = $mybb->settings['hiddencaptchaimagefield'];
}
else

			{

			{

				// Whoopsies, you can't do that!
$error_message = $lang->sprintf($lang->error_hidden_captcha_conflict, htmlspecialchars_uni($mybb->input['upsetting']['hiddencaptchaimagefield']));

flash_message($error_message, 'error');
admin_redirect("index.php?module=config-settings&action=change&gid=9");

				$wrong_value = $mybb->settings['hiddencaptchaimagefield'];
$mybb->input['upsetting']['hiddencaptchaimagefield'] = 'email3';




			}

			}

 

$lang->success_settings_updated .= $lang->sprintf($lang->success_settings_updated_hiddencaptchaimage, htmlspecialchars_uni($mybb->input['upsetting']['hiddencaptchaimagefield']), htmlspecialchars_uni($wrong_value));
}

// Have we opted for a reCAPTCHA and not set a public/private key?
if((isset($mybb->input['upsetting']['captchaimage']) && in_array($mybb->input['upsetting']['captchaimage'], array(4, 5)) && (!$mybb->input['upsetting']['captchaprivatekey'] || !$mybb->input['upsetting']['captchapublickey']))
|| (in_array($mybb->settings['captchaimage'], array(4, 5)) && (!$mybb->settings['captchaprivatekey'] || !$mybb->settings['captchapublickey'])))
{
$mybb->input['upsetting']['captchaimage'] = 1;
$lang->success_settings_updated .= $lang->success_settings_updated_captchaimage;

		}

// Get settings which optionscode is a forum/group select, checkbox or numeric
// We cannot rely on user input to decide this
$checkbox_settings = $forum_group_select = array();

		}

// Get settings which optionscode is a forum/group select, checkbox or numeric
// We cannot rely on user input to decide this
$checkbox_settings = $forum_group_select = array();

		$query = $db->simple_select('settings', 'name, optionscode', "optionscode IN('forumselect', 'groupselect', 'numeric') OR optionscode LIKE 'checkbox%'");


		$query = $db->simple_select('settings', 'name, optionscode', "optionscode IN('forumselect', 'groupselect') OR optionscode LIKE 'checkbox%' OR optionscode LIKE 'numeric%'");


		while($multisetting = $db->fetch_array($query))
{

		while($multisetting = $db->fetch_array($query))
{

 
			$options = array();


			if(substr($multisetting['optionscode'], 0, 8) == 'checkbox')
{
$checkbox_settings[] = $multisetting['name'];

			if(substr($multisetting['optionscode'], 0, 8) == 'checkbox')
{
$checkbox_settings[] = $multisetting['name'];

				



				// All checkboxes deselected = no $mybb->input['upsetting'] for them, we need to initialize it manually then, but only on pages where the setting is shown
if(empty($mybb->input['upsetting'][$multisetting['name']]) && isset($mybb->input["isvisible_{$multisetting['name']}"]))
{
$mybb->input['upsetting'][$multisetting['name']] = array();
}
}

				// All checkboxes deselected = no $mybb->input['upsetting'] for them, we need to initialize it manually then, but only on pages where the setting is shown
if(empty($mybb->input['upsetting'][$multisetting['name']]) && isset($mybb->input["isvisible_{$multisetting['name']}"]))
{
$mybb->input['upsetting'][$multisetting['name']] = array();
}
}

			elseif($multisetting['optionscode'] == 'numeric')

			elseif(substr($multisetting['optionscode'], 0, 7) == 'numeric')

			{
if(isset($mybb->input['upsetting'][$multisetting['name']]))

			{
if(isset($mybb->input['upsetting'][$multisetting['name']]))

				{
$mybb->input['upsetting'][$multisetting['name']] = (int)$mybb->input['upsetting'][$multisetting['name']];




























				{
$type = explode("\n", $multisetting['optionscode']);
for($i=1; $i < count($type); $i++)
{
$optionsexp = explode("=", $type[$i]);
$opt = array_map('trim', $optionsexp);
if(in_array($opt[0], array('min', 'max', 'step')))
{
if($opt[0] != 'step' || $opt[1] != 'any')
{
$opt[1] = (float)$opt[1];
}
$options[$opt[0]] = $opt[1];
}
}

$value = (float)$mybb->input['upsetting'][$multisetting['name']];

if(isset($options['min']))
{
$value = max($value, $options['min']);
}

if(isset($options['max']))
{
$value = min($value, $options['max']);
}

$mybb->input['upsetting'][$multisetting['name']] = $value;

				}

				}

			}
















			}
else
{
$forum_group_select[] = $multisetting['name'];
}
}

// Administrator is changing the login method.
if($mybb->settings['username_method'] == 1 || $mybb->settings['username_method'] == 2 || $mybb->input['upsetting']['username_method'] == 1 || $mybb->input['upsetting']['username_method'] == 2)
{
$query = $db->simple_select('users', 'email', "email != ''", array('group_by' => 'email HAVING COUNT(email)>1'));
if($db->num_rows($query))
{
$mybb->input['upsetting']['username_method'] = 0;
$lang->success_settings_updated .= $lang->success_settings_updated_username_method;
}

			else
{

			else
{

				$forum_group_select[] = $multisetting['name'];


				$mybb->input['upsetting']['allowmultipleemails'] = 0;
$lang->success_settings_updated .= $lang->success_settings_updated_allowmultipleemails;

			}
}

			}
}





		if(is_array($mybb->input['upsetting']))
{
foreach($mybb->input['upsetting'] as $name => $value)

		if(is_array($mybb->input['upsetting']))
{
foreach($mybb->input['upsetting'] as $name => $value)

Zeile 962Zeile 1019
				if($forum_group_select && in_array($name, $forum_group_select))
{
if($value == 'all')

				if($forum_group_select && in_array($name, $forum_group_select))
{
if($value == 'all')

					{

					{

						$value = -1;
}
elseif($value == 'custom')

						$value = -1;
}
elseif($value == 'custom')

Zeile 985Zeile 1042
					else
{
$value = '';

					else
{
$value = '';

					}

					}

				}
elseif($checkbox_settings && in_array($name, $checkbox_settings))
{
$value = '';

				}
elseif($checkbox_settings && in_array($name, $checkbox_settings))
{
$value = '';

					



					if(is_array($mybb->input['upsetting'][$name]))
{
$value = implode(',', $mybb->input['upsetting'][$name]);
}
}

					if(is_array($mybb->input['upsetting'][$name]))
{
$value = implode(',', $mybb->input['upsetting'][$name]);
}
}

				



				$db->update_query("settings", array('value' => $db->escape_string($value)), "name='".$db->escape_string($name)."'");
}
}

// Check if we need to create our fulltext index after changing the search mode
if($mybb->settings['searchtype'] != $mybb->input['upsetting']['searchtype'] && $mybb->input['upsetting']['searchtype'] == "fulltext")

				$db->update_query("settings", array('value' => $db->escape_string($value)), "name='".$db->escape_string($name)."'");
}
}

// Check if we need to create our fulltext index after changing the search mode
if($mybb->settings['searchtype'] != $mybb->input['upsetting']['searchtype'] && $mybb->input['upsetting']['searchtype'] == "fulltext")

		{

		{

			if(!$db->is_fulltext("posts") && $db->supports_fulltext_boolean("posts"))

			if(!$db->is_fulltext("posts") && $db->supports_fulltext_boolean("posts"))

			{

			{

				$db->create_fulltext_index("posts", "message");
}
if(!$db->is_fulltext("posts") && $db->supports_fulltext("threads"))

				$db->create_fulltext_index("posts", "message");
}
if(!$db->is_fulltext("posts") && $db->supports_fulltext("threads"))

			{

			{

				$db->create_fulltext_index("threads", "subject");
}
}

// If the delayedthreadviews setting was changed, enable or disable the tasks for it.
if(isset($mybb->input['upsetting']['delayedthreadviews']) && $mybb->settings['delayedthreadviews'] != $mybb->input['upsetting']['delayedthreadviews'])

				$db->create_fulltext_index("threads", "subject");
}
}

// If the delayedthreadviews setting was changed, enable or disable the tasks for it.
if(isset($mybb->input['upsetting']['delayedthreadviews']) && $mybb->settings['delayedthreadviews'] != $mybb->input['upsetting']['delayedthreadviews'])

		{
if($mybb->input['upsetting']['delayedthreadviews'] == 0)
{
$updated_task = array(
"enabled" => 0
);
}
else
{
$updated_task = array(
"enabled" => 1
);
}
$db->update_query("tasks", $updated_task, "file='threadviews'");

		{
$db->update_query("tasks", array('enabled' => (int)$mybb->input['upsetting']['delayedthreadviews']), "file='threadviews'");













		}

// Have we changed our cookie prefix? If so, update our adminsid so we're not logged out

		}

// Have we changed our cookie prefix? If so, update our adminsid so we're not logged out

		if($mybb->input['upsetting']['cookieprefix'] && $mybb->input['upsetting']['cookieprefix'] != $mybb->settings['cookieprefix'])

		if(isset($mybb->input['upsetting']['cookieprefix']) && $mybb->input['upsetting']['cookieprefix'] != $mybb->settings['cookieprefix'])

		{
my_unsetcookie("adminsid");
$mybb->settings['cookieprefix'] = $mybb->input['upsetting']['cookieprefix'];

		{
my_unsetcookie("adminsid");
$mybb->settings['cookieprefix'] = $mybb->input['upsetting']['cookieprefix'];

			my_setcookie("adminsid", $admin_session['sid'], '', true);

			my_setcookie("adminsid", $admin_session['sid'], '', true, "lax");

		}


		}


		// Have we opted for a reCAPTCHA and not set a public/private key?
if($mybb->input['upsetting']['captchaimage'] == 2 && !$mybb->input['upsetting']['captchaprivatekey'] && !$mybb->input['upsetting']['captchapublickey'])

		if(isset($mybb->input['upsetting']['statstopreferrer']) && $mybb->input['upsetting']['statstopreferrer'] != $mybb->settings['statstopreferrer'])


		{

		{

			$db->update_query("settings", array("value" => 1), "name = 'captchaimage'");

			$cache->update_statistics();

		}


		}


		rebuild_settings();

$plugins->run_hooks("admin_config_settings_change_commit");

		$statslimit = $mybb->settings['statslimit'];







		// If we have changed our report reasons recache them
if(isset($mybb->input['upsetting']['reportreasons']))


		rebuild_settings();

if(isset($mybb->input['upsetting']['statslimit']) && $mybb->input['upsetting']['statslimit'] != $statslimit)

		{

		{

			$cache->update_reportedposts();


			$cache->update_most_replied_threads();
$cache->update_most_viewed_threads();

		}

		}

 

$plugins->run_hooks("admin_config_settings_change_commit");


// Log admin action
log_admin_action();


// Log admin action
log_admin_action();

Zeile 1124Zeile 1170
		$query = $db->simple_select("settinggroups", "*", "gid = '".$mybb->get_input('gid', MyBB::INPUT_INT)."'");
$groupinfo = $db->fetch_array($query);
$cache_groups[$groupinfo['gid']] = $groupinfo;

		$query = $db->simple_select("settinggroups", "*", "gid = '".$mybb->get_input('gid', MyBB::INPUT_INT)."'");
$groupinfo = $db->fetch_array($query);
$cache_groups[$groupinfo['gid']] = $groupinfo;


if(!$db->num_rows($query))
{


if(!$db->num_rows($query))
{

			$page->output_error($lang->error_invalid_gid2);
}


			$page->output_error($lang->error_invalid_gid2);
}


Zeile 1222Zeile 1268
			}
else if($type[0] == "numeric")
{

			}
else if($type[0] == "numeric")
{

				$setting_code = $form->generate_numeric_field($element_name, $setting['value'], array('id' => $element_id));


















				$field_options = array('id' => $element_id);
if(count($type) > 1)
{
for($i=1; $i < count($type); $i++)
{
$optionsexp = explode("=", $type[$i]);
$opt = array_map('trim', $optionsexp);
if(in_array($opt[0], array('min', 'max', 'step')))
{
if($opt[0] != 'step' || $opt[1] != 'any')
{
$opt[1] = (float)$opt[1];
}
$field_options[$opt[0]] = $opt[1];
}
}
}
$setting_code = $form->generate_numeric_field($element_name, $setting['value'], $field_options);

			}
else if($type[0] == "textarea")
{

			}
else if($type[0] == "textarea")
{

Zeile 1233Zeile 1296
				$setting_code = $form->generate_yes_no_radio($element_name, $setting['value'], true, array('id' => $element_id.'_yes', 'class' => $element_id), array('id' => $element_id.'_no', 'class' => $element_id));
}
else if($type[0] == "onoff")

				$setting_code = $form->generate_yes_no_radio($element_name, $setting['value'], true, array('id' => $element_id.'_yes', 'class' => $element_id), array('id' => $element_id.'_no', 'class' => $element_id));
}
else if($type[0] == "onoff")

			{

			{

				$setting_code = $form->generate_on_off_radio($element_name, $setting['value'], true, array('id' => $element_id.'_on', 'class' => $element_id), array('id' => $element_id.'_off', 'class' => $element_id));
}
else if($type[0] == "cpstyle")

				$setting_code = $form->generate_on_off_radio($element_name, $setting['value'], true, array('id' => $element_id.'_on', 'class' => $element_id), array('id' => $element_id.'_off', 'class' => $element_id));
}
else if($type[0] == "cpstyle")

Zeile 1251Zeile 1314
				closedir($dir);
ksort($folders);
$setting_code = $form->generate_select_box($element_name, $folders, $setting['value'], array('id' => $element_id));

				closedir($dir);
ksort($folders);
$setting_code = $form->generate_select_box($element_name, $folders, $setting['value'], array('id' => $element_id));

			}

			}

			else if($type[0] == "language")
{
$languages = $lang->get_languages();

			else if($type[0] == "language")
{
$languages = $lang->get_languages();

Zeile 1380Zeile 1443
			else
{
$typecount = count($type);

			else
{
$typecount = count($type);

				



				if($type[0] == 'checkbox')
{
$multivalue = explode(',', $setting['value']);
}

				if($type[0] == 'checkbox')
{
$multivalue = explode(',', $setting['value']);
}

				



				for($i = 0; $i < $typecount; $i++)
{
$optionsexp = explode("=", $type[$i]);

				for($i = 0; $i < $typecount; $i++)
{
$optionsexp = explode("=", $type[$i]);

Zeile 1408Zeile 1471
						if($setting['value'] == $optionsexp[0])
{
$option_list[$i] = $form->generate_radio_button($element_name, $optionsexp[0], htmlspecialchars_uni($optionsexp[1]), array('id' => $element_id.'_'.$i, "checked" => 1, 'class' => $element_id));

						if($setting['value'] == $optionsexp[0])
{
$option_list[$i] = $form->generate_radio_button($element_name, $optionsexp[0], htmlspecialchars_uni($optionsexp[1]), array('id' => $element_id.'_'.$i, "checked" => 1, 'class' => $element_id));

						}
else
{

						}
else
{

							$option_list[$i] = $form->generate_radio_button($element_name, $optionsexp[0], htmlspecialchars_uni($optionsexp[1]), array('id' => $element_id.'_'.$i, 'class' => $element_id));
}
}

							$option_list[$i] = $form->generate_radio_button($element_name, $optionsexp[0], htmlspecialchars_uni($optionsexp[1]), array('id' => $element_id.'_'.$i, 'class' => $element_id));
}
}

Zeile 1424Zeile 1487
						{
$option_list[$i] = $form->generate_check_box("{$element_name}[]", $optionsexp[0], htmlspecialchars_uni($optionsexp[1]), array('id' => $element_id.'_'.$i, 'class' => $element_id));
}

						{
$option_list[$i] = $form->generate_check_box("{$element_name}[]", $optionsexp[0], htmlspecialchars_uni($optionsexp[1]), array('id' => $element_id.'_'.$i, 'class' => $element_id));
}

					}
}


					}
}


				if($type[0] == "select")
{
$setting_code = $form->generate_select_box($element_name, $option_list, $setting['value'], array('id' => $element_id));

				if($type[0] == "select")
{
$setting_code = $form->generate_select_box($element_name, $option_list, $setting['value'], array('id' => $element_id));

Zeile 1434Zeile 1497
				else
{
$setting_code = implode("<br />", $option_list);

				else
{
$setting_code = implode("<br />", $option_list);

					



					if($type[0] == 'checkbox')
{
$setting_code .= $form->generate_hidden_field("isvisible_{$setting['name']}", 1);

					if($type[0] == 'checkbox')
{
$setting_code .= $form->generate_hidden_field("isvisible_{$setting['name']}", 1);

Zeile 1442Zeile 1505
				}
$option_list = array();
}

				}
$option_list = array();
}

			



			// Do we have a custom language variable for this title or description?
$title_lang = "setting_".$setting['name'];
$desc_lang = $title_lang."_desc";

			// Do we have a custom language variable for this title or description?
$title_lang = "setting_".$setting['name'];
$desc_lang = $title_lang."_desc";

Zeile 1639Zeile 1702
	echo '</div>';

echo '

	echo '</div>';

echo '

<script type="text/javascript" src="./jscripts/search.js"></script>

<script type="text/javascript" src="./jscripts/search.js?ver=1808"></script>

<script type="text/javascript">
//<!--
$(document).ready(function(){

<script type="text/javascript">
//<!--
$(document).ready(function(){

Zeile 1677Zeile 1740
		'new Peeker($(".setting_smilieinserter"), $("#row_setting_smilieinsertertot, #row_setting_smilieinsertercols"), 1, true)',
'new Peeker($("#setting_mail_handler"), $("#row_setting_smtp_host, #row_setting_smtp_port, #row_setting_smtp_user, #row_setting_smtp_pass, #row_setting_secure_smtp"), "smtp", false)',
'new Peeker($("#setting_mail_handler"), $("#row_setting_mail_parameters"), "mail", false)',

		'new Peeker($(".setting_smilieinserter"), $("#row_setting_smilieinsertertot, #row_setting_smilieinsertercols"), 1, true)',
'new Peeker($("#setting_mail_handler"), $("#row_setting_smtp_host, #row_setting_smtp_port, #row_setting_smtp_user, #row_setting_smtp_pass, #row_setting_secure_smtp"), "smtp", false)',
'new Peeker($("#setting_mail_handler"), $("#row_setting_mail_parameters"), "mail", false)',

		'new Peeker($("#setting_captchaimage"), $("#row_setting_captchapublickey, #row_setting_captchaprivatekey"), /(2|4)/, false)',

		'new Peeker($("#setting_captchaimage"), $("#row_setting_captchapublickey, #row_setting_captchaprivatekey"), /(4|5)/, false)',

		'new Peeker($(".setting_contact"), $("#row_setting_contact_guests, #row_setting_contact_badwords, #row_setting_contact_maxsubjectlength, #row_setting_contact_minmessagelength, #row_setting_contact_maxmessagelength"), 1, true)',
'new Peeker($(".setting_enablepruning"), $("#row_setting_enableprunebyposts, #row_setting_pruneunactived, #row_setting_prunethreads"), 1, true)',
'new Peeker($(".setting_enableprunebyposts"), $("#row_setting_prunepostcount, #row_setting_dayspruneregistered, #row_setting_prunepostcountall"), 1, true)',

		'new Peeker($(".setting_contact"), $("#row_setting_contact_guests, #row_setting_contact_badwords, #row_setting_contact_maxsubjectlength, #row_setting_contact_minmessagelength, #row_setting_contact_maxmessagelength"), 1, true)',
'new Peeker($(".setting_enablepruning"), $("#row_setting_enableprunebyposts, #row_setting_pruneunactived, #row_setting_prunethreads"), 1, true)',
'new Peeker($(".setting_enableprunebyposts"), $("#row_setting_prunepostcount, #row_setting_dayspruneregistered, #row_setting_prunepostcountall"), 1, true)',

Zeile 1698Zeile 1761
		'new Peeker($("#setting_errorlogmedium"), $("#row_setting_errortypemedium"), /^(log|email|both)/, false)',
'new Peeker($("#setting_errorlogmedium"), $("#row_setting_errorloglocation"), /^(log|both)/, false)',
'new Peeker($(".setting_sigmycode"), $("#row_setting_sigcountmycode, #row_setting_sigimgcode"), 1, true)',

		'new Peeker($("#setting_errorlogmedium"), $("#row_setting_errortypemedium"), /^(log|email|both)/, false)',
'new Peeker($("#setting_errorlogmedium"), $("#row_setting_errorloglocation"), /^(log|both)/, false)',
'new Peeker($(".setting_sigmycode"), $("#row_setting_sigcountmycode, #row_setting_sigimgcode"), 1, true)',

		'new Peeker($(".setting_pmsallowmycode"), $("#row_setting_pmsallowimgcode, #row_setting_pmsallowvideocode"), 1, true)'


		'new Peeker($(".setting_pmsallowmycode"), $("#row_setting_pmsallowimgcode, #row_setting_pmsallowvideocode"), 1, true)',
'new Peeker($(".setting_enableshowteam"), $("#row_setting_showaddlgroups, #row_setting_showgroupleaders"), 1, true)'

	);

$peekers = $plugins->run_hooks("admin_settings_print_peekers", $peekers);

	);

$peekers = $plugins->run_hooks("admin_settings_print_peekers", $peekers);