Vergleich admin/modules/config/settings.php - 1.8.23 - 1.8.38

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 98Zeile 98
	}

$form_container = new FormContainer($lang->add_new_setting_group);

	}

$form_container = new FormContainer($lang->add_new_setting_group);

	$form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title');
$form_container->output_row($lang->description, "", $form->generate_text_area('description', $mybb->input['description'], array('id' => 'description')), 'description');
$form_container->output_row($lang->display_order, "", $form->generate_numeric_field('disporder', $mybb->input['disporder'], array('id' => 'disporder', 'min' => 0)), 'disporder');
$form_container->output_row($lang->name." <em>*</em>", $lang->group_name_desc, $form->generate_text_box('name', $mybb->input['name'], array('id' => 'name')), 'name');

	$form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->get_input('title'), array('id' => 'title')), 'title');
$form_container->output_row($lang->description, "", $form->generate_text_area('description', $mybb->get_input('description'), array('id' => 'description')), 'description');
$form_container->output_row($lang->display_order, "", $form->generate_numeric_field('disporder', $mybb->get_input('disporder'), array('id' => 'disporder', 'min' => 0)), 'disporder');
$form_container->output_row($lang->name." <em>*</em>", $lang->group_name_desc, $form->generate_text_box('name', $mybb->get_input('name'), array('id' => 'name')), 'name');

	$form_container->end();

$buttons[] = $form->generate_submit_button($lang->insert_new_setting_group);

	$form_container->end();

$buttons[] = $form->generate_submit_button($lang->insert_new_setting_group);

Zeile 118Zeile 118
	$group = $db->fetch_array($query);

// Does the setting not exist?

	$group = $db->fetch_array($query);

// Does the setting not exist?

	if(!$group['gid'])

	if(!$group)

	{
flash_message($lang->error_invalid_gid2, 'error');
admin_redirect("index.php?module=config-settings&action=manage");

	{
flash_message($lang->error_invalid_gid2, 'error');
admin_redirect("index.php?module=config-settings&action=manage");

Zeile 220Zeile 220
	$group = $db->fetch_array($query);

// Does the setting group not exist?

	$group = $db->fetch_array($query);

// Does the setting group not exist?

	if(!$group['gid'])

	if(!$group)

	{
flash_message($lang->error_invalid_gid2, 'error');
admin_redirect("index.php?module=config-settings&action=manage");

	{
flash_message($lang->error_invalid_gid2, 'error');
admin_redirect("index.php?module=config-settings&action=manage");

Zeile 233Zeile 233
	}

// User clicked no

	}

// User clicked no

	if($mybb->input['no'])

	if($mybb->get_input('no'))

	{
admin_redirect("index.php?module=config-settings&action=manage");
}

	{
admin_redirect("index.php?module=config-settings&action=manage");
}

Zeile 293Zeile 293
		}

// do some type filtering

		}

// do some type filtering

		$mybb->input['type'] = str_replace("\n", "", $mybb->input['type']);
if(strtolower(substr($mybb->input['type'], 0, 3)) == "php")

		$mybb->input['type'] = $mybb->get_input('type');
if(!ctype_alnum($mybb->input['type']) || strtolower($mybb->input['type']) == "php")

		{
$mybb->input['type'] = "";
}

		{
$mybb->input['type'] = "";
}

Zeile 306Zeile 306

if(!$errors)
{


if(!$errors)
{

			if($mybb->input['type'] == "custom")
{
$options_code = $mybb->input['extra'];
}
else if($mybb->input['extra'])

			if($mybb->input['extra'])





			{
$options_code = "{$mybb->input['type']}\n{$mybb->input['extra']}";

			{
$options_code = "{$mybb->input['type']}\n{$mybb->input['extra']}";

			}
else

			}
else

			{
$options_code = $mybb->input['type'];
}

			{
$options_code = $mybb->input['type'];
}

Zeile 324Zeile 320
			$mybb->input['name'] = str_replace("'", '', $mybb->input['name']);

if($options_code == "numeric")

			$mybb->input['name'] = str_replace("'", '', $mybb->input['name']);

if($options_code == "numeric")

			{

			{

				$value = $mybb->get_input('value', MyBB::INPUT_INT);

				$value = $mybb->get_input('value', MyBB::INPUT_INT);

			}

			}

			else
{
$value = $db->escape_string($mybb->input['value']);
}

			else
{
$value = $db->escape_string($mybb->input['value']);
}





			$new_setting = array(
"name" => $db->escape_string($mybb->input['name']),
"title" => $db->escape_string($mybb->input['title']),

			$new_setting = array(
"name" => $db->escape_string($mybb->input['name']),
"title" => $db->escape_string($mybb->input['title']),

Zeile 386Zeile 382
	if($errors)
{
$page->output_inline_error($errors);

	if($errors)
{
$page->output_inline_error($errors);

	}

$form_container = new FormContainer($lang->add_new_setting);
$form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title');
$form_container->output_row($lang->description, "", $form->generate_text_area('description', $mybb->input['description'], array('id' => 'description')), 'description');

	}

$form_container = new FormContainer($lang->add_new_setting);
$form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->get_input('title'), array('id' => 'title')), 'title');
$form_container->output_row($lang->description, "", $form->generate_text_area('description', $mybb->get_input('description'), array('id' => 'description')), 'description');


$query = $db->simple_select("settinggroups", "*", "", array('order_by' => 'disporder'));
while($group = $db->fetch_array($query))
{
$group_lang_var = "setting_group_{$group['name']}";


$query = $db->simple_select("settinggroups", "*", "", array('order_by' => 'disporder'));
while($group = $db->fetch_array($query))
{
$group_lang_var = "setting_group_{$group['name']}";

		if($lang->$group_lang_var)

		if(!empty($lang->$group_lang_var))

		{
$options[$group['gid']] = htmlspecialchars_uni($lang->$group_lang_var);
}

		{
$options[$group['gid']] = htmlspecialchars_uni($lang->$group_lang_var);
}

Zeile 405Zeile 401
			$options[$group['gid']] = htmlspecialchars_uni($group['title']);
}
}

			$options[$group['gid']] = htmlspecialchars_uni($group['title']);
}
}

	$form_container->output_row($lang->group." <em>*</em>", "", $form->generate_select_box("gid", $options, $mybb->input['gid'], array('id' => 'gid')), 'gid');
