Vergleich admin/inc/class_page.php - 1.8.0 - 1.8.26

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 67Zeile 67
	/**
* Output the page header.
*

	/**
* Output the page header.
*

	 * @param string The title of the page.

	 * @param string $title The title of the page.

	 */
function output_header($title="")
{

	 */
function output_header($title="")
{

Zeile 97Zeile 97
		echo "	<title>".$title."</title>\n";
echo " <meta name=\"author\" content=\"MyBB Group\" />\n";
echo " <meta name=\"copyright\" content=\"Copyright ".COPY_YEAR." MyBB Group.\" />\n";

		echo "	<title>".$title."</title>\n";
echo " <meta name=\"author\" content=\"MyBB Group\" />\n";
echo " <meta name=\"copyright\" content=\"Copyright ".COPY_YEAR." MyBB Group.\" />\n";

		echo "	<link rel=\"stylesheet\" href=\"styles/".$this->style."/main.css\" type=\"text/css\" />\n";
echo " <link rel=\"stylesheet\" href=\"styles/".$this->style."/modal.css\" type=\"text/css\" />\n";

		echo "	<link rel=\"stylesheet\" href=\"styles/".$this->style."/main.css?ver=1813\" type=\"text/css\" />\n";
echo " <link rel=\"stylesheet\" href=\"styles/".$this->style."/modal.css?ver=1813\" type=\"text/css\" />\n";


// Load stylesheet for this module if it has one
if(file_exists(MYBB_ADMIN_DIR."styles/{$this->style}/{$this->active_module}.css"))


// Load stylesheet for this module if it has one
if(file_exists(MYBB_ADMIN_DIR."styles/{$this->style}/{$this->active_module}.css"))

Zeile 106Zeile 106
			echo "	<link rel=\"stylesheet\" href=\"styles/{$this->style}/{$this->active_module}.css\" type=\"text/css\" />\n";
}


			echo "	<link rel=\"stylesheet\" href=\"styles/{$this->style}/{$this->active_module}.css\" type=\"text/css\" />\n";
}


		echo "	<script type=\"text/javascript\" src=\"../jscripts/jquery.js\"></script>\n";
echo " <script type=\"text/javascript\" src=\"../jscripts/jquery.plugins.min.js\"></script>\n";
echo " <script type=\"text/javascript\" src=\"../jscripts/general.js\"></script>\n";
echo " <script type=\"text/javascript\" src=\"./jscripts/admincp.js\"></script>\n";

		echo "	<script type=\"text/javascript\" src=\"../jscripts/jquery.js?ver=1823\"></script>\n";
echo " <script type=\"text/javascript\" src=\"../jscripts/jquery.plugins.min.js?ver=1821\"></script>\n";
echo " <script type=\"text/javascript\" src=\"../jscripts/general.js?ver=1821\"></script>\n";
echo " <script type=\"text/javascript\" src=\"./jscripts/admincp.js?ver=1821\"></script>\n";

		echo "	<script type=\"text/javascript\" src=\"./jscripts/tabs.js\"></script>\n";

echo " <link rel=\"stylesheet\" href=\"jscripts/jqueryui/css/redmond/jquery-ui.min.css\" />\n";
echo " <link rel=\"stylesheet\" href=\"jscripts/jqueryui/css/redmond/jquery-ui.structure.min.css\" />\n";
echo " <link rel=\"stylesheet\" href=\"jscripts/jqueryui/css/redmond/jquery-ui.theme.min.css\" />\n";

		echo "	<script type=\"text/javascript\" src=\"./jscripts/tabs.js\"></script>\n";

echo " <link rel=\"stylesheet\" href=\"jscripts/jqueryui/css/redmond/jquery-ui.min.css\" />\n";
echo " <link rel=\"stylesheet\" href=\"jscripts/jqueryui/css/redmond/jquery-ui.structure.min.css\" />\n";
echo " <link rel=\"stylesheet\" href=\"jscripts/jqueryui/css/redmond/jquery-ui.theme.min.css\" />\n";

		echo "	<script src=\"jscripts/jqueryui/js/jquery-ui.min.js\"></script>\n";

		echo "	<script src=\"jscripts/jqueryui/js/jquery-ui.min.js?ver=1813\"></script>\n";


// Stop JS elements showing while page is loading (JS supported browsers only)
echo " <style type=\"text/css\">.popup_button { display: none; } </style>\n";


// Stop JS elements showing while page is loading (JS supported browsers only)
echo " <style type=\"text/css\">.popup_button { display: none; } </style>\n";

Zeile 131Zeile 131
var cookieDomain = '{$mybb->settings['cookiedomain']}';
var cookiePath = '{$mybb->settings['cookiepath']}';
var cookiePrefix = '{$mybb->settings['cookieprefix']}';

var cookieDomain = '{$mybb->settings['cookiedomain']}';
var cookiePath = '{$mybb->settings['cookiepath']}';
var cookiePrefix = '{$mybb->settings['cookieprefix']}';

 
var cookieSecureFlag = '{$mybb->settings['cookiesecureflag']}';