$form_container->output_row($lang->display_order, "", $form->generate_numeric_field('disporder', $mybb->input['disporder'], array('id' => 'disporder', 'min' => 0)), 'disporder');

	$form_container->output_row($lang->group." <em>*</em>", "", $form->generate_select_box("gid", $options, $mybb->get_input('gid'), array('id' => 'gid')), 'gid');
$form_container->output_row($lang->display_order, "", $form->generate_numeric_field('disporder', $mybb->get_input('disporder'), array('id' => 'disporder', 'min' => 0)), 'disporder');





	$form_container->output_row($lang->name." <em>*</em>", $lang->name_desc, $form->generate_text_box('name', $mybb->input['name'], array('id' => 'name')), 'name');

	$form_container->output_row($lang->name." <em>*</em>", $lang->name_desc, $form->generate_text_box('name', $mybb->get_input('name'), array('id' => 'name')), 'name');


$setting_types = array(
"text" => $lang->text,


$setting_types = array(
"text" => $lang->text,

Zeile 430Zeile 426
		//"php" => $lang->php // Internal Use Only
);


		//"php" => $lang->php // Internal Use Only
);


	$form_container->output_row($lang->type." <em>*</em>", "", $form->generate_select_box("type", $setting_types, $mybb->input['type'], array('id' => 'type')), 'type');
$form_container->output_row($lang->extra, $lang->extra_desc, $form->generate_text_area('extra', $mybb->input['extra'], array('id' => 'extra')), 'extra', array(), array('id' => 'row_extra'));
$form_container->output_row($lang->value, "", $form->generate_text_area('value', $mybb->input['value'], array('id' => 'value')), 'value');

	$form_container->output_row($lang->type." <em>*</em>", "", $form->generate_select_box("type", $setting_types, $mybb->get_input('type'), array('id' => 'type')), 'type');
$form_container->output_row($lang->extra, $lang->extra_desc, $form->generate_text_area('extra', $mybb->get_input('extra'), array('id' => 'extra')), 'extra', array(), array('id' => 'row_extra'));
$form_container->output_row($lang->value, "", $form->generate_text_area('value', $mybb->get_input('value'), array('id' => 'value')), 'value');

	$form_container->end();

$buttons[] = $form->generate_submit_button($lang->insert_new_setting);

	$form_container->end();

$buttons[] = $form->generate_submit_button($lang->insert_new_setting);

Zeile 458Zeile 454
	$setting = $db->fetch_array($query);

// Does the setting not exist?

	$setting = $db->fetch_array($query);

// Does the setting not exist?

	if(!$setting['sid'])

	if(!$setting)

	{
flash_message($lang->error_invalid_sid, 'error');
admin_redirect("index.php?module=config-settings");

	{
flash_message($lang->error_invalid_sid, 'error');
admin_redirect("index.php?module=config-settings");

Zeile 477Zeile 473
	$type = trim($type[0]);
if($type == "php")
{

	$type = trim($type[0]);
if($type == "php")
{

		flash_message($lang->error_cannot_edit_php, 'error');
admin_redirect("index.php?module=config-settings&action=manage");
}

if($mybb->request_method == "post")
{

		flash_message($lang->error_cannot_edit_php, 'error');
admin_redirect("index.php?module=config-settings&action=manage");
}

if($mybb->request_method == "post")
{

		if(!trim($mybb->input['title']))

		if(!trim($mybb->input['title']))

		{

		{

			$errors[] = $lang->error_missing_title;

			$errors[] = $lang->error_missing_title;

		}

		}


if(!trim($mybb->input['name']))
{


if(!trim($mybb->input['name']))
{

Zeile 497Zeile 493
		{
$dup_setting_title = $db->fetch_field($query, 'title');
$errors[] = $lang->sprintf($lang->error_duplicate_name, $dup_setting_title);

		{
$dup_setting_title = $db->fetch_field($query, 'title');
$errors[] = $lang->sprintf($lang->error_duplicate_name, $dup_setting_title);

		}


		}


		// do some type filtering

		// do some type filtering

		$mybb->input['type'] = str_replace("\n", "", $mybb->input['type']);
if(strtolower(substr($mybb->input['type'], 0, 3)) == "php")
{

		$mybb->input['type'] = $mybb->get_input('type');
if(!ctype_alnum($mybb->input['type']) || strtolower($mybb->input['type']) == "php")
{

			$mybb->input['type'] = "";

			$mybb->input['type'] = "";

		}


		}


		if(!$mybb->input['type'])

		if(!$mybb->input['type'])

		{

		{

			$errors[] = $lang->error_invalid_type;
}

if(!$errors)

			$errors[] = $lang->error_invalid_type;
}

if(!$errors)

		{
if($mybb->input['type'] == "custom")
{
$options_code = $mybb->input['extra'];
}
else if($mybb->input['extra'])

		{
if($mybb->input['extra'])





			{
$options_code = "{$mybb->input['type']}\n{$mybb->input['extra']}";
}

			{
$options_code = "{$mybb->input['type']}\n{$mybb->input['extra']}";
}

Zeile 559Zeile 551

flash_message($lang->success_setting_updated, 'success');
admin_redirect("index.php?module=config-settings&action=manage");


flash_message($lang->success_setting_updated, 'success');
admin_redirect("index.php?module=config-settings&action=manage");

		}

		}

	}

	}





	$page->add_breadcrumb_item($lang->edit_setting);
$page->output_header($lang->board_settings." - ".$lang->edit_setting);


	$page->add_breadcrumb_item($lang->edit_setting);
$page->output_header($lang->board_settings." - ".$lang->edit_setting);


Zeile 573Zeile 565
	$sub_tabs['add_setting'] = array(
'title' => $lang->add_new_setting,
'link' => "index.php?module=config-settings&amp;action=add"

	$sub_tabs['add_setting'] = array(
'title' => $lang->add_new_setting,
'link' => "index.php?module=config-settings&amp;action=add"

	);

	);


$sub_tabs['add_setting_group'] = array(
'title' => $lang->add_new_setting_group,
'link' => "index.php?module=config-settings&amp;action=addgroup"


$sub_tabs['add_setting_group'] = array(
'title' => $lang->add_new_setting_group,
'link' => "index.php?module=config-settings&amp;action=addgroup"

	);


	);


	$sub_tabs['modify_setting'] = array(
'title' => $lang->modify_existing_settings,
'link' => "index.php?module=config-settings&amp;action=manage",

	$sub_tabs['modify_setting'] = array(
'title' => $lang->modify_existing_settings,
'link' => "index.php?module=config-settings&amp;action=manage",

Zeile 588Zeile 580

$page->output_nav_tabs($sub_tabs, 'modify_setting');



$page->output_nav_tabs($sub_tabs, 'modify_setting');


	$form = new Form("index.php?module=config-settings&amp;action=edit", "post", "edit");

echo $form->generate_hidden_field("sid", $setting['sid']);

	$form = new Form("index.php?module=config-settings&amp;action=edit", "post", "edit");

echo $form->generate_hidden_field("sid", $setting['sid']);


if($errors)


if($errors)

	{

	{

		$setting_data = $mybb->input;
$page->output_inline_error($errors);
}

		$setting_data = $mybb->input;
$page->output_inline_error($errors);
}

Zeile 602Zeile 594
		$setting_data = $setting;
$type = explode("\n", $setting['optionscode'], 2);
$setting_data['type'] = trim($type[0]);

		$setting_data = $setting;
$type = explode("\n", $setting['optionscode'], 2);
$setting_data['type'] = trim($type[0]);

		$setting_data['extra'] = trim($type[1]);






if(isset($type[1]))
{
$setting_data['extra'] = trim($type[1]);
}

	}

$form_container = new FormContainer($lang->modify_setting);

	}

$form_container = new FormContainer($lang->modify_setting);

Zeile 613Zeile 609
	while($group = $db->fetch_array($query))
{
$group_lang_var = "setting_group_{$group['name']}";

	while($group = $db->fetch_array($query))
{
$group_lang_var = "setting_group_{$group['name']}";

		if($lang->$group_lang_var)

		if(!empty($lang->$group_lang_var))

		{
$options[$group['gid']] = htmlspecialchars_uni($lang->$group_lang_var);
}

		{
$options[$group['gid']] = htmlspecialchars_uni($lang->$group_lang_var);
}

Zeile 650Zeile 646
	);

$form_container->output_row($lang->type." <em>*</em>", "", $form->generate_select_box("type", $setting_types, $setting_data['type'], array('id' => 'type')), 'type');

	);

$form_container->output_row($lang->type." <em>*</em>", "", $form->generate_select_box("type", $setting_types, $setting_data['type'], array('id' => 'type')), 'type');

	$form_container->output_row($lang->extra, $lang->extra_desc, $form->generate_text_area('extra', $setting_data['extra'], array('id' => 'extra')), 'extra', array(), array('id' => 'row_extra'));

	$form_container->output_row($lang->extra, $lang->extra_desc, $form->generate_text_area('extra', !empty($setting_data['extra']) ? $setting_data['extra'] : null, array('id' => 'extra')), 'extra', array(), array('id' => 'row_extra'));

	$form_container->output_row($lang->value, '', $form->generate_text_area('value', $setting_data['value'], array('id' => 'value')), 'value');
$form_container->end();


	$form_container->output_row($lang->value, '', $form->generate_text_area('value', $setting_data['value'], array('id' => 'value')), 'value');
$form_container->end();


Zeile 677Zeile 673
	$setting = $db->fetch_array($query);

// Does the setting not exist?

	$setting = $db->fetch_array($query);

// Does the setting not exist?

	if(!$setting['sid'])

	if(!$setting)

	{
flash_message($lang->error_invalid_sid, 'error');
admin_redirect("index.php?module=config-settings&action=manage");

	{
flash_message($lang->error_invalid_sid, 'error');
admin_redirect("index.php?module=config-settings&action=manage");

Zeile 691Zeile 687
	}

// User clicked no

	}

// User clicked no

	if($mybb->input['no'])

	if($mybb->get_input('no'))

	{
admin_redirect("index.php?module=config-settings&action=manage");
}

	{
admin_redirect("index.php?module=config-settings&action=manage");
}

Zeile 805Zeile 801
		// Make setting group row
// Translated?
$group_lang_var = "setting_group_{$group['name']}";

		// Make setting group row
// Translated?
$group_lang_var = "setting_group_{$group['name']}";

		if($lang->$group_lang_var)

		if(!empty($lang->$group_lang_var))

		{
$group_title = htmlspecialchars_uni($lang->$group_lang_var);
}

		{
$group_title = htmlspecialchars_uni($lang->$group_lang_var);
}

Zeile 830Zeile 826
		$table->construct_row(array('class' => 'alt_row', 'no_alt_row' => 1));

// Make rows for each setting in the group

		$table->construct_row(array('class' => 'alt_row', 'no_alt_row' => 1));

// Make rows for each setting in the group

		if(is_array($settings_cache[$group['gid']]))

		if(isset($settings_cache[$group['gid']]) && is_array($settings_cache[$group['gid']]))

		{
foreach($settings_cache[$group['gid']] as $setting)
{
$setting_lang_var = "setting_{$setting['name']}";

		{
foreach($settings_cache[$group['gid']] as $setting)
{
$setting_lang_var = "setting_{$setting['name']}";

				if($lang->$setting_lang_var)

				if(!empty($lang->$setting_lang_var))

				{
$setting_title = htmlspecialchars_uni($lang->$setting_lang_var);
}

				{
$setting_title = htmlspecialchars_uni($lang->$setting_lang_var);
}

Zeile 915Zeile 911
		);

$is_current_hiddencaptcha_wrong = in_array($mybb->settings['hiddencaptchaimagefield'], $disallowed_fields);

		);

$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']) && 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)
{

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

Zeile 958Zeile 957
			}
}


			}
}


		// Have we opted for a reCAPTCHA or hCaptcha 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']['recaptchaprivatekey'] || !$mybb->input['upsetting']['recaptchapublickey']))
|| (in_array($mybb->settings['captchaimage'], array(4, 5)) && (!$mybb->settings['recaptchaprivatekey'] || !$mybb->settings['recaptchapublickey']))
|| (isset($mybb->input['upsetting']['captchaimage']) && in_array($mybb->input['upsetting']['captchaimage'], array(8)) && (!$mybb->input['upsetting']['recaptchaprivatekey'] || !$mybb->input['upsetting']['recaptchapublickey'] || !$mybb->input['upsetting']['recaptchascore']))
|| (in_array($mybb->settings['captchaimage'], array(8)) && (!$mybb->settings['recaptchaprivatekey'] || !$mybb->settings['recaptchapublickey'] || !$mybb->settings['recaptchascore']))
|| (isset($mybb->input['upsetting']['captchaimage']) && in_array($mybb->input['upsetting']['captchaimage'], array(6, 7)) && (!$mybb->input['upsetting']['hcaptchaprivatekey'] || !$mybb->input['upsetting']['hcaptchapublickey']))
|| (in_array($mybb->settings['captchaimage'], array(6, 7)) && (!$mybb->settings['hcaptchaprivatekey'] || !$mybb->settings['hcaptchapublickey'])))

		// Validate minnamelength, maxnamelength, minpasswordlength (complex and regular) and maxpasswordlength
if ($gid == 9)






		{

		{

			$mybb->input['upsetting']['captchaimage'] = 1;





















































































			if (
isset($mybb->input['upsetting']['minnamelength'], $mybb->input['upsetting']['maxnamelength']) &&
$mybb->input['upsetting']['minnamelength'] > 0 && $mybb->input['upsetting']['maxnamelength'] > 0 &&
$mybb->input['upsetting']['minnamelength'] > $mybb->input['upsetting']['maxnamelength'])
{
flash_message($lang->error_field_minnamelength, 'error');
admin_redirect("index.php?module=config-settings&action=change&gid=".$gid);
}

if (
isset($mybb->input['upsetting']['minpasswordlength'], $mybb->input['upsetting']['maxpasswordlength']) &&
$mybb->input['upsetting']['minpasswordlength'] > 0 && $mybb->input['upsetting']['maxpasswordlength'] > 0 &&
$mybb->input['upsetting']['minpasswordlength'] > $mybb->input['upsetting']['maxpasswordlength']
)
{
flash_message($lang->error_field_minpasswordlength, 'error');
admin_redirect("index.php?module=config-settings&action=change&gid=".$gid);
}

if (
isset($mybb->input['upsetting']['minpasswordlength'], $mybb->input['upsetting']['requirecomplexpasswords']) &&
$mybb->input['upsetting']['requirecomplexpasswords'] && $mybb->input['upsetting']['minpasswordlength'] < 3
)
{
flash_message($lang->error_field_minpasswordlength_complex, 'error');
admin_redirect("index.php?module=config-settings&action=change&gid=".$gid);
}
}

require_once MYBB_ROOT.'inc/class_captcha.php';

// Have we opted for a reCAPTCHA or hCaptcha and not set a public/private key in input?
$set_captcha_image = false;
if(isset(
$mybb->input['upsetting']['captchaimage'],
$mybb->input['upsetting']['recaptchaprivatekey'],
$mybb->input['upsetting']['recaptchapublickey'],
$mybb->input['upsetting']['recaptchascore'],
$mybb->input['upsetting']['hcaptchaprivatekey'],
$mybb->input['upsetting']['hcaptchapublickey']
))
{
$captchaimage = $mybb->input['upsetting']['captchaimage'];
$recaptchaprivatekey = $mybb->input['upsetting']['recaptchaprivatekey'];
$recaptchapublickey = $mybb->input['upsetting']['recaptchapublickey'];
$recaptchascore = $mybb->input['upsetting']['recaptchascore'];
$hcaptchaprivatekey = $mybb->input['upsetting']['hcaptchaprivatekey'];
$hcaptchapublickey = $mybb->input['upsetting']['hcaptchapublickey'];

if(in_array($captchaimage, array(captcha::NOCAPTCHA_RECAPTCHA, captcha::RECAPTCHA_INVISIBLE)) && (!$recaptchaprivatekey || !$recaptchapublickey))
{
$set_captcha_image = true;
}
else if(in_array($captchaimage, array(captcha::RECAPTCHA_V3)) && (!$recaptchaprivatekey || !$recaptchapublickey || !$recaptchascore))
{
$set_captcha_image = true;
}
else if(in_array($captchaimage, array(captcha::HCAPTCHA, captcha::HCAPTCHA_INVISIBLE)) && (!$hcaptchaprivatekey || !$hcaptchapublickey))
{
$set_captcha_image = true;
}
}

//Checking settings for reCAPTCHA or hCaptcha and public/private key not set?
$captchaimage = $mybb->settings['captchaimage'];
$recaptchaprivatekey = $mybb->settings['recaptchaprivatekey'];
$recaptchapublickey = $mybb->settings['recaptchapublickey'];
$recaptchascore = $mybb->settings['recaptchascore'];
$hcaptchaprivatekey = $mybb->settings['hcaptchaprivatekey'];
$hcaptchapublickey = $mybb->settings['hcaptchapublickey'];

if(in_array($captchaimage, array(captcha::NOCAPTCHA_RECAPTCHA, captcha::RECAPTCHA_INVISIBLE)) && (!$recaptchaprivatekey || !$recaptchapublickey))
{
$set_captcha_image = true;
}
else if(in_array($captchaimage, array(captcha::RECAPTCHA_V3)) && (!$recaptchaprivatekey || !$recaptchapublickey || !$recaptchascore))
{
$set_captcha_image = true;
}
else if(in_array($captchaimage, array(captcha::HCAPTCHA, captcha::HCAPTCHA_INVISIBLE)) && (!$hcaptchaprivatekey || !$hcaptchapublickey))
{
$set_captcha_image = true;
}
if($set_captcha_image){
$mybb->input['upsetting']['captchaimage'] = captcha::DEFAULT_CAPTCHA;

			$lang->success_settings_updated .= $lang->success_settings_updated_captchaimage;
}


			$lang->success_settings_updated .= $lang->success_settings_updated_captchaimage;
}


Zeile 1050Zeile 1128
		}

// Administrator is changing the login method.

		}