var imagepath = '../images';

lang.unknown_error = \"{$lang->unknown_error}\";

var imagepath = '../images';

lang.unknown_error = \"{$lang->unknown_error}\";

Zeile 142Zeile 143
		echo "<body>\n";
echo "<div id=\"container\">\n";
echo " <div id=\"logo\"><h1><span class=\"invisible\">{$lang->mybb_admin_cp}</span></h1></div>\n";

		echo "<body>\n";
echo "<div id=\"container\">\n";
echo " <div id=\"logo\"><h1><span class=\"invisible\">{$lang->mybb_admin_cp}</span></h1></div>\n";

		echo "	<div id=\"welcome\"><span class=\"logged_in_as\">{$lang->logged_in_as} <a href=\"index.php?module=user-users&amp;action=edit&amp;uid={$mybb->user['uid']}\" class=\"username\">{$mybb->user['username']}</a></span> | <a href=\"{$mybb->settings['bburl']}\" target=\"_blank\" class=\"forum\">{$lang->view_board}</a> | <a href=\"index.php?action=logout&amp;my_post_key={$mybb->post_code}\" class=\"logout\">{$lang->logout}</a></div>\n";


		$username = htmlspecialchars_uni($mybb->user['username']);
echo " <div id=\"welcome\"><span class=\"logged_in_as\">{$lang->logged_in_as} <a href=\"index.php?module=user-users&amp;action=edit&amp;uid={$mybb->user['uid']}\" class=\"username\">{$username}</a></span> | <a href=\"{$mybb->settings['bburl']}\" target=\"_blank\" class=\"forum\">{$lang->view_board}</a> | <a href=\"index.php?action=logout&amp;my_post_key={$mybb->post_code}\" class=\"logout\">{$lang->logout}</a></div>\n";

		echo $this->_build_menu();
echo " <div id=\"page\">\n";
echo " <div id=\"left_menu\">\n";

		echo $this->_build_menu();
echo " <div id=\"page\">\n";
echo " <div id=\"left_menu\">\n";

Zeile 191Zeile 193

/**
* Output the page footer.


/**
* Output the page footer.

 
	 *
* @param bool $quit

	 */