// 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)

		if(isset($mybb->input['upsetting']['username_method']) && (int)$mybb->input['upsetting']['username_method'] > 0)

		{

		{

			$query = $db->simple_select('users', 'email', "email != ''", array('group_by' => 'email HAVING COUNT(email)>1'));
if($db->num_rows($query))

			if((int)$mybb->settings['allowmultipleemails'] == 1)


			{
$mybb->input['upsetting']['username_method'] = 0;

			{
$mybb->input['upsetting']['username_method'] = 0;

				$lang->success_settings_updated .= $lang->success_settings_updated_username_method;

				$lang->success_settings_updated .= $lang->success_settings_updated_username_method_conflict;

			}
else
{

			}
else
{

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





















				$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;
}
}
}

if(isset($mybb->input['upsetting']['username_method'], $mybb->input['upsetting']['allowmultipleemails']))
{
// Administrator is changing registration email allowance
if((int)$mybb->settings['username_method'] > 0 && (int)$mybb->input['upsetting']['allowmultipleemails'] !== 0)
{
$mybb->input['upsetting']['allowmultipleemails'] = 0;
$lang->success_settings_updated .= $lang->success_settings_updated_allowmultipleemails;
}

// Reset conflict silently, if by chance
if((int)$mybb->settings['username_method'] > 0 && (int)$mybb->settings['allowmultipleemails'] == 1)
{
$mybb->input['upsetting']['allowmultipleemails'] = 0;

			}
}


			}
}


Zeile 1081Zeile 1178
		$dynamic_include_directories_realpath = array_map('realpath', $dynamic_include_directories);

foreach($fields as $field)

		$dynamic_include_directories_realpath = array_map('realpath', $dynamic_include_directories);

foreach($fields as $field)

 
		{
if(isset($mybb->input['upsetting'][$field]))
{
if(
is_string($mybb->input['upsetting'][$field]) &&
strpos($mybb->input['upsetting'][$field], '://') !== false)
{
unset($mybb->input['upsetting'][$field]);
continue;
}

$realpath = realpath(mk_path_abs($mybb->input['upsetting'][$field]));

if ($realpath === false)
{
unset($mybb->input['upsetting'][$field]);
continue;
}

foreach ($dynamic_include_directories_realpath as $forbidden_realpath)
{
if ($realpath === $forbidden_realpath || strpos($realpath, $forbidden_realpath.DIRECTORY_SEPARATOR) === 0)
{
unset($mybb->input['upsetting'][$field]);
continue 2;
}
}
}
}

// reject dangerous/unsupported file paths
$field = 'errorloglocation';

if(isset($mybb->input['upsetting'][$field]) && is_string($mybb->input['upsetting'][$field]))

		{
if(

		{
if(

				isset($mybb->input['upsetting'][$field]) &&
is_string($mybb->input['upsetting'][$field]) &&
strpos($mybb->input['upsetting'][$field], '://') !== false)

				strpos($mybb->input['upsetting'][$field], '://') !== false ||
substr($mybb->input['upsetting'][$field], -4) === '.php'
)

			{
unset($mybb->input['upsetting'][$field]);

			{
unset($mybb->input['upsetting'][$field]);

				continue;
}

$realpath = realpath(MYBB_ROOT.$mybb->input['upsetting'][$field]);

if ($realpath === false) {
unset($mybb->input['upsetting'][$field]);
continue;
}

foreach ($dynamic_include_directories_realpath as $forbidden_realpath)
{
if ($realpath === $forbidden_realpath || strpos($realpath, $forbidden_realpath.DIRECTORY_SEPARATOR) === 0)
{
unset($mybb->input['upsetting'][$field]);
continue 2;
}

 
			}
}

			}
}



 