function output_footer($quit=true)
{

	 */
function output_footer($quit=true)
{

Zeile 215Zeile 219
		else
{
$debuglink = htmlspecialchars_uni(getenv("REQUEST_URI")) . "?debug=1#footer";

		else
{
$debuglink = htmlspecialchars_uni(getenv("REQUEST_URI")) . "?debug=1#footer";

		}


		}


		echo "			</div>\n";
echo " </div>\n";
echo " <br style=\"clear: both;\" />";

		echo "			</div>\n";
echo " </div>\n";
echo " <br style=\"clear: both;\" />";

		echo "	<br style=\"clear: both;\" />";

		echo "	<br style=\"clear: both;\" />";

		echo "	</div>\n";

		echo "	</div>\n";

		echo "<div id=\"footer\"><p class=\"generation\">".$lang->sprintf($lang->generated_in, $totaltime, $debuglink, $querycount, $memory_usage)."</p><p class=\"powered\">Powered By <a href=\"http://www.mybb.com/\" target=\"_blank\">MyBB</a>, &copy; 2002-".COPY_YEAR." <a href=\"http://www.mybb.com/\" target=\"_blank\">MyBB Group</a>.</p></div>\n";

		echo "<div id=\"footer\"><p class=\"generation\">".$lang->sprintf($lang->generated_in, $totaltime, $debuglink, $querycount, $memory_usage)."</p><p class=\"powered\">Powered By <a href=\"https://mybb.com/\" target=\"_blank\" rel=\"noopener\">MyBB</a>, &copy; 2002-".COPY_YEAR." <a href=\"https://mybb.com/\" target=\"_blank\" rel=\"noopener\">MyBB Group</a>.</p></div>\n";

		if($mybb->debug_mode)
{
echo $db->explain;

		if($mybb->debug_mode)
{
echo $db->explain;

Zeile 230Zeile 234
		echo "</div>\n";
echo "</body>\n";
echo "</html>\n";

		echo "</div>\n";
echo "</body>\n";
echo "</html>\n";





		if($quit != false)
{
exit;

		if($quit != false)
{
exit;

Zeile 240Zeile 244
	/**
* Add an item to the page breadcrumb trail.
*

	/**
* Add an item to the page breadcrumb trail.
*

	 * @param string The name of the item to add.
* @param string The URL to the item we're adding (if there is one)

	 * @param string $name The name of the item to add.
* @param string $url The URL to the item we're adding (if there is one)

	 */
function add_breadcrumb_item($name, $url="")
{

	 */
function add_breadcrumb_item($name, $url="")
{

Zeile 250Zeile 254

/**
* Generate a breadcrumb trail.


/**
* Generate a breadcrumb trail.

 
	 *
* @return bool|string

	 */
function _generate_breadcrumb()
{

	 */
function _generate_breadcrumb()
{

Zeile 279Zeile 285
	/**
* Output a success message.
*

	/**
* Output a success message.
*

	 * @param string The message to output.

	 * @param string $message The message to output.

	 */
function output_success($message)
{

	 */
function output_success($message)
{

Zeile 289Zeile 295
	/**
* Output an alert/warning message.
*

	/**
* Output an alert/warning message.
*

	 * @param string The message to output.
* @param string The ID of the alert/warning (optional)

	 * @param string $message The message to output.
* @param string $id The ID of the alert/warning (optional)

	 */
function output_alert($message, $id="")
{

	 */
function output_alert($message, $id="")
{

Zeile 299Zeile 305
			$id = " id=\"{$id}\"";
}
echo "<div class=\"alert\"{$id}>{$message}</div>\n";

			$id = " id=\"{$id}\"";
}
echo "<div class=\"alert\"{$id}>{$message}</div>\n";

	}

	}


/**
* Output an inline message.
*


/**
* Output an inline message.
*

	 * @param string The message to output.

	 * @param string $message The message to output.

	 */
function output_inline_message($message)
{

	 */
function output_inline_message($message)
{

Zeile 314Zeile 320
	/**
* Output a single error message.
*

	/**
* Output a single error message.
*

	 * @param string The message to output.

	 * @param string $error The message to output.

	 */
function output_error($error)
{

	 */
function output_error($error)
{

Zeile 325Zeile 331

/**
* Output one or more inline error messages.


/**
* Output one or more inline error messages.

	 *
* @param array Array of error messages to output.

	 *
* @param array $errors Array of error messages to output.

	 */
function output_inline_error($errors)
{

	 */
function output_inline_error($errors)
{

Zeile 350Zeile 356
	/**
* Generate the login page.
*

	/**
* Generate the login page.
*

	 * @param string The any message to output on the page if there is one.
* @param string The class name of the message (defaults to success)

	 * @param string $message The any message to output on the page if there is one.
* @param string $class The class name of the message (defaults to success)

	 */
function show_login($message="", $class="success")
{

	 */
function show_login($message="", $class="success")
{

Zeile 366Zeile 372
		$plugins->run_hooks('admin_page_show_login_start', $args);

$copy_year = COPY_YEAR;

		$plugins->run_hooks('admin_page_show_login_start', $args);

$copy_year = COPY_YEAR;





		$login_container_width = "";
$login_label_width = "";

// If the language string for "Username" is too cramped then use this to define how much larger you want the gap to be (in px)
if(isset($lang->login_field_width))

		$login_container_width = "";
$login_label_width = "";

// If the language string for "Username" is too cramped then use this to define how much larger you want the gap to be (in px)
if(isset($lang->login_field_width))

        {
$login_label_width = " style=\"width: ".((int)$lang->login_field_width+100)."px;\"";

		{
$login_label_width = " style=\"width: ".((int)$lang->login_field_width+100)."px;\"";

			$login_container_width = " style=\"width: ".(410+((int)$lang->login_field_width))."px;\"";

			$login_container_width = " style=\"width: ".(410+((int)$lang->login_field_width))."px;\"";

        }

		}


$login_page .= <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


$login_page .= <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Zeile 385Zeile 391
<meta name="author" content="MyBB Group" />
<meta name="copyright" content="Copyright {$copy_year} MyBB Group." />
<link rel="stylesheet" href="./styles/{$cp_style}/login.css" type="text/css" />

<meta name="author" content="MyBB Group" />
<meta name="copyright" content="Copyright {$copy_year} MyBB Group." />
<link rel="stylesheet" href="./styles/{$cp_style}/login.css" type="text/css" />

<script type="text/javascript" src="../jscripts/jquery.js"></script>
<script type="text/javascript" src="../jscripts/general.js"></script>
<script type="text/javascript" src="./jscripts/admincp.js"></script>

<script type="text/javascript" src="../jscripts/jquery.js?ver=1823"></script>
<script type="text/javascript" src="../jscripts/general.js?ver=1821"></script>
<script type="text/javascript" src="./jscripts/admincp.js?ver=1821"></script>

<script type="text/javascript">
//<![CDATA[
loading_text = '{$lang->loading_text}';

<script type="text/javascript">
//<![CDATA[
loading_text = '{$lang->loading_text}';

Zeile 408Zeile 414
		if($message)
{
$login_page .= "<p id=\"message\" class=\"{$class}\"><span class=\"text\">{$message}</span></p>";

		if($message)
{
$login_page .= "<p id=\"message\" class=\"{$class}\"><span class=\"text\">{$message}</span></p>";

		}
// Make query string nice and pretty so that user can go to his/her preferred destination
$query_string = '';
if($_SERVER['QUERY_STRING'])
{

		}
// Make query string nice and pretty so that user can go to his/her preferred destination
$query_string = '';
if($_SERVER['QUERY_STRING'])
{

			$query_string = '?'.preg_replace('#adminsid=(.{32})#i', '', $_SERVER['QUERY_STRING']);
$query_string = preg_replace('#my_post_key=(.{32})#i', '', $query_string);
$query_string = str_replace('action=logout', '', $query_string);

			$query_string = '?'.preg_replace('#adminsid=(.{32})#i', '', $_SERVER['QUERY_STRING']);
$query_string = preg_replace('#my_post_key=(.{32})#i', '', $query_string);
$query_string = str_replace('action=logout', '', $query_string);

Zeile 451Zeile 457
		$login_lang_string = $lang->enter_username_and_password;

switch($mybb->settings['username_method'])

		$login_lang_string = $lang->enter_username_and_password;

switch($mybb->settings['username_method'])

		{

		{

			case 0: // Username only
$login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username);
break;
case 1: // Email only
$login_lang_string = $lang->sprintf($login_lang_string, $lang->login_email);

			case 0: // Username only
$login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username);
break;
case 1: // Email only
$login_lang_string = $lang->sprintf($login_lang_string, $lang->login_email);

				break;

				break;

			case 2: // Username and email
default:
$login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username_and_password);
break;

			case 2: // Username and email
default:
$login_lang_string = $lang->sprintf($login_lang_string, $lang->login_username_and_password);
break;

		}

$_SERVER['PHP_SELF'] = htmlspecialchars_uni($_SERVER['PHP_SELF']);


		}

$this_file = htmlspecialchars_uni($_SERVER['SCRIPT_NAME']);


		$login_page .= <<<EOF
<p>{$login_lang_string}</p>

		$login_page .= <<<EOF
<p>{$login_lang_string}</p>

		<form method="post" action="{$_SERVER['PHP_SELF']}{$query_string}">

		<form method="post" action="{$this_file}{$query_string}">

		<div class="form_container">

		<div class="form_container">





			<div class="label"{$login_label_width}><label for="username">{$lang_username}</label></div>

<div class="field"><input type="text" name="username" id="username" class="text_input initial_focus" /></div>

			<div class="label"{$login_label_width}><label for="username">{$lang_username}</label></div>

<div class="field"><input type="text" name="username" id="username" class="text_input initial_focus" /></div>

Zeile 478Zeile 484
			<div class="label"{$login_label_width}><label for="password">{$lang->password}</label></div>
<div class="field"><input type="password" name="password" id="password" class="text_input" /></div>
{$secret_pin}

			<div class="label"{$login_label_width}><label for="password">{$lang->password}</label></div>
<div class="field"><input type="password" name="password" id="password" class="text_input" /></div>
{$secret_pin}

		</div>
<p class="submit">

		</div>
<p class="submit">

			<span class="forgot_password">
<a href="../member.php?action=lostpw">{$lang->lost_password}</a>
</span>

<input type="submit" value="{$lang->login}" />

			<span class="forgot_password">
<a href="../member.php?action=lostpw">{$lang->lost_password}</a>
</span>

<input type="submit" value="{$lang->login}" />

			<input type="hidden" name="do" value="login" />










































































			<input type="hidden" name="do" value="login" />
</p>
</form>
</div>
</div>
</body>
</html>
EOF;

$args = array(
'this' => &$this,
'login_page' => &$login_page
);

$plugins->run_hooks('admin_page_show_login_end', $args);

echo $login_page;
exit;
}

function show_2fa()
{
global $lang, $cp_style, $mybb;

$copy_year = COPY_YEAR;

$mybb2fa_page = <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head profile="http://gmpg.org/xfn/1">
<title>{$lang->my2fa}</title>
<meta name="author" content="MyBB Group" />
<meta name="copyright" content="Copyright {$copy_year} MyBB Group." />
<link rel="stylesheet" href="./styles/{$cp_style}/login.css" type="text/css" />
<script type="text/javascript" src="../jscripts/jquery.js?ver=1823"></script>
<script type="text/javascript" src="../jscripts/general.js?ver=1821"></script>
<script type="text/javascript" src="./jscripts/admincp.js?ver=1821"></script>
<script type="text/javascript">
//<![CDATA[
loading_text = '{$lang->loading_text}';
//]]>
</script>
</head>
<body>
<div id="container">
<div id="header">
<div id="logo">
<h1><a href="../" title="{$lang->return_to_forum}"><span class="invisible">{$lang->mybb_acp}</span></a></h1>
</div>
</div>
<div id="content">
<h2>{$lang->my2fa}</h2>
EOF;
// Make query string nice and pretty so that user can go to his/her preferred destination
$query_string = '';
if($_SERVER['QUERY_STRING'])
{
$query_string = '?'.preg_replace('#adminsid=(.{32})#i', '', $_SERVER['QUERY_STRING']);
$query_string = preg_replace('#my_post_key=(.{32})#i', '', $query_string);
$query_string = str_replace('action=logout', '', $query_string);
$query_string = preg_replace('#&+#', '&', $query_string);
$query_string = str_replace('?&', '?', $query_string);
$query_string = htmlspecialchars_uni($query_string);
}
$mybb2fa_page .= <<<EOF
<p>{$lang->my2fa_code}</p>
<form method="post" action="index.php{$query_string}">
<div class="form_container">
<div class="label"><label for="code">{$lang->my2fa_label}</label></div>
<div class="field"><input type="text" name="code" id="code" class="text_input initial_focus" /></div>
</div>
<p class="submit">
<input type="submit" value="{$lang->login}" />
<input type="hidden" name="do" value="do_2fa" />

		</p>
</form>
</div>

		</p>
</form>
</div>

Zeile 493Zeile 572
</body>
</html>
EOF;

</body>
</html>
EOF;


$args = array(
'this' => &$this,
'login_page' => &$login_page
);

$plugins->run_hooks('admin_page_show_login_end', $args);

echo $login_page;

		echo $mybb2fa_page;









		exit;
}


		exit;
}


Zeile 515Zeile 586

$copy_year = COPY_YEAR;
$allowed_attempts = (int)$mybb->settings['maxloginattempts'];


$copy_year = COPY_YEAR;
$allowed_attempts = (int)$mybb->settings['maxloginattempts'];

		$lockedout_message = $lang->sprintf($lang->error_mybb_admin_lockedout_message, $allowed_attempts);

print <<<EOF

		$lockedout_message = $lang->sprintf($lang->error_mybb_admin_lockedout_message, $allowed_attempts);

print <<<EOF

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head profile="http://gmpg.org/xfn/1">
<title>{$lang->mybb_admin_cp} - {$lang->error_mybb_admin_lockedout}</title>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head profile="http://gmpg.org/xfn/1">
<title>{$lang->mybb_admin_cp} - {$lang->error_mybb_admin_lockedout}</title>

<meta name="author" content="MyBB Group" />
<meta name="copyright" content="Copyright {$copy_year} MyBB Group." />
<link rel="stylesheet" href="./styles/{$cp_style}/login.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="header">
<div id="logo">
<h1><a href="../" title="{$lang->return_to_forum}"><span class="invisible">{$lang->mybb_acp}</span></a></h1>

<meta name="author" content="MyBB Group" />
<meta name="copyright" content="Copyright {$copy_year} MyBB Group." />
<link rel="stylesheet" href="./styles/{$cp_style}/login.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="header">
<div id="logo">
<h1><a href="../" title="{$lang->return_to_forum}"><span class="invisible">{$lang->mybb_acp}</span></a></h1>


</div>
</div>


</div>
</div>

Zeile 548Zeile 619
	/**
* Generate the lockout unlock page
*

	/**
* Generate the lockout unlock page
*

	 * @param string The any message to output on the page if there is one.
* @param string The class name of the message (defaults to success)

	 * @param string $message The any message to output on the page if there is one.
* @param string $class The class name of the message (defaults to success)

	 */
function show_lockout_unlock($message="", $class="success")
{
global $lang, $mybb, $cp_style;

$copy_year = COPY_YEAR;

	 */
function show_lockout_unlock($message="", $class="success")
{
global $lang, $mybb, $cp_style;

$copy_year = COPY_YEAR;

 

$login_label_width = "";

// If the language string for "Username" is too cramped then use this to define how much larger you want the gap to be (in px)
if(isset($lang->login_field_width))
{
$login_label_width = " style=\"width: ".((int)$lang->login_field_width+100)."px;\"";
}


		switch($mybb->settings['username_method'])
{
case 0:

		switch($mybb->settings['username_method'])
{
case 0:

Zeile 570Zeile 650
			default:
$lang_username = $lang->username;
break;

			default:
$lang_username = $lang->username;
break;

		}

		}


if($message)
{


if($message)
{

Zeile 621Zeile 701
</div>
</body>
</html>

</div>
</body>
</html>

EOF;

EOF;

	exit;
}

/**
* Add an item to the primary navigation menu.
*

	exit;
}

/**
* Add an item to the primary navigation menu.
*

	 * @param string The title of the menu item.
* @param string The ID of the menu item. This should correspond with the module the menu will run.
* @param string The link to follow when the menu item is clicked.
* @param int The display order of the menu item. Lower display order means closer to start of the menu.
* @param array Array of sub menu items if there are any.

	 * @param string $title The title of the menu item.
* @param string $id The ID of the menu item. This should correspond with the module the menu will run.
* @param string $link The link to follow when the menu item is clicked.
* @param int $order The display order of the menu item. Lower display order means closer to start of the menu.
* @param array $submenu Array of sub menu items if there are any.

	 */
function add_menu_item($title, $id, $link, $order=10, $submenu=array())
{

	 */
function add_menu_item($title, $id, $link, $order=10, $submenu=array())
{

Zeile 642Zeile 722
			"link" => $link,
"submenu" => $submenu
);

			"link" => $link,
"submenu" => $submenu
);

	}

	}


/**
* Build the actual navigation menu.


/**
* Build the actual navigation menu.

 
	 *
* @return bool|string

	 */
function _build_menu()
{
if(!is_array($this->_menu))

	 */
function _build_menu()
{
if(!is_array($this->_menu))

		{

		{

			return false;
}
$build_menu = "<div id=\"menu\">\n<ul>\n";

			return false;
}
$build_menu = "<div id=\"menu\">\n<ul>\n";

Zeile 685Zeile 767
	/**
* Build a navigation sub menu if we have one.
*

	/**
* Build a navigation sub menu if we have one.
*

	 * @param string A title for the sub menu.
* @param array Array of items for the sub menu.

	 * @param string $title A title for the sub menu.
* @param array $items Array of items for the sub menu.

	 */
function _build_submenu($title, $items)
{

	 */
function _build_submenu($title, $items)
{

Zeile 695Zeile 777
			$sidebar = new sideBarItem($title);
$sidebar->add_menu_items($items, $this->active_action);
$this->submenu .= $sidebar->get_markup();

			$sidebar = new sideBarItem($title);
$sidebar->add_menu_items($items, $this->active_action);
$this->submenu .= $sidebar->get_markup();

		}
}

/**
* Switch between two different alternating background colours.
*/
function get_alt_bg()
{
static $alt_bg;
if($alt_bg == "alt1")
{
$alt_bg = "alt2";
return "alt1";
}
else
{
$alt_bg = "alt1";
return $alt_bg;

 
		}
}

/**
* Output a Javascript based tab control on to the page.
*

		}
}

/**
* Output a Javascript based tab control on to the page.
*

	 * @param array Array of tabs in name => title format. Name should correspond to the name of a DIV containing the tab content.
* @param boolean Whether or not to run the event onload or instantly
* @param string The ID to use for the tabs for if you run multiple instances of the tabbing control in one html page

	 * @param array $tabs Array of tabs in name => title format. Name should correspond to the name of a DIV containing the tab content.
* @param boolean $observe_onload Whether or not to run the event onload or instantly
* @param string $id The ID to use for the tabs for if you run multiple instances of the tabbing control in one html page

	 */
function output_tab_control($tabs=array(), $observe_onload=true, $id="tabs")
{

	 */
function output_tab_control($tabs=array(), $observe_onload=true, $id="tabs")
{

Zeile 751Zeile 815
	/**
* Output a series of primary navigation tabs for swithcing between items within a particular module/action.
*

	/**
* Output a series of primary navigation tabs for swithcing between items within a particular module/action.
*

	 * @param array Nested array of tabs containing possible keys of align, link_target, link, title.
* @param string The name of the active tab. Corresponds with the key of each tab item.

	 * @param array $tabs Nested array of tabs containing possible keys of align, link_target, link_rel, link, title.
* @param string $active The name of the active tab. Corresponds with the key of each tab item.

	 */
function output_nav_tabs($tabs=array(), $active='')
{

	 */
function output_nav_tabs($tabs=array(), $active='')
{

Zeile 775Zeile 839
			if(isset($tab['link_target']))
{
$target = " target=\"{$tab['link_target']}\"";

			if(isset($tab['link_target']))
{
$target = " target=\"{$tab['link_target']}\"";

 
			}
$rel = '';
if(isset($tab['link_rel']))
{
$rel = " rel=\"{$tab['link_rel']}\"";

			}
if(!isset($tab['link']))
{
$tab['link'] = '';
}

			}
if(!isset($tab['link']))
{
$tab['link'] = '';
}

			echo "\t\t<li class=\"{$class}\"><a href=\"{$tab['link']}\"{$target}>{$tab['title']}</a></li>\n";

			echo "\t\t<li class=\"{$class}\"><a href=\"{$tab['link']}\"{$target}{$rel}>{$tab['title']}</a></li>\n";

			$target = '';
}
echo "\t</ul>\n";
if($tabs[$active]['description'])

			$target = '';
}
echo "\t</ul>\n";
if($tabs[$active]['description'])

		{

		{

			echo "\t<div class=\"tab_description\">{$tabs[$active]['description']}</div>\n";
}
echo "</div>";

			echo "\t<div class=\"tab_description\">{$tabs[$active]['description']}</div>\n";
}
echo "</div>";

Zeile 796Zeile 865
	/**
* Output a page asking if a user wishes to continue performing a specific action.
*

	/**
* Output a page asking if a user wishes to continue performing a specific action.
*

	 * @param string The URL to be forwarded to.
* @param string The confirmation message to output.
* @param string The title to use in the output header

	 * @param string $url The URL to be forwarded to.
* @param string $message The confirmation message to output.
* @param string $title The title to use in the output header

	 */
function output_confirm_action($url, $message="", $title="")
{

	 */
function output_confirm_action($url, $message="", $title="")
{

Zeile 814Zeile 883
		$plugins->run_hooks('admin_page_output_confirm_action', $args);

if(!$message)

		$plugins->run_hooks('admin_page_output_confirm_action', $args);

if(!$message)

		{

		{

			$message = $lang->confirm_action;
}
$this->output_header($title);

			$message = $lang->confirm_action;
}
$this->output_header($title);

Zeile 832Zeile 901
		$form->end();
$this->output_footer();
}

		$form->end();
$this->output_footer();
}





	/**
* Build a clickable MyCode editor for the Admin CP.
*

	/**
* Build a clickable MyCode editor for the Admin CP.
*

	 * @param string The ID of the textarea to bind the editor to.
* @param string The language string for the editor.


	 * @param string $bind The ID of the textarea to bind the editor to.
* @param string $editor_language The language string for the editor.
* @param bool $smilies Whether or not smilies should be included

	 * @return string The build MyCode editor Javascript.
*/
function build_codebuttons_editor($bind, $editor_language, $smilies)
{
global $lang, $mybb, $smiliecache, $cache;

	 * @return string The build MyCode editor Javascript.
*/
function build_codebuttons_editor($bind, $editor_language, $smilies)
{
global $lang, $mybb, $smiliecache, $cache;





		// Smilies
$emoticon = "";
$emoticons_enabled = "false";

		// Smilies
$emoticon = "";
$emoticons_enabled = "false";

		if($smilies && $mybb->settings['smilieinserter'] != 0 && $mybb->settings['smilieinsertercols'] && $mybb->settings['smilieinsertertot'])

		if($smilies)

		{

		{

			$emoticon = ",emoticon";




			if($mybb->settings['smilieinserter'] && $mybb->settings['smilieinsertercols'] && $mybb->settings['smilieinsertertot'])
{
$emoticon = ",emoticon";
}

			$emoticons_enabled = "true";

			$emoticons_enabled = "true";

 


			if(!$smiliecount)
{
$smilie_cache = $cache->read("smilies");

			if(!$smiliecount)
{
$smilie_cache = $cache->read("smilies");

 
				if(!is_array($smilie_cache))
{
$smilie_cache = array();
}

				$smiliecount = count($smilie_cache);
}


				$smiliecount = count($smilie_cache);
}


Zeile 865Zeile 943
				}
foreach($smilie_cache as $smilie)
{

				}
foreach($smilie_cache as $smilie)
{

					if($smilie['showclickable'] != 0)
{
$smiliecache[$smilie['find']] = $smilie['image'];
}

					$smilie['image'] = str_replace("{theme}", "images", $smilie['image']);
$smiliecache[$smilie['sid']] = $smilie;



				}
}


				}
}


Zeile 881Zeile 957
				$dropdownsmilies = $moresmilies = $hiddensmilies = "";
$i = 0;


				$dropdownsmilies = $moresmilies = $hiddensmilies = "";
$i = 0;


				foreach($smiliecache as $find => $image)

				foreach($smiliecache as $smilie)

				{

				{

					$finds = explode("\n", $find);

					$finds = explode("\n", $smilie['find']);

					$finds_count = count($finds);

					$finds_count = count($finds);

					



					// Only show the first text to replace in the box

					// Only show the first text to replace in the box

					$find = htmlspecialchars_uni($finds[0]);
$image = htmlspecialchars_uni($image);

					$find = str_replace(array('\\', '"'), array('\\\\', '\"'), htmlspecialchars_uni($finds[0]));
$image = str_replace(array('\\', '"'), array('\\\\', '\"'), htmlspecialchars_uni($smilie['image']));

					if(substr($image, 0, 4) != "http")

					if(substr($image, 0, 4) != "http")

					{

					{

						$image = $mybb->settings['bburl']."/".$image;
}

						$image = $mybb->settings['bburl']."/".$image;
}

					if($i < $mybb->settings['smilieinsertertot'])







if(!$mybb->settings['smilieinserter'] || !$mybb->settings['smilieinsertercols'] || !$mybb->settings['smilieinsertertot'] || !$smilie['showclickable'])
{
$hiddensmilies .= '"'.$find.'": "'.$image.'",';
}
elseif($i < $mybb->settings['smilieinsertertot'])

					{
$dropdownsmilies .= '"'.$find.'": "'.$image.'",';

					{
$dropdownsmilies .= '"'.$find.'": "'.$image.'",';

 
						++$i;

					}
else
{

					}
else
{

Zeile 904Zeile 986

for($j = 1; $j < $finds_count; ++$j)
{


for($j = 1; $j < $finds_count; ++$j)
{

						$find = htmlspecialchars_uni($finds[$j]);

						$find = str_replace(array('\\', '"'), array('\\\\', '\"'), htmlspecialchars_uni($finds[$j]));

						$hiddensmilies .= '"'.$find.'": "'.$image.'",';
}

						$hiddensmilies .= '"'.$find.'": "'.$image.'",';
}

					++$i;

 
				}
}
}

				}
}
}

Zeile 943Zeile 1024
		if($mybb->settings['allowfontmycode'] == 1 || $mybb->settings['allowsizemycode'] == 1 || $mybb->settings['allowcolormycode'] == 1)
{
$removeformat = "removeformat|";

		if($mybb->settings['allowfontmycode'] == 1 || $mybb->settings['allowsizemycode'] == 1 || $mybb->settings['allowcolormycode'] == 1)
{
$removeformat = "removeformat|";

		}

		}


if($mybb->settings['allowemailmycode'] == 1)
{


if($mybb->settings['allowemailmycode'] == 1)
{

Zeile 966Zeile 1047
		}

if($mybb->user['sourceeditor'] == 1)

		}

if($mybb->user['sourceeditor'] == 1)

		{

		{

			$sourcemode = "MyBBEditor.sourceMode(true);";
}


			$sourcemode = "MyBBEditor.sourceMode(true);";
}


Zeile 975Zeile 1056
<script type="text/javascript">
var partialmode = {$mybb->settings['partialmode']},
opt_editor = {

<script type="text/javascript">
var partialmode = {$mybb->settings['partialmode']},
opt_editor = {

	plugins: "bbcode",
style: "../jscripts/sceditor/jquery.sceditor.mybb.css",



	plugins: "undo",
format: "bbcode",
bbcodeTrim: true,
style: "../jscripts/sceditor/styles/jquery.sceditor.mybb.css",

	rtl: {$lang->settings['rtl']},
locale: "mybblang",
enablePasteFiltering: true,

	rtl: {$lang->settings['rtl']},
locale: "mybblang",
enablePasteFiltering: true,

 
	autoUpdate: true,

	emoticonsEnabled: {$emoticons_enabled},
emoticons: {
// Emoticons to be included in the dropdown

	emoticonsEnabled: {$emoticons_enabled},
emoticons: {
// Emoticons to be included in the dropdown

Zeile 1007Zeile 1091
});
</script>
EOF;

});
</script>
EOF;

	}

	}

}

}





/**
* A class for generating side bar blocks.
*/
class DefaultSidebarItem
{

/**
* A class for generating side bar blocks.
*/
class DefaultSidebarItem
{

	/**
* @var The title of the side bar block.

	/**
* @var string The title of the side bar block.

	 */
private $_title;

	 */
private $_title;


/**


/**

	 * @var string The contents of the side bar block.

	 * @var string The contents of the side bar block.

	 */

	 */

	private $_contents;

/**
* Constructor. Set the title of the side bar block.
*

	private $_contents;

/**
* Constructor. Set the title of the side bar block.
*

	 * @param string The title of the side bar block.

	 * @param string $title The title of the side bar block.

	 */
function __construct($title="")
{
$this->_title = $title;

	 */
function __construct($title="")
{
$this->_title = $title;

	}


	}


	/**
* Add menus item to the side bar block.
*

	/**
* Add menus item to the side bar block.
*

	 * @param array Array of menu items to add. Each menu item should be a nested array of id, link and title.
* @param string The ID of the active menu item if there is one.

	 * @param array $items Array of menu items to add. Each menu item should be a nested array of id, link and title.
* @param string $active The ID of the active menu item if there is one.

	 */
function add_menu_items($items, $active)
{

	 */
function add_menu_items($items, $active)
{

Zeile 1049Zeile 1133
		foreach($items as $item)
{
if(!check_admin_permissions(array("module" => $run_module, "action" => $item['id']), false))

		foreach($items as $item)
{
if(!check_admin_permissions(array("module" => $run_module, "action" => $item['id']), false))

			{

			{

				continue;

				continue;

			}

			}


$class = "";
if($item['id'] == $active)


$class = "";
if($item['id'] == $active)

Zeile 1062Zeile 1146
			$this->_contents .= "<li class=\"{$class}\"><a href=\"{$item['link']}\">{$item['title']}</a></li>\n";
}
$this->_contents .= "</ul>";

			$this->_contents .= "<li class=\"{$class}\"><a href=\"{$item['link']}\">{$item['title']}</a></li>\n";
}
$this->_contents .= "</ul>";

	}

/**

	}

/**

	 * Sets custom html to the contents variable
*

	 * Sets custom html to the contents variable
*

	 * @param string The custom html to set

	 * @param string $html The custom html to set

	 */
function set_contents($html)
{

	 */
function set_contents($html)
{

Zeile 1076Zeile 1160

/**
* Fetch the HTML markup for the side bar box.


/**
* Fetch the HTML markup for the side bar box.

 
	 *
* @return string

	 */
function get_markup()
{

	 */
function get_markup()
{

Zeile 1113Zeile 1199
	/**
* Initialise a new popup menu.
*

	/**
* Initialise a new popup menu.
*

	 * @var string The ID of the popup menu.
* @var string The title of the popup menu.

	 * @var string $id The ID of the popup menu.
* @var string $title The title of the popup menu.

	 */
function __construct($id, $title='')
{

	 */
function __construct($id, $title='')
{

Zeile 1125Zeile 1211
	/**
* Add an item to the popup menu.
*

	/**
* Add an item to the popup menu.
*

	 * @param string The title of this item.
* @param string The page this item should link to.
* @param string The onclick event handler if we have one.

	 * @param string $text The title of this item.
* @param string $link The page this item should link to.
* @param string $onclick The onclick event handler if we have one.

	 */
function add_item($text, $link, $onclick='')
{

	 */
function add_item($text, $link, $onclick='')
{