if(is_array($mybb->input['upsetting']))
{


if(is_array($mybb->input['upsetting']))
{

Zeile 1156Zeile 1269
		}

// Check if we need to create our fulltext index after changing the search mode

		}

// 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(
isset($mybb->input['upsetting']['searchtype']) &&
$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"))
{

Zeile 1179Zeile 1296
		{
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, "lax");

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

		}

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

		}

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

Zeile 1268Zeile 1385
			$page->output_header($lang->board_settings." - {$lang->settings_search}");
}
}

			$page->output_header($lang->board_settings." - {$lang->settings_search}");
}
}

	elseif($mybb->input['gid'])

	elseif(($mybb->get_input('gid')))

	{
// Group listing
// Cache groups

	{
// Group listing
// Cache groups

Zeile 1299Zeile 1416
		{
$groupinfo['title'] = $lang->$group_lang_var;
}

		{
$groupinfo['title'] = $lang->$group_lang_var;
}

 

$groupinfo['title'] = htmlspecialchars_uni($groupinfo['title']);


// Page header
$page->add_breadcrumb_item($groupinfo['title']);


// Page header
$page->add_breadcrumb_item($groupinfo['title']);

Zeile 1317Zeile 1436
		if(!$db->num_rows($query))
{
$page->output_error($lang->error_invalid_gid2);

		if(!$db->num_rows($query))
{
$page->output_error($lang->error_invalid_gid2);

		}

		}


// Cache settings
$query = $db->simple_select("settings", "*", "", array('order_by' => 'disporder'));
while($setting = $db->fetch_array($query))
{
$cache_settings[$setting['gid']][$setting['sid']] = $setting;


// Cache settings
$query = $db->simple_select("settings", "*", "", array('order_by' => 'disporder'));
while($setting = $db->fetch_array($query))
{
$cache_settings[$setting['gid']][$setting['sid']] = $setting;

		}


		}


		// Page header
$page->add_breadcrumb_item($lang->show_all_settings);
$page->output_header($lang->board_settings." - {$lang->show_all_settings}");

		// Page header
$page->add_breadcrumb_item($lang->show_all_settings);
$page->output_header($lang->board_settings." - {$lang->show_all_settings}");

Zeile 1342Zeile 1461
		{
$groupinfo['title'] = $lang->$group_lang_var;
}

		{
$groupinfo['title'] = $lang->$group_lang_var;
}

 

$groupinfo['title'] = htmlspecialchars_uni($groupinfo['title']);


$form_container = new FormContainer($groupinfo['title']);

if(empty($cache_settings[$groupinfo['gid']]))


$form_container = new FormContainer($groupinfo['title']);

if(empty($cache_settings[$groupinfo['gid']]))

		{

		{

			$form_container->output_cell($lang->error_no_settings_found);
$form_container->construct_row();

			$form_container->output_cell($lang->error_no_settings_found);
$form_container->construct_row();





			$form_container->end();
echo '<br />';


			$form_container->end();
echo '<br />';


Zeile 1358Zeile 1479

foreach($cache_settings[$groupinfo['gid']] as $setting)
{


foreach($cache_settings[$groupinfo['gid']] as $setting)
{

 
			$setting['name'] = htmlspecialchars_uni($setting['name']);


			$options = "";
$type = explode("\n", $setting['optionscode']);
$type[0] = trim($type[0]);

			$options = "";
$type = explode("\n", $setting['optionscode']);
$type[0] = trim($type[0]);

Zeile 1366Zeile 1489
			if($type[0] == "text" || $type[0] == "")
{
$setting_code = $form->generate_text_box($element_name, $setting['value'], array('id' => $element_id));

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

			}

			}

			else if($type[0] == "numeric")
{
$field_options = array('id' => $element_id);

			else if($type[0] == "numeric")
{
$field_options = array('id' => $element_id);

Zeile 1406Zeile 1529

$folders = array();
while($folder = readdir($dir))


$folders = array();
while($folder = readdir($dir))

				{
if($file != "." && $file != ".." && @file_exists(MYBB_ROOT.$config['admin_dir']."/styles/$folder/main.css"))

				{
if($folder != "." && $folder != ".." && @file_exists(MYBB_ROOT.$config['admin_dir']."/styles/$folder/main.css"))

					{
$folders[$folder] = ucfirst($folder);
}

					{
$folders[$folder] = ucfirst($folder);
}

Zeile 1415Zeile 1538
				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")

			else if($type[0] == "language")

			{

			{

				$languages = $lang->get_languages();

				$languages = $lang->get_languages();

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

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

			else if($type[0] == "adminlanguage")
{
$languages = $lang->get_languages(1);
$setting_code = $form->generate_select_box($element_name, $languages, $setting['value'], array('id' => $element_id));
}
else if($type[0] == "passwordbox")

			else if($type[0] == "adminlanguage")
{
$languages = $lang->get_languages(1);
$setting_code = $form->generate_select_box($element_name, $languages, $setting['value'], array('id' => $element_id));
}
else if($type[0] == "passwordbox")

			{

			{

				$setting_code = $form->generate_password_box($element_name, $setting['value'], array('id' => $element_id));
}
else if($type[0] == "php")

				$setting_code = $form->generate_password_box($element_name, $setting['value'], array('id' => $element_id));
}
else if($type[0] == "php")

Zeile 1447Zeile 1570
						$value = (int)$value;
}
unset($value);

						$value = (int)$value;
}
unset($value);

				}

				}


$forum_checked = array('all' => '', 'custom' => '', 'none' => '');
if($setting['value'] == -1)


$forum_checked = array('all' => '', 'custom' => '', 'none' => '');
if($setting['value'] == -1)

Zeile 1484Zeile 1607
				</script>";
}
else if($type[0] == "forumselectsingle")

				</script>";
}
else if($type[0] == "forumselectsingle")

			{
$selected_value = (int)$setting['value']; // No need to check if empty, int will give 0
$setting_code = $form->generate_forum_select($element_name, $selected_value, array('id' => $element_id, 'main_option' => $lang->none));
}

			{
$selected_value = (int)$setting['value']; // No need to check if empty, int will give 0
$setting_code = $form->generate_forum_select($element_name, $selected_value, array('id' => $element_id, 'main_option' => $lang->none));
}

			else if($type[0] == "groupselect")
{
$selected_values = '';

			else if($type[0] == "groupselect")
{
$selected_values = '';

Zeile 1506Zeile 1629
				if($setting['value'] == -1)
{
$group_checked['all'] = 'checked="checked"';

				if($setting['value'] == -1)
{
$group_checked['all'] = 'checked="checked"';

				}
elseif($setting['value'] != '')
{

				}
elseif($setting['value'] != '')
{

					$group_checked['custom'] = 'checked="checked"';
}
else

					$group_checked['custom'] = 'checked="checked"';
}
else

Zeile 1527Zeile 1650
							<tr>
<td valign=\"top\"><small>{$lang->groups_colon}</small></td>
<td>".$form->generate_group_select('select['.$setting['name'].'][]', $selected_values, array('id' => $element_id, 'multiple' => true, 'size' => 5))."</td>

							<tr>
<td valign=\"top\"><small>{$lang->groups_colon}</small></td>
<td>".$form->generate_group_select('select['.$setting['name'].'][]', $selected_values, array('id' => $element_id, 'multiple' => true, 'size' => 5))."</td>

							</tr>
</table>

							</tr>
</table>

					</dd>
<dt><label style=\"display: block;\"><input type=\"radio\" name=\"{$element_name}\" value=\"none\" {$group_checked['none']} class=\"{$element_id}_forums_groups_check\" onclick=\"checkAction('{$element_id}');\" style=\"vertical-align: middle;\" /> <strong>{$lang->none}</strong></label></dt>
</dl>

					</dd>
<dt><label style=\"display: block;\"><input type=\"radio\" name=\"{$element_name}\" value=\"none\" {$group_checked['none']} class=\"{$element_id}_forums_groups_check\" onclick=\"checkAction('{$element_id}');\" style=\"vertical-align: middle;\" /> <strong>{$lang->none}</strong></label></dt>
</dl>

Zeile 1548Zeile 1671
				{
$selected_values = explode(',', (string)$setting['value']);
foreach($selected_values as &$value)

				{
$selected_values = explode(',', (string)$setting['value']);
foreach($selected_values as &$value)

					{

					{

						$value = (int)$value;
}
unset($value);

						$value = (int)$value;
}
unset($value);

Zeile 1588Zeile 1711
			else
{
$typecount = count($type);

			else
{
$typecount = count($type);





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

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





$option_list = array();

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

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

					{

					{

						continue;
}
$title_lang = "setting_{$setting['name']}_{$optionsexp[0]}";

						continue;
}
$title_lang = "setting_{$setting['name']}_{$optionsexp[0]}";

Zeile 1608Zeile 1732
					}

if($type[0] == "select")

					}

if($type[0] == "select")

					{

					{

						$option_list[$optionsexp[0]] = htmlspecialchars_uni($optionsexp[1]);
}
else if($type[0] == "radio")

						$option_list[$optionsexp[0]] = htmlspecialchars_uni($optionsexp[1]);
}
else if($type[0] == "radio")

Zeile 1648Zeile 1772
						$setting_code .= $form->generate_hidden_field("isvisible_{$setting['name']}", 1);
}
}

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

				$option_list = array();

 
			}

// Do we have a custom language variable for this title or description?

			}

// Do we have a custom language variable for this title or description?

Zeile 1818Zeile 1941
		while($group = $db->fetch_array($query))
{
$group_lang_var = "setting_group_{$group['name']}";

		while($group = $db->fetch_array($query))
{
$group_lang_var = "setting_group_{$group['name']}";

			if($lang->$group_lang_var)

			if(isset($lang->$group_lang_var))

			{
$group_title = htmlspecialchars_uni($lang->$group_lang_var);
}

			{
$group_title = htmlspecialchars_uni($lang->$group_lang_var);
}

Zeile 1828Zeile 1951
			}

$group_desc_lang_var = "setting_group_{$group['name']}_desc";

			}

$group_desc_lang_var = "setting_group_{$group['name']}_desc";

			if($lang->$group_desc_lang_var)

			if(isset($lang->$group_desc_lang_var))

			{
$group_desc = htmlspecialchars_uni($lang->$group_desc_lang_var);
}

			{
$group_desc = htmlspecialchars_uni($lang->$group_desc_lang_var);
}