Zeile 6 | Zeile 6 |
---|
* Website: http://www.mybboard.net * License: http://www.mybboard.net/about/license *
|
* Website: http://www.mybboard.net * License: http://www.mybboard.net/about/license *
|
* $Id: functions.php 4058 2008-08-03 00:37:09Z Tikitiki $
| * $Id: functions.php 4377 2009-06-04 11:33:13Z Tomm $
|
*/
/**
| */
/**
|
Zeile 162 | Zeile 162 |
---|
if(isset($config)) { require_once MYBB_ROOT."inc/db_".$config['database']['type'].".php";
|
if(isset($config)) { require_once MYBB_ROOT."inc/db_".$config['database']['type'].".php";
|
$db = new databaseEngine;
| switch($config['database']['type']) { case "sqlite3": $db = new DB_SQLite3; break; case "sqlite2": $db = new DB_SQLite2; break; case "pgsql": $db = new DB_PgSQL; break; case "mysqli": $db = new DB_MySQLi; break; default: $db = new DB_MySQL; }
|
$db->connect($config['database']); define("TABLE_PREFIX", $config['database']['table_prefix']); $db->set_table_prefix(TABLE_PREFIX);
| $db->connect($config['database']); define("TABLE_PREFIX", $config['database']['table_prefix']); $db->set_table_prefix(TABLE_PREFIX);
|
Zeile 201 | Zeile 219 |
---|
foreach($shutdown_functions as $function) { $function();
|
foreach($shutdown_functions as $function) { $function();
|
}
| }
|
}
$done_shutdown = true;
| }
$done_shutdown = true;
|
Zeile 239 | Zeile 257 |
---|
} // Update the mailqueue cache and remove the lock $cache->update_mailqueue(TIME_NOW, 0);
|
} // Update the mailqueue cache and remove the lock $cache->update_mailqueue(TIME_NOW, 0);
|
}
| }
|
$plugins->run_hooks("send_mail_queue_end"); }
| $plugins->run_hooks("send_mail_queue_end"); }
|
Zeile 391 | Zeile 409 |
---|
* @param string The from address of the email, if blank, the board name will be used. * @param string The chracter set being used to send this email. * @param boolean Do we wish to keep the connection to the mail server alive to send more than one message (SMTP only)
|
* @param string The from address of the email, if blank, the board name will be used. * @param string The chracter set being used to send this email. * @param boolean Do we wish to keep the connection to the mail server alive to send more than one message (SMTP only)
|
*/ function my_mail($to, $subject, $message, $from="", $charset="", $headers="", $keep_alive=false, $format="text", $message_text="") {
| * @param string The format of the email to be sent (text or html). text is default * @param string The text message of the email if being sent in html format, for email clients that don't support html * @param string The email address to return to. Defaults to admin return email address. */ function my_mail($to, $subject, $message, $from="", $charset="", $headers="", $keep_alive=false, $format="text", $message_text="", $return_email="") {
|
global $mybb; static $mail;
| global $mybb; static $mail;
|
Zeile 403 | Zeile 424 |
---|
require_once MYBB_ROOT."inc/class_mailhandler.php"; if($mybb->settings['mail_handler'] == 'smtp')
|
require_once MYBB_ROOT."inc/class_mailhandler.php"; if($mybb->settings['mail_handler'] == 'smtp')
|
{
| {
|
require_once MYBB_ROOT."inc/mailhandlers/smtp.php"; $mail = new SmtpMail();
|
require_once MYBB_ROOT."inc/mailhandlers/smtp.php"; $mail = new SmtpMail();
|
}
| }
|
else { require_once MYBB_ROOT."inc/mailhandlers/php.php"; $mail = new PhpMail();
|
else { require_once MYBB_ROOT."inc/mailhandlers/php.php"; $mail = new PhpMail();
|
} }
| } }
|
// Using SMTP based mail if($mybb->settings['mail_handler'] == 'smtp') { if($keep_alive == true) { $mail->keep_alive = true;
|
// Using SMTP based mail if($mybb->settings['mail_handler'] == 'smtp') { if($keep_alive == true) { $mail->keep_alive = true;
|
} }
| } }
|
// Using PHP based mail() else {
| // Using PHP based mail() else {
|
Zeile 433 | Zeile 454 |
---|
} // Build and send
|
} // Build and send
|
$mail->build_message($to, $subject, $message, $from, $charset, $headers, $format, $message_text);
| $mail->build_message($to, $subject, $message, $from, $charset, $headers, $format, $message_text, $return_email);
|
return $mail->send(); }
| return $mail->send(); }
|
Zeile 443 | Zeile 464 |
---|
* @return string The generated code */ function generate_post_check()
|
* @return string The generated code */ function generate_post_check()
|
{
| {
|
global $mybb; if($mybb->user['uid']) {
| global $mybb; if($mybb->user['uid']) {
|
Zeile 452 | Zeile 473 |
---|
// Guests get a special string else {
|
// Guests get a special string else {
|
return md5($mybb->config['database']['hostname'].$mybb->config['database']['username'].$mybb->config['database']['password']);
| return md5($mybb->settings['bburl'].$mybb->config['database']['username'].$mybb->settings['internal']['encryption_key']);
|
} }
| } }
|
Zeile 472 | Zeile 493 |
---|
return false; } else
|
return false; } else
|
{ error($lang->invalid_post_code);
| { if(defined("IN_ADMINCP")) { return false; } else { error($lang->invalid_post_code); }
|
} } else
| } } else
|
Zeile 619 | Zeile 647 |
---|
if(!$error) { $error = $lang->unknown_error;
|
if(!$error) { $error = $lang->unknown_error;
|
}
// AJAX error message? if($mybb->input['ajax']) { // Send our headers. @header("Content-type: text/html; charset={$lang->settings['charset']}"); echo "<error>{$error}</error>\n";
| }
// AJAX error message? if($mybb->input['ajax']) { // Send our headers. @header("Content-type: text/html; charset={$lang->settings['charset']}"); echo "<error>{$error}</error>\n";
|
exit; }
| exit; }
|
Zeile 747 | Zeile 775 |
---|
echo "<script type=\"text/javascript\">\n"; if($message != "") {
|
echo "<script type=\"text/javascript\">\n"; if($message != "") {
|
echo "alert('{$message}');\n";
| echo 'alert("'.addslashes($message).'");';
|
} $url = str_replace("#", "&#", $url); $url = htmlspecialchars_decode($url); $url = str_replace(array("\n","\r",";"), "", $url);
|
} $url = str_replace("#", "&#", $url); $url = htmlspecialchars_decode($url); $url = str_replace(array("\n","\r",";"), "", $url);
|
echo "window.location = '{$url}';\n";
| echo 'window.location = "'.addslashes($url).'";'."\n";
|
echo "</script>\n"; exit; }
| echo "</script>\n"; exit; }
|
Zeile 781 | Zeile 809 |
---|
} else {
|
} else {
|
$url = str_replace("#", "&#", $url);
| |
$url = htmlspecialchars_decode($url); $url = str_replace(array("\n","\r",";"), "", $url);
| $url = htmlspecialchars_decode($url); $url = str_replace(array("\n","\r",";"), "", $url);
|
Zeile 972 | Zeile 999 |
---|
function usergroup_permissions($gid=0) { global $cache, $groupscache, $grouppermignore, $groupzerogreater;
|
function usergroup_permissions($gid=0) { global $cache, $groupscache, $grouppermignore, $groupzerogreater;
|
|
|
if(!is_array($groupscache)) { $groupscache = $cache->read("usergroups");
|
if(!is_array($groupscache)) { $groupscache = $cache->read("usergroups");
|
}
| }
|
$groups = explode(",", $gid);
|
$groups = explode(",", $gid);
|
| |
if(count($groups) == 1) {
| if(count($groups) == 1) {
|
Zeile 992 | Zeile 1018 |
---|
{ continue; }
|
{ continue; }
|
|
|
foreach($groupscache[$gid] as $perm => $access) { if(!in_array($perm, $grouppermignore))
| foreach($groupscache[$gid] as $perm => $access) { if(!in_array($perm, $grouppermignore))
|
Zeile 1006 | Zeile 1032 |
---|
$permbit = ""; }
|
$permbit = ""; }
|
if(in_array($perm, $groupzerogreater))
| // 0 represents unlimited for numerical group permissions (i.e. private message limit) so take that into account. if(in_array($perm, $groupzerogreater) && ($access == 0 || $permbit === 0))
|
{
|
{
|
if($access == 0) { $usergroup[$perm] = 0; continue; }
| $usergroup[$perm] = 0; continue;
|
}
if($access > $permbit || ($access == "yes" && $permbit == "no") || !$permbit) // Keep yes/no for compatibility?
| }
if($access > $permbit || ($access == "yes" && $permbit == "no") || !$permbit) // Keep yes/no for compatibility?
|
Zeile 1071 | Zeile 1095 |
---|
if(!$gid || $gid == 0) // If no group, we need to fetch it {
|
if(!$gid || $gid == 0) // If no group, we need to fetch it {
|
if($uid != $mybb->user['uid'])
| if($uid != 0 && $uid != $mybb->user['uid'])
|
{
|
{
|
if($usercache[$uid])
| if(!$usercache[$uid])
|
{ $query = $db->simple_select("users", "*", "uid='$uid'"); $usercache[$uid] = $db->fetch_array($query);
| { $query = $db->simple_select("users", "*", "uid='$uid'"); $usercache[$uid] = $db->fetch_array($query);
|
Zeile 1574 | Zeile 1598 |
---|
$cookie = $mybb->cookies['mybb']; $newcookie = unserialize($cookie[$name]); $newcookie[$id] = $value;
|
$cookie = $mybb->cookies['mybb']; $newcookie = unserialize($cookie[$name]); $newcookie[$id] = $value;
|
$newcookie = addslashes(serialize($newcookie)); my_setcookie("mybb[$name]", $newcookie);
| $newcookie = serialize($newcookie); my_setcookie("mybb[$name]", addslashes($newcookie)); // Make sure our current viarables are up-to-date as well $mybb->cookies['mybb'][$name] = $newcookie;
|
}
/**
| }
/**
|
Zeile 1597 | Zeile 1624 |
---|
$serverload = explode(" ", $load); $serverload[0] = round($serverload[0], 4); }
|
$serverload = explode(" ", $load); $serverload[0] = round($serverload[0], 4); }
|
if(!$serverload)
| if(!is_numeric($serverload[0]))
|
{ if(@ini_get('safe_mode') == 'On') {
| { if(@ini_get('safe_mode') == 'On') {
|
Zeile 1606 | Zeile 1633 |
---|
// Suhosin likes to throw a warning if exec is disabled then die - weird if($func_blacklist = @ini_get('suhosin.executor.func.blacklist'))
|
// Suhosin likes to throw a warning if exec is disabled then die - weird if($func_blacklist = @ini_get('suhosin.executor.func.blacklist'))
|
{
| {
|
if(strpos(",".$func_blacklist.",", 'exec') !== false) { return $lang->unknown;
| if(strpos(",".$func_blacklist.",", 'exec') !== false) { return $lang->unknown;
|
Zeile 1614 | Zeile 1641 |
---|
} // PHP disabled functions? if($func_blacklist = @ini_get('disable_functions'))
|
} // PHP disabled functions? if($func_blacklist = @ini_get('disable_functions'))
|
{
| {
|
if(strpos(",".$func_blacklist.",", 'exec') !== false) { return $lang->unknown;
| if(strpos(",".$func_blacklist.",", 'exec') !== false) { return $lang->unknown;
|
Zeile 1638 | Zeile 1665 |
---|
$returnload = trim($serverload[0]);
return $returnload;
|
$returnload = trim($serverload[0]);
return $returnload;
|
}
| }
|
/** * Updates the forum statistics with specific values (or addition/subtraction of the previous value) *
| /** * Updates the forum statistics with specific values (or addition/subtraction of the previous value) *
|
Zeile 1763 | Zeile 1790 |
---|
else { $new_stats['numthreads'] = "{$threads_diff}";
|
else { $new_stats['numthreads'] = "{$threads_diff}";
|
} }
| } }
|
if(array_key_exists('unapprovedthreads', $update_query)) {
| if(array_key_exists('unapprovedthreads', $update_query)) {
|
Zeile 1853 | Zeile 1880 |
---|
$update_query = array();
|
$update_query = array();
|
$counters = array('replies','unapprovedposts','attachmentcount');
| $counters = array('replies','unapprovedposts','attachmentcount', 'attachmentcount');
|
// Fetch above counters for this thread $query = $db->simple_select("threads", implode(",", $counters), "tid='{$tid}'");
| // Fetch above counters for this thread $query = $db->simple_select("threads", implode(",", $counters), "tid='{$tid}'");
|
Zeile 1879 | Zeile 1906 |
---|
} } }
|
} } }
|
| $db->free_result($query);
|
// Only update if we're actually doing something if(count($update_query) > 0) { $db->update_query("threads", $update_query, "tid='".intval($tid)."'"); }
|
// Only update if we're actually doing something if(count($update_query) > 0) { $db->update_query("threads", $update_query, "tid='".intval($tid)."'"); }
|
| unset($update_query, $thread);
|
update_thread_data($tid);
|
update_thread_data($tid);
|
}
/**
| }
/**
|
* Update the first post and lastpost data for a specific thread * * @param int The thread ID
| * Update the first post and lastpost data for a specific thread * * @param int The thread ID
|
Zeile 1897 | Zeile 1928 |
---|
function update_thread_data($tid) { global $db;
|
function update_thread_data($tid) { global $db;
|
$query = $db->query("
| $query = $db->query("
|
SELECT u.uid, u.username, p.username AS postusername, p.dateline FROM ".TABLE_PREFIX."posts p LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)
| SELECT u.uid, u.username, p.username AS postusername, p.dateline FROM ".TABLE_PREFIX."posts p LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)
|
Zeile 1906 | Zeile 1937 |
---|
LIMIT 1" ); $lastpost = $db->fetch_array($query);
|
LIMIT 1" ); $lastpost = $db->fetch_array($query);
|
| $db->free_result($query);
|
$query = $db->query(" SELECT u.uid, u.username, p.username AS postusername, p.dateline FROM ".TABLE_PREFIX."posts p
| $query = $db->query(" SELECT u.uid, u.username, p.username AS postusername, p.dateline FROM ".TABLE_PREFIX."posts p
|
Zeile 1916 | Zeile 1949 |
---|
LIMIT 1 "); $firstpost = $db->fetch_array($query);
|
LIMIT 1 "); $firstpost = $db->fetch_array($query);
|
| $db->free_result($query);
|
if(!$firstpost['username']) { $firstpost['username'] = $firstpost['postusername'];
|
if(!$firstpost['username']) { $firstpost['username'] = $firstpost['postusername'];
|
}
| }
|
if(!$lastpost['username']) { $lastpost['username'] = $lastpost['postusername'];
| if(!$lastpost['username']) { $lastpost['username'] = $lastpost['postusername'];
|
Zeile 1945 | Zeile 1980 |
---|
'lastposteruid' => intval($lastpost['uid']), ); $db->update_query("threads", $update_array, "tid='{$tid}'");
|
'lastposteruid' => intval($lastpost['uid']), ); $db->update_query("threads", $update_array, "tid='{$tid}'");
|
}
| unset($firstpost, $lastpost, $update_array); }
|
function update_forum_count($fid) { die("Deprecated function call: update_forum_count"); } function update_thread_count($tid)
|
function update_forum_count($fid) { die("Deprecated function call: update_forum_count"); } function update_thread_count($tid)
|
{
| {
|
die("Deprecated function call: update_thread_count");
|
die("Deprecated function call: update_thread_count");
|
}
| }
|
function update_thread_attachment_count($tid) { die("Deprecated function call: update_thread_attachment_count");
|
function update_thread_attachment_count($tid) { die("Deprecated function call: update_thread_attachment_count");
|
}
/**
| }
/**
|
* Deletes a thread from the database * * @param int The thread ID */ function delete_thread($tid)
|
* Deletes a thread from the database * * @param int The thread ID */ function delete_thread($tid)
|
{ global $moderation;
| { global $moderation;
|
if(!is_object($moderation)) { require_once MYBB_ROOT."inc/class_moderation.php";
| if(!is_object($moderation)) { require_once MYBB_ROOT."inc/class_moderation.php";
|
Zeile 1976 | Zeile 2013 |
---|
}
return $moderation->delete_thread($tid);
|
}
return $moderation->delete_thread($tid);
|
}
| }
|
/** * Deletes a post from the database
| /** * Deletes a post from the database
|
Zeile 1991 | Zeile 2028 |
---|
{ require_once MYBB_ROOT."inc/class_moderation.php"; $moderation = new Moderation;
|
{ require_once MYBB_ROOT."inc/class_moderation.php"; $moderation = new Moderation;
|
}
| }
|
return $moderation->delete_post($pid); }
| return $moderation->delete_post($pid); }
|
Zeile 2004 | Zeile 2041 |
---|
* @param int If we need to add select boxes to this cal or not * @param int The current depth of forums we're at * @param int Whether or not to show extra items such as User CP, Forum home
|
* @param int If we need to add select boxes to this cal or not * @param int The current depth of forums we're at * @param int Whether or not to show extra items such as User CP, Forum home
|
| * @param boolean Ignore the showinjump setting and show all forums (for moderation pages)
|
* @param array Array of permissions * @param string The name of the forum jump * @return string Forum jump items */
|
* @param array Array of permissions * @param string The name of the forum jump * @return string Forum jump items */
|
function build_forum_jump($pid="0", $selitem="", $addselect="1", $depth="", $showextras="1", $permissions="", $name="fid")
| function build_forum_jump($pid="0", $selitem="", $addselect="1", $depth="", $showextras="1", $showall=false, $permissions="", $name="fid")
|
{ global $forum_cache, $jumpfcache, $permissioncache, $mybb, $selecteddone, $forumjump, $forumjumpbits, $gobutton, $theme, $templates, $lang;
$pid = intval($pid);
if($permissions)
|
{ global $forum_cache, $jumpfcache, $permissioncache, $mybb, $selecteddone, $forumjump, $forumjumpbits, $gobutton, $theme, $templates, $lang;
$pid = intval($pid);
if($permissions)
|
{
| {
|
$permissions = $mybb->usergroup; }
| $permissions = $mybb->usergroup; }
|
Zeile 2031 | Zeile 2069 |
---|
if($forum['active'] != 0) { $jumpfcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
|
if($forum['active'] != 0) { $jumpfcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
|
}
| }
|
} }
|
} }
|
if(!is_array($permissioncache)) { $permissioncache = forum_permissions(); }
| if(!is_array($permissioncache)) { $permissioncache = forum_permissions(); }
|
if(is_array($jumpfcache[$pid])) { foreach($jumpfcache[$pid] as $main)
| if(is_array($jumpfcache[$pid])) { foreach($jumpfcache[$pid] as $main)
|
Zeile 2048 | Zeile 2086 |
---|
{ $perms = $permissioncache[$forum['fid']];
|
{ $perms = $permissioncache[$forum['fid']];
|
if($forum['fid'] != "0" && ($perms['canview'] != 0 || $mybb->settings['hideprivateforums'] == 0) && $forum['linkto'] == '' && $forum['showinjump'] != 0)
| if($forum['fid'] != "0" && ($perms['canview'] != 0 || $mybb->settings['hideprivateforums'] == 0) && $forum['linkto'] == '' && ($forum['showinjump'] != 0 || $showall == true))
|
{ $optionselected = "";
| { $optionselected = "";
|
Zeile 2065 | Zeile 2103 |
---|
if($forum_cache[$forum['fid']]) { $newdepth = $depth."--";
|
if($forum_cache[$forum['fid']]) { $newdepth = $depth."--";
|
$forumjumpbits .= build_forum_jump($forum['fid'], $selitem, 0, $newdepth, $showextras);
| $forumjumpbits .= build_forum_jump($forum['fid'], $selitem, 0, $newdepth, $showextras, $showall);
|
} } }
| } } }
|
Zeile 2079 | Zeile 2117 |
---|
if(!$selitem) { $selitem = "default";
|
if(!$selitem) { $selitem = "default";
|
}
| }
|
$jumpsel[$selitem] = 'selected="selected"'; }
| $jumpsel[$selitem] = 'selected="selected"'; }
|
Zeile 2097 | Zeile 2135 |
---|
}
return $forumjump;
|
}
return $forumjump;
|
}
/**
| }
/**
|
* Returns the extension of a file. * * @param string The filename.
| * Returns the extension of a file. * * @param string The filename.
|
Zeile 2108 | Zeile 2146 |
---|
function get_extension($file) { return my_strtolower(my_substr(strrchr($file, "."), 1));
|
function get_extension($file) { return my_strtolower(my_substr(strrchr($file, "."), 1));
|
}
| }
|
/** * Generates a random string.
| /** * Generates a random string.
|
Zeile 2157 | Zeile 2195 |
---|
$userin = substr_count($format, "{username}");
if($userin == 0)
|
$userin = substr_count($format, "{username}");
if($userin == 0)
|
{
| {
|
$format = "{username}"; }
| $format = "{username}"; }
|
Zeile 2216 | Zeile 2254 |
---|
$plugins->run_hooks_by_ref("mycode_add_codebuttons", $editor_lang_strings);
foreach($editor_lang_strings as $key => $lang_string)
|
$plugins->run_hooks_by_ref("mycode_add_codebuttons", $editor_lang_strings);
foreach($editor_lang_strings as $key => $lang_string)
|
{
| {
|
// Strip initial editor_ off language string if it exists - ensure case sensitivity does not matter. $js_lang_string = preg_replace("#^editor_#i", "", $lang_string); $string = str_replace("\"", "\\\"", $lang->$lang_string);
| // Strip initial editor_ off language string if it exists - ensure case sensitivity does not matter. $js_lang_string = preg_replace("#^editor_#i", "", $lang_string); $string = str_replace("\"", "\\\"", $lang->$lang_string);
|
Zeile 2226 | Zeile 2264 |
---|
{ $editor_language .= ","; }
|
{ $editor_language .= ","; }
|
|
|
$editor_language .= "\n";
|
$editor_language .= "\n";
|
}
| }
|
$editor_language .= "};";
if(defined("IN_ADMINCP")) { global $page; $codeinsert = $page->build_codebuttons_editor($bind, $editor_language);
|
$editor_language .= "};";
if(defined("IN_ADMINCP")) { global $page; $codeinsert = $page->build_codebuttons_editor($bind, $editor_language);
|
}
| }
|
else { eval("\$codeinsert = \"".$templates->get("codebuttons")."\";");
| else { eval("\$codeinsert = \"".$templates->get("codebuttons")."\";");
|
Zeile 2473 | Zeile 2511 |
---|
else { $display_reputation .= "reputation_neutral";
|
else { $display_reputation .= "reputation_neutral";
|
}
| }
|
$display_reputation .= "\">{$reputation}</strong>";
| $display_reputation .= "\">{$reputation}</strong>";
|
Zeile 2492 | Zeile 2530 |
---|
* @return string Formatted warning level */ function get_colored_warning_level($level)
|
* @return string Formatted warning level */ function get_colored_warning_level($level)
|
{
| {
|
if($level >= 80)
|
if($level >= 80)
|
{
| {
|
return "<span class=\"high_warning\">{$level}%</span>";
|
return "<span class=\"high_warning\">{$level}%</span>";
|
}
| }
|
else if($level >= 50) { return "<span class=\"moderate_warning\">{$level}%</span>"; } else if($level >= 25)
|
else if($level >= 50) { return "<span class=\"moderate_warning\">{$level}%</span>"; } else if($level >= 25)
|
{
| {
|
return "<span class=\"low_warning\">{$level}%</span>"; } else
| return "<span class=\"low_warning\">{$level}%</span>"; } else
|
Zeile 2521 | Zeile 2559 |
---|
if(isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR'];
|
if(isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR'];
|
}
| }
|
elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { if(preg_match_all("#[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}#s", $_SERVER['HTTP_X_FORWARDED_FOR'], $addresses))
| elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { if(preg_match_all("#[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}#s", $_SERVER['HTTP_X_FORWARDED_FOR'], $addresses))
|
Zeile 2551 | Zeile 2589 |
---|
$ip = preg_replace("#([^.0-9 ]*)#", "", $ip); return $ip;
|
$ip = preg_replace("#([^.0-9 ]*)#", "", $ip); return $ip;
|
}
| }
|
/** * Fetch the friendly size (GB, MB, KB, B) for a specified file size. *
| /** * Fetch the friendly size (GB, MB, KB, B) for a specified file size. *
|
Zeile 2562 | Zeile 2600 |
---|
function get_friendly_size($size) { global $lang;
|
function get_friendly_size($size) { global $lang;
|
|
|
if(!is_numeric($size))
|
if(!is_numeric($size))
|
{
| {
|
return $lang->na;
|
return $lang->na;
|
}
| }
|
// Yottabyte (1024 Zettabytes) if($size >= 1208925819614629174706176) { $size = my_number_format(round(($size / 1208925819614629174706176), 2))." ".$lang->size_yb;
|
// Yottabyte (1024 Zettabytes) if($size >= 1208925819614629174706176) { $size = my_number_format(round(($size / 1208925819614629174706176), 2))." ".$lang->size_yb;
|
}
| }
|
// Zetabyte (1024 Exabytes) elseif($size >= 1180591620717411303424)
|
// Zetabyte (1024 Exabytes) elseif($size >= 1180591620717411303424)
|
{
| {
|
$size = my_number_format(round(($size / 1180591620717411303424), 2))." ".$lang->size_zb; } // Exabyte (1024 Petabytes) elseif($size >= 1152921504606846976) { $size = my_number_format(round(($size / 1152921504606846976), 2))." ".$lang->size_eb;
|
$size = my_number_format(round(($size / 1180591620717411303424), 2))." ".$lang->size_zb; } // Exabyte (1024 Petabytes) elseif($size >= 1152921504606846976) { $size = my_number_format(round(($size / 1152921504606846976), 2))." ".$lang->size_eb;
|
}
| }
|
// Petabyte (1024 Terabytes) elseif($size >= 1125899906842624)
|
// Petabyte (1024 Terabytes) elseif($size >= 1125899906842624)
|
{
| {
|
$size = my_number_format(round(($size / 1125899906842624), 2))." ".$lang->size_pb; } // Terabyte (1024 Gigabytes) elseif($size >= 1099511627776) { $size = my_number_format(round(($size / 1099511627776), 2))." ".$lang->size_tb;
|
$size = my_number_format(round(($size / 1125899906842624), 2))." ".$lang->size_pb; } // Terabyte (1024 Gigabytes) elseif($size >= 1099511627776) { $size = my_number_format(round(($size / 1099511627776), 2))." ".$lang->size_tb;
|
}
| }
|
// Gigabyte (1024 Megabytes) elseif($size >= 1073741824)
|
// Gigabyte (1024 Megabytes) elseif($size >= 1073741824)
|
{
| {
|
$size = my_number_format(round(($size / 1073741824), 2))." ".$lang->size_gb; } // Megabyte (1024 Kilobytes) elseif($size >= 1048576) { $size = my_number_format(round(($size / 1048576), 2))." ".$lang->size_mb;
|
$size = my_number_format(round(($size / 1073741824), 2))." ".$lang->size_gb; } // Megabyte (1024 Kilobytes) elseif($size >= 1048576) { $size = my_number_format(round(($size / 1048576), 2))." ".$lang->size_mb;
|
}
| }
|
// Kilobyte (1024 bytes) elseif($size >= 1024) {
| // Kilobyte (1024 bytes) elseif($size >= 1024) {
|
Zeile 2631 | Zeile 2669 |
---|
global $cache, $attachtypes, $theme;
if(!$attachtypes)
|
global $cache, $attachtypes, $theme;
if(!$attachtypes)
|
{
| {
|
$attachtypes = $cache->read("attachtypes"); }
| $attachtypes = $cache->read("attachtypes"); }
|
Zeile 2651 | Zeile 2689 |
---|
{ global $change_dir; $icon = $change_dir."/".str_replace("{theme}", $theme['imgdir'], $attachtypes[$ext]['icon']);
|
{ global $change_dir; $icon = $change_dir."/".str_replace("{theme}", $theme['imgdir'], $attachtypes[$ext]['icon']);
|
}
| }
|
else
|
else
|
{
| {
|
$icon = str_replace("{theme}", $theme['imgdir'], $attachtypes[$ext]['icon']); } return "<img src=\"{$icon}\" border=\"0\" alt=\".{$ext}\" />";
| $icon = str_replace("{theme}", $theme['imgdir'], $attachtypes[$ext]['icon']); } return "<img src=\"{$icon}\" border=\"0\" alt=\".{$ext}\" />";
|
Zeile 2661 | Zeile 2699 |
---|
else { if(defined("IN_ADMINCP"))
|
else { if(defined("IN_ADMINCP"))
|
{
| {
|
$theme['imgdir'] = "../images"; } else if(defined("IN_PORTAL"))
| $theme['imgdir'] = "../images"; } else if(defined("IN_PORTAL"))
|
Zeile 2689 | Zeile 2727 |
---|
if(!$permissions) { $permissions = $mybb->usergroup;
|
if(!$permissions) { $permissions = $mybb->usergroup;
|
}
| }
|
if(!is_array($forum_cache))
|
if(!is_array($forum_cache))
|
{
| {
|
cache_forums();
|
cache_forums();
|
}
| }
|
if(!is_array($permissioncache)) { $permissioncache = forum_permissions(); }
|
if(!is_array($permissioncache)) { $permissioncache = forum_permissions(); }
|
|
|
foreach($forum_cache as $fid => $forum) { if($permissioncache[$forum['fid']])
|
foreach($forum_cache as $fid => $forum) { if($permissioncache[$forum['fid']])
|
{
| {
|
$perms = $permissioncache[$forum['fid']];
|
$perms = $permissioncache[$forum['fid']];
|
}
| }
|
else { $perms = $mybb->usergroup;
|
else { $perms = $mybb->usergroup;
|
}
$pwverified = 1;
| }
$pwverified = 1;
|
if($forum['password'] != "") {
| if($forum['password'] != "") {
|
Zeile 2730 | Zeile 2768 |
---|
}
$unviewableforums .= "'".$forum['fid']."'";
|
}
$unviewableforums .= "'".$forum['fid']."'";
|
} }
| } }
|
return $unviewableforums; }
| return $unviewableforums; }
|
Zeile 2742 | Zeile 2780 |
---|
* @param string The date format to use * @param int The year of the date * @return string The correct date format
|
* @param string The date format to use * @param int The year of the date * @return string The correct date format
|
*/
| */
|
function fix_mktime($format, $year) { // Our little work around for the date < 1970 thing.
| function fix_mktime($format, $year) { // Our little work around for the date < 1970 thing.
|
Zeile 2752 | Zeile 2790 |
---|
return $format; }
|
return $format; }
|
|
|
/** * Build the breadcrumb navigation trail from the specified items *
| /** * Build the breadcrumb navigation trail from the specified items *
|
Zeile 2772 | Zeile 2810 |
---|
if(isset($navbits[$key+1])) { if(isset($navbits[$key+2]))
|
if(isset($navbits[$key+1])) { if(isset($navbits[$key+2]))
|
{
| {
|
$sep = $navsep; } else
| $sep = $navsep; } else
|
Zeile 2791 | Zeile 2829 |
---|
if($nav) { eval("\$activesep = \"".$templates->get("nav_sep_active")."\";");
|
if($nav) { eval("\$activesep = \"".$templates->get("nav_sep_active")."\";");
|
}
| }
|
eval("\$activebit = \"".$templates->get("nav_bit_active")."\";"); eval("\$donenav = \"".$templates->get("nav")."\";");
| eval("\$activebit = \"".$templates->get("nav_bit_active")."\";"); eval("\$donenav = \"".$templates->get("nav")."\";");
|
Zeile 2822 | Zeile 2860 |
---|
function build_forum_breadcrumb($fid) { global $pforumcache, $currentitem, $forum_cache, $navbits, $lang, $base_url, $archiveurl;
|
function build_forum_breadcrumb($fid) { global $pforumcache, $currentitem, $forum_cache, $navbits, $lang, $base_url, $archiveurl;
|
|
|
if(!$pforumcache) { if(!is_array($forum_cache))
| if(!$pforumcache) { if(!is_array($forum_cache))
|
Zeile 2848 | Zeile 2886 |
---|
}
$navsize = count($navbits);
|
}
$navsize = count($navbits);
|
$navbits[$navsize]['name'] = $forumnav['name'];
| $navbits[$navsize]['name'] = htmlspecialchars_uni($forumnav['name']);
|
if(IN_ARCHIVE == 1) {
| if(IN_ARCHIVE == 1) {
|
Zeile 2871 | Zeile 2909 |
---|
}
return 1;
|
}
return 1;
|
}
| }
|
/** * Resets the breadcrumb navigation to the first item, and clears the rest */
| /** * Resets the breadcrumb navigation to the first item, and clears the rest */
|
Zeile 2882 | Zeile 2920 |
---|
$newnav[0]['name'] = $navbits[0]['name']; $newnav[0]['url'] = $navbits[0]['url'];
|
$newnav[0]['name'] = $navbits[0]['name']; $newnav[0]['url'] = $navbits[0]['url'];
|
|
|
unset($GLOBALS['navbits']); $GLOBALS['navbits'] = $newnav; }
| unset($GLOBALS['navbits']); $GLOBALS['navbits'] = $newnav; }
|
Zeile 2902 | Zeile 2940 |
---|
if((DIRECTORY_SEPARATOR == '\\' && is_numeric(stripos($_SERVER['SERVER_SOFTWARE'], "apache")) == false) || is_numeric(stripos(SAPI_NAME, "cgi")) !== false || defined("ARCHIVE_QUERY_STRINGS")) { $base_url = $mybb->settings['bburl']."/archive/index.php?";
|
if((DIRECTORY_SEPARATOR == '\\' && is_numeric(stripos($_SERVER['SERVER_SOFTWARE'], "apache")) == false) || is_numeric(stripos(SAPI_NAME, "cgi")) !== false || defined("ARCHIVE_QUERY_STRINGS")) { $base_url = $mybb->settings['bburl']."/archive/index.php?";
|
}
| }
|
else
|
else
|
{
| {
|
$base_url = $mybb->settings['bburl']."/archive/index.php/"; }
| $base_url = $mybb->settings['bburl']."/archive/index.php/"; }
|
Zeile 2912 | Zeile 2950 |
---|
{ case "thread": $url = "{$base_url}thread-{$id}.html";
|
{ case "thread": $url = "{$base_url}thread-{$id}.html";
|
break;
| break;
|
case "announcement": $url = "{$base_url}announcement-{$id}.html"; break;
| case "announcement": $url = "{$base_url}announcement-{$id}.html"; break;
|
Zeile 2920 | Zeile 2958 |
---|
$url = "{$base_url}forum-{$id}.html"; break; default:
|
$url = "{$base_url}forum-{$id}.html"; break; default:
|
$url = $mybb->setings['bburl']."/archive/index.php";
| $url = $mybb->settings['bburl']."/archive/index.php";
|
}
return $url;
| }
return $url;
|
Zeile 2951 | Zeile 2989 |
---|
else { $gzipen = "Disabled";
|
else { $gzipen = "Disabled";
|
}
| }
|
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">"; echo "<head>";
| echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">"; echo "<head>";
|
Zeile 2988 | Zeile 3026 |
---|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$phpversion</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">Server Load:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$serverload</font></td>\n";
|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$phpversion</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">Server Load:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$serverload</font></td>\n";
|
echo "</tr>\n";
| echo "</tr>\n";
|
echo "<tr>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">GZip Encoding Status:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$gzipen</font></td>\n";
| echo "<tr>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">GZip Encoding Status:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$gzipen</font></td>\n";
|
Zeile 3007 | Zeile 3045 |
---|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">{$memory_limit}</font></td>\n"; echo "</tr>\n"; }
|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">{$memory_limit}</font></td>\n"; echo "</tr>\n"; }
|
echo "</table>\n";
| echo "</table>\n";
|
echo "<h2>Database Connections (".count($db->connections)." Total) </h2>\n"; echo "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n"; echo "<tr>\n";
| echo "<h2>Database Connections (".count($db->connections)." Total) </h2>\n"; echo "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n"; echo "<tr>\n";
|
Zeile 3017 | Zeile 3055 |
---|
echo "</tr>\n"; echo "</table>\n"; echo "<br />\n";
|
echo "</tr>\n"; echo "</table>\n"; echo "<br />\n";
|
|
|
echo "<h2>Database Queries (".$db->query_count." Total) </h2>\n"; echo $db->explain; echo "<h2>Template Statistics</h2>\n";
| echo "<h2>Database Queries (".$db->query_count." Total) </h2>\n"; echo $db->explain; echo "<h2>Template Statistics</h2>\n";
|
Zeile 3025 | Zeile 3063 |
---|
if(count($templates->cache) > 0) { echo "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n";
|
if(count($templates->cache) > 0) { echo "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n";
|
echo "<tr>\n";
| echo "<tr>\n";
|
echo "<td style=\"background-color: #ccc;\"><strong>Templates Used (Loaded for this Page) - ".count($templates->cache)." Total</strong></td>\n";
|
echo "<td style=\"background-color: #ccc;\"><strong>Templates Used (Loaded for this Page) - ".count($templates->cache)." Total</strong></td>\n";
|
echo "</tr>\n"; echo "<tr>\n"; echo "<td style=\"background: #fff;\">".implode(", ", array_keys($templates->cache))."</td>\n"; echo "</tr>\n"; echo "</table>\n";
| echo "</tr>\n"; echo "<tr>\n"; echo "<td style=\"background: #fff;\">".implode(", ", array_keys($templates->cache))."</td>\n"; echo "</tr>\n"; echo "</table>\n";
|
echo "<br />\n"; }
| echo "<br />\n"; }
|
Zeile 3062 | Zeile 3100 |
---|
if($mybb->settings['nocacheheaders'] == 1 && $mybb->settings['standardheaders'] != 1) { header("Expires: Sat, 1 Jan 2000 01:00:00 GMT");
|
if($mybb->settings['nocacheheaders'] == 1 && $mybb->settings['standardheaders'] != 1) { header("Expires: Sat, 1 Jan 2000 01:00:00 GMT");
|
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
| header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); }
| header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); }
|
Zeile 3189 | Zeile 3227 |
---|
else if($years > 1) { $nicetime['years'] = $years.$lang_years;
|
else if($years > 1) { $nicetime['years'] = $years.$lang_years;
|
}
| }
|
if($months == 1) { $nicetime['months'] = "1".$lang_month;
| if($months == 1) { $nicetime['months'] = "1".$lang_month;
|
Zeile 3210 | Zeile 3248 |
---|
}
if($days == 1)
|
}
if($days == 1)
|
{
| {
|
$nicetime['days'] = "1".$lang_day; } else if($days > 1)
| $nicetime['days'] = "1".$lang_day; } else if($days > 1)
|
Zeile 3239 | Zeile 3277 |
---|
else if($minutes > 1) { $nicetime['minutes'] = $minutes.$lang_minutes;
|
else if($minutes > 1) { $nicetime['minutes'] = $minutes.$lang_minutes;
|
} }
| } }
|
if($options['seconds'] !== false) {
| if($options['seconds'] !== false) {
|
Zeile 3269 | Zeile 3307 |
---|
function alt_trow($reset=0) { global $alttrow;
|
function alt_trow($reset=0) { global $alttrow;
|
|
|
if($alttrow == "trow1" && !$reset)
|
if($alttrow == "trow1" && !$reset)
|
{
| {
|
$trow = "trow2";
|
$trow = "trow2";
|
}
| }
|
else { $trow = "trow1";
|
else { $trow = "trow1";
|
}
$alttrow = $trow;
| }
$alttrow = $trow;
|
return $trow; }
| return $trow; }
|
Zeile 3289 | Zeile 3327 |
---|
* * @param int The user ID * @param int The user group ID to join
|
* * @param int The user ID * @param int The user group ID to join
|
*/
| */
|
function join_usergroup($uid, $joingroup)
|
function join_usergroup($uid, $joingroup)
|
{ global $db;
if($uid == $mybb->user['uid']) { $user = $mybb->user; } else { $query = $db->simple_select("users", "additionalgroups, usergroup", "uid='{$uid}'");
| { global $db, $mybb;
if($uid == $mybb->user['uid']) { $user = $mybb->user; } else { $query = $db->simple_select("users", "additionalgroups, usergroup", "uid='".intval($uid)."'");
|
$user = $db->fetch_array($query); }
| $user = $db->fetch_array($query); }
|
Zeile 3309 | Zeile 3347 |
---|
$usergroups = $user['additionalgroups'].",".$joingroup; $groupslist = ""; $groups = explode(",", $usergroups);
|
$usergroups = $user['additionalgroups'].",".$joingroup; $groupslist = ""; $groups = explode(",", $usergroups);
|
if(is_array($groups))
| if(is_array($groups))
|
{ foreach($groups as $gid) {
| { foreach($groups as $gid) {
|
Zeile 3323 | Zeile 3361 |
---|
} }
|
} }
|
$db->update_query("users", array('additionalgroups' => $groupslist), "uid='$uid'");
| // What's the point in updating if they're the same? if($groupslist != $user['additionalgroups']) { $db->update_query("users", array('additionalgroups' => $groupslist), "uid='".intval($uid)."'"); return true; } else { return false; }
|
}
/**
| }
/**
|
Zeile 3342 | Zeile 3389 |
---|
} else {
|
} else {
|
$query = $db->simple_select("users", "*", "uid='{$uid}'");
| $query = $db->simple_select("users", "*", "uid='".intval($uid)."'");
|
$user = $db->fetch_array($query); }
|
$user = $db->fetch_array($query); }
|
| $groupslist = "";
|
$usergroups = ""; $usergroups = $user['additionalgroups'].",";
|
$usergroups = ""; $usergroups = $user['additionalgroups'].",";
|
|
|
$groups = explode(",", $user['additionalgroups']);
|
$groups = explode(",", $user['additionalgroups']);
|
|
|
if(is_array($groups)) { foreach($groups as $gid)
| if(is_array($groups)) { foreach($groups as $gid)
|
Zeile 3360 | Zeile 3408 |
---|
$groupslist .= $comma.$gid; $comma = ","; $donegroup[$gid] = 1;
|
$groupslist .= $comma.$gid; $comma = ","; $donegroup[$gid] = 1;
|
}
| }
|
} }
|
} }
|
| $dispupdate = "";
|
if($leavegroup == $user['displaygroup']) { $dispupdate = ", displaygroup=usergroup";
| if($leavegroup == $user['displaygroup']) { $dispupdate = ", displaygroup=usergroup";
|
Zeile 3372 | Zeile 3421 |
---|
$db->write_query(" UPDATE ".TABLE_PREFIX."users SET additionalgroups='$groupslist' $dispupdate
|
$db->write_query(" UPDATE ".TABLE_PREFIX."users SET additionalgroups='$groupslist' $dispupdate
|
WHERE uid='$uid'
| WHERE uid='".intval($uid)."'
|
"); $cache->update_moderators();
| "); $cache->update_moderators();
|
Zeile 3390 | Zeile 3439 |
---|
if(defined("MYBB_LOCATION")) { return MYBB_LOCATION;
|
if(defined("MYBB_LOCATION")) { return MYBB_LOCATION;
|
}
| }
|
if(!empty($_SERVER['PATH_INFO'])) {
|
if(!empty($_SERVER['PATH_INFO'])) {
|
$location = $_SERVER['PATH_INFO'];
| $location = htmlspecialchars_uni($_SERVER['PATH_INFO']);
|
} elseif(!empty($_ENV['PATH_INFO'])) {
|
} elseif(!empty($_ENV['PATH_INFO'])) {
|
$location = $_ENV['PATH_INFO'];
| $location = htmlspecialchars_uni($_ENV['PATH_INFO']);
|
} elseif(!empty($_ENV['PHP_SELF'])) {
|
} elseif(!empty($_ENV['PHP_SELF'])) {
|
$location = $_ENV['PHP_SELF'];
| $location = htmlspecialchars_uni($_ENV['PHP_SELF']);
|
} else {
|
} else {
|
$location = $_SERVER['PHP_SELF'];
| $location = htmlspecialchars_uni($_SERVER['PHP_SELF']);
|
}
if($fields == true)
| }
if($fields == true)
|
Zeile 3435 | Zeile 3484 |
---|
} return array('location' => $location, 'form_html' => $form_html, 'form_method' => $mybb->request_method);
|
} return array('location' => $location, 'form_html' => $form_html, 'form_method' => $mybb->request_method);
|
}
| }
|
else { if(isset($_SERVER['QUERY_STRING'])) {
|
else { if(isset($_SERVER['QUERY_STRING'])) {
|
$location .= "?".$_SERVER['QUERY_STRING'];
| $location .= "?".htmlspecialchars_uni($_SERVER['QUERY_STRING']);
|
} else if(isset($_ENV['QUERY_STRING'])) {
|
} else if(isset($_ENV['QUERY_STRING'])) {
|
$location = "?".$_ENV['QUERY_STRING'];
| $location .= "?".htmlspecialchars_uni($_ENV['QUERY_STRING']);
|
} if((isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST") || (isset($_ENV['REQUEST_METHOD']) && $_ENV['REQUEST_METHOD'] == "POST"))
| } if((isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST") || (isset($_ENV['REQUEST_METHOD']) && $_ENV['REQUEST_METHOD'] == "POST"))
|
Zeile 3452 | Zeile 3501 |
---|
$post_array = array('action', 'fid', 'pid', 'tid', 'uid', 'eid'); foreach($post_array as $var)
|
$post_array = array('action', 'fid', 'pid', 'tid', 'uid', 'eid'); foreach($post_array as $var)
|
{
| {
|
if(isset($_POST[$var])) {
|
if(isset($_POST[$var])) {
|
$addloc[] = $var.'='.$_POST[$var];
| $addloc[] = urlencode($var).'='.urlencode($_POST[$var]); } } if(isset($addloc) && is_array($addloc)) { if(strpos($location, "?") === false) { $location .= "?"; } else { $location .= "&";
|
}
|
}
|
} if(isset($addlock) && is_array($addloc)) { $location .= "?".implode("&", $addloc);
| $location .= implode("&", $addloc);
|
} }
|
} }
|
| |
return $location; }
| return $location; }
|
Zeile 3608 | Zeile 3664 |
---|
}
return number_format($number, $decimals, $mybb->settings['decpoint'], $mybb->settings['thousandssep']);
|
}
return number_format($number, $decimals, $mybb->settings['decpoint'], $mybb->settings['thousandssep']);
|
| } }
function convert_through_utf8($str, $to=true) { global $lang; static $charset; static $use_mb; static $use_iconv; if(!isset($charset)) { $charset = my_strtolower($lang->settings['charset']); } if($charset == "utf-8") { return $str; } if(!isset($use_iconv)) { $use_iconv = function_exists("iconv"); } if(!isset($use_mb)) { $use_mb = function_exists("mb_convert_encoding"); } if($use_iconv || $use_mb) { if($to) { $from_charset = $lang->settings['charset']; $to_charset = "UTF-8"; } else { $from_charset = "UTF-8"; $to_charset = $lang->settings['charset']; } if($use_iconv) { return iconv($from_charset, $to_charset."//IGNORE", $str); } else { return @mb_convert_encoding($str, $to_charset, $from_charset); } } elseif($charset == "iso-8859-1" && function_exists("utf8_encode")) { if($to) { return utf8_encode($str); } else { return utf8_decode($str); } } else { return $str;
|
} }
| } }
|
Zeile 3623 | Zeile 3744 |
---|
if($mybb->settings['wordwrap'] > 0) {
|
if($mybb->settings['wordwrap'] > 0) {
|
if($mybb->config['db_encoding'] == "utf8" && !preg_match("#[\x80-\xFF]#", $message))
| $message = convert_through_utf8($message); if(!($new_message = @preg_replace("#(?>[^\s&/<>\"\\-\.\[\]]{{$mybb->settings['wordwrap']}})#u", "$0​", $message)))
|
{
|
{
|
$message = preg_replace("#(?>[^\s&/<>\"\\-\.\[\]]{{$mybb->settings['wordwrap']}})#u", "$0 ", $message); } else { $message = preg_replace("#(?>[^\s&/<>\"\\-\.\[\]]{{$mybb->settings['wordwrap']}})#", "$0 ", $message);
| $new_message = preg_replace("#(?>[^\s&/<>\"\\-\.\[\]]{{$mybb->settings['wordwrap']}})#", "$0​", $message);
|
}
|
}
|
| $new_message = convert_through_utf8($new_message, false); return $new_message;
|
}
return $message;
| }
return $message;
|
Zeile 3742 | Zeile 3865 |
---|
$find = array( 'm', 'd',
|
$find = array( 'm', 'd',
|
| 'D',
|
'y', 'Y', 'j', 'S', 'l', 'F',
|
'y', 'Y', 'j', 'S', 'l', 'F',
|
| 'M',
|
);
$replace = array( sprintf('%02s', $bm), sprintf('%02s', $bd),
|
);
$replace = array( sprintf('%02s', $bm), sprintf('%02s', $bd),
|
| ($wd == 2 ? my_substr($bdays[$wd], 0, 4) : ($wd == 4 ? my_substr($bdays[$wd], 0, 5) : my_substr($bdays[$wd], 0, 3))),
|
my_substr($by, 2), $by, ($bd[0] == 0 ? my_substr($bd, 1) : $bd),
|
my_substr($by, 2), $by, ($bd[0] == 0 ? my_substr($bd, 1) : $bd),
|
($db == 1 || $db == 21 || $db == 31 ? 'st' : ($db == 2 || $db == 22 ? 'nd' : ($db == 3 || $db == 23 ? 'rd' : 'th'))), $bdays[$wd],
| ($bd == 1 || $bd == 21 || $bd == 31 ? 'st' : ($bd == 2 || $bd == 22 ? 'nd' : ($bd == 3 || $bd == 23 ? 'rd' : 'th'))), $wd,
|
$bmonth[$bm-1],
|
$bmonth[$bm-1],
|
| ($bm == 9 ? my_substr($bmonth[$bm-1], 0, 4) : my_substr($bmonth[$bm-1], 0, 3)),
|
);
|
);
|
| // Do we have the full month in our output? // If so there's no need for the short month if(strpos($display, 'F') !== false) { array_pop($find); array_pop($replace); }
|
return str_replace($find, $replace, $display); }
| return str_replace($find, $replace, $display); }
|
Zeile 3798 | Zeile 3933 |
---|
{ global $db;
|
{ global $db;
|
$query = $db->simple_select("posts", "pid", "tid='{$tid}'", array('order_by' => 'dateline', 'limit' => 1));
| $query = $db->simple_select("posts", "pid,replyto", "tid='{$tid}'", array('order_by' => 'dateline', 'limit' => 1));
|
$post = $db->fetch_array($query);
if($post['replyto'] != 0)
| $post = $db->fetch_array($query);
if($post['replyto'] != 0)
|
Zeile 3806 | Zeile 3941 |
---|
$replyto_update = array( "replyto" => 0 );
|
$replyto_update = array( "replyto" => 0 );
|
$db->update_query("threads", $replyto_update, "pid='{$post['pid']}'");
| $db->update_query("posts", $replyto_update, "pid='{$post['pid']}'");
|
}
$firstpostup = array(
| }
$firstpostup = array(
|
Zeile 3825 | Zeile 3960 |
---|
{ global $lang;
|
{ global $lang;
|
$string = preg_replace("#&\#(0-9]+);#", "-", $string);
| $string = preg_replace("#&\#([0-9]+);#", "-", $string);
|
if(strtolower($lang->settings['charset']) == "utf-8") {
| if(strtolower($lang->settings['charset']) == "utf-8") {
|
Zeile 3835 | Zeile 3970 |
---|
// Remove dodgy whitespaces $string = str_replace(chr(0xCA), "", $string);
|
// Remove dodgy whitespaces $string = str_replace(chr(0xCA), "", $string);
|
$string = str_replace(" ", " ", $string);
| |
} $string = trim($string);
| } $string = trim($string);
|
Zeile 3923 | Zeile 4057 |
---|
* @param string What to look for (needle) * @param int (optional) How much to offset * @return int false on needle not found, integer position if found
|
* @param string What to look for (needle) * @param int (optional) How much to offset * @return int false on needle not found, integer position if found
|
*/
| */
|
function my_strpos($haystack, $needle, $offset=0) { if($needle == '')
| function my_strpos($haystack, $needle, $offset=0) { if($needle == '')
|
Zeile 3941 | Zeile 4075 |
---|
}
return $position;
|
}
return $position;
|
}
/**
| }
/**
|
* ups the case of a string, mb strings accounted for * * @param string The string to up.
| * ups the case of a string, mb strings accounted for * * @param string The string to up.
|
Zeile 3961 | Zeile 4095 |
---|
}
return $string;
|
}
return $string;
|
}
/**
| }
/**
|
* Returns any html entities to their original character * * @param string The string to un-htmlentitize. * @return int The un-htmlentitied' string. */ function unhtmlentities($string)
|
* Returns any html entities to their original character * * @param string The string to un-htmlentitize. * @return int The un-htmlentitied' string. */ function unhtmlentities($string)
|
{ // Replace numeric entities $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string); $string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
// Replace literal entities $trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl); }
| { // Replace numeric entities $string = preg_replace('~&#x([0-9a-f]+);~ei', 'unichr(hexdec("\\1"))', $string); $string = preg_replace('~&#([0-9]+);~e', 'unichr("\\1")', $string); // Replace literal entities $trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl); return strtr($string, $trans_tbl); }
/** * Returns any ascii to it's character (utf-8 safe). * * @param string The ascii to characterize. * @return int The characterized ascii. */ function unichr($c) { if($c <= 0x7F) { return chr($c); } else if($c <= 0x7FF) { return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F); } else if($c <= 0xFFFF) { return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F) . chr(0x80 | $c & 0x3F); } else if($c <= 0x10FFFF) { return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F) . chr(0x80 | $c >> 6 & 0x3F) . chr(0x80 | $c & 0x3F); } else { return false; } }
|
/** * Get the event poster.
| /** * Get the event poster.
|
Zeile 4008 | Zeile 4175 |
---|
$event_date = my_date($mybb->settings['dateformat'], $event_date);
return $event_date;
|
$event_date = my_date($mybb->settings['dateformat'], $event_date);
return $event_date;
|
}
| }
|
/** * Get the profile link. *
| /** * Get the profile link. *
|
Zeile 4017 | Zeile 4184 |
---|
* @return string The url to the profile. */ function get_profile_link($uid=0)
|
* @return string The url to the profile. */ function get_profile_link($uid=0)
|
{
| {
|
$link = str_replace("{uid}", $uid, PROFILE_URL); return htmlspecialchars_uni($link); }
| $link = str_replace("{uid}", $uid, PROFILE_URL); return htmlspecialchars_uni($link); }
|
Zeile 4063 | Zeile 4230 |
---|
if(!empty($target)) { $target = " target=\"{$target}\"";
|
if(!empty($target)) { $target = " target=\"{$target}\"";
|
}
| }
|
if(!empty($onclick))
|
if(!empty($onclick))
|
{
| {
|
$onclick = " onclick=\"{$onclick}\"";
|
$onclick = " onclick=\"{$onclick}\"";
|
}
| }
|
// If we're in the archive, link back a directory if(IN_ARCHIVE == 1)
|
// If we're in the archive, link back a directory if(IN_ARCHIVE == 1)
|
{ global $mybb; if($mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && $_SERVER['SEO_SUPPORT'] == 1)) { return "<a href=\"../../".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>"; } return "<a href=\"../".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>"; } elseif(IN_ADMINCP == 1)
| { return "<a href=\"../../".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>"; } elseif(IN_ADMINCP == 1)
|
{ return "<a href=\"../".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>"; } else { return "<a href=\"".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>";
|
{ return "<a href=\"../".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>"; } else { return "<a href=\"".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>";
|
} }
| } }
|
}
/**
| }
/**
|
Zeile 4237 | Zeile 4397 |
---|
* @return string The URL of the calendar */ function get_calendar_week_link($calendar, $week)
|
* @return string The URL of the calendar */ function get_calendar_week_link($calendar, $week)
|
{
| { if($week < 0) { $week = str_replace('-', "n", $week); }
|
$link = str_replace("{week}", $week, CALENDAR_URL_WEEK); $link = str_replace("{calendar}", $calendar, $link); return htmlspecialchars_uni($link);
| $link = str_replace("{week}", $week, CALENDAR_URL_WEEK); $link = str_replace("{calendar}", $calendar, $link); return htmlspecialchars_uni($link);
|
Zeile 4386 | Zeile 4550 |
---|
* @return string The comma separated values of the inactivate forum. */ function get_inactive_forums()
|
* @return string The comma separated values of the inactivate forum. */ function get_inactive_forums()
|
{
| {
|
global $forum_cache, $cache, $inactiveforums;
if(!$forum_cache)
| global $forum_cache, $cache, $inactiveforums;
if(!$forum_cache)
|
Zeile 4491 | Zeile 4655 |
---|
}
// Work out if the user has waited long enough before letting them login again
|
}
// Work out if the user has waited long enough before letting them login again
|
if($mybb->cookies['failedlogin'] < $now - $mybb->settings['failedlogintime'] * 60)
| if($mybb->cookies['failedlogin'] < ($now - $mybb->settings['failedlogintime'] * 60) && $mybb->user['uid'] != 0)
|
{ my_setcookie('loginattempts', 1); my_unsetcookie('failedlogin'); $update_array = array( 'loginattempts' => 1 );
|
{ my_setcookie('loginattempts', 1); my_unsetcookie('failedlogin'); $update_array = array( 'loginattempts' => 1 );
|
$db->update_query("sessions", $update_array, "sid = '{$session->sid}'");
| $db->update_query("users", $update_array, "uid = '{$mybb->user['uid']}'");
|
return 1; } // Not waited long enough
|
return 1; } // Not waited long enough
|
else
| else if($mybb->cookies['failedlogin'] > ($now - $mybb->settings['failedlogintime'] * 60))
|
{ if($fatal) {
| { if($fatal) {
|
Zeile 4613 | Zeile 4777 |
---|
*/ function build_highlight_array($terms) {
|
*/ function build_highlight_array($terms) {
|
$terms = htmlspecialchars_uni($terms);
| |
// Strip out any characters that shouldn't be included $bad_characters = array( "(",
| // Strip out any characters that shouldn't be included $bad_characters = array( "(",
|
Zeile 4632 | Zeile 4794 |
---|
$terms = explode("\"", $terms); foreach($terms as $phrase) {
|
$terms = explode("\"", $terms); foreach($terms as $phrase) {
|
| $phrase = htmlspecialchars_uni($phrase);
|
if($phrase != "") { if($inquote)
| if($phrase != "") { if($inquote)
|
Zeile 4661 | Zeile 4824 |
---|
// Otherwise just a simple search query with no phrases else {
|
// Otherwise just a simple search query with no phrases else {
|
| $terms = htmlspecialchars_uni($terms);
|
$split_words = preg_split("#\s{1,}#", $terms, -1); if(!is_array($split_words)) {
| $split_words = preg_split("#\s{1,}#", $terms, -1); if(!is_array($split_words)) {
|
Zeile 4936 | Zeile 5100 |
---|
* @param string The URL of the remote file * @return string The remote file contents. */
|
* @param string The URL of the remote file * @return string The remote file contents. */
|
function fetch_remote_file($url)
| function fetch_remote_file($url, $post_data=array())
|
{
|
{
|
| $post_body = ''; if(!empty($post_data)) { foreach($post_data as $key => $val) { $post_body .= '&'.urlencode($key).'='.urlencode($val); } $post_body = ltrim($post_body, '&'); }
|
if(function_exists("curl_init")) { $ch = curl_init();
| if(function_exists("curl_init")) { $ch = curl_init();
|
Zeile 4945 | Zeile 5119 |
---|
curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| if(!empty($post_body)) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_body); }
|
$data = curl_exec($ch); curl_close($ch); return $data; }
|
$data = curl_exec($ch); curl_close($ch); return $data; }
|
else if(function_exists("fsockopen"))
| else if(function_exists("fsockopen"))
|
{ $url = @parse_url($url); if(!$url['host'])
| { $url = @parse_url($url); if(!$url['host'])
|
Zeile 4965 | Zeile 5144 |
---|
$url['path'] = "/"; } if($url['query'])
|
$url['path'] = "/"; } if($url['query'])
|
{
| {
|
$url['path'] .= "?{$url['query']}"; } $fp = @fsockopen($url['host'], $url['port'], $error_no, $error, 10);
| $url['path'] .= "?{$url['query']}"; } $fp = @fsockopen($url['host'], $url['port'], $error_no, $error, 10);
|
Zeile 4974 | Zeile 5153 |
---|
{ return false; }
|
{ return false; }
|
$headers = "GET {$url['path']} HTTP/1.1\r\n"; $headers .= "Host: {$url['host']}\r\n"; $headers .= "Connection: Close\r\n\r\n";
| $headers = array(); if(!empty($post_body)) { $headers[] = "POST {$url['path']} HTTP/1.0"; $headers[] = "Content-Length: ".strlen($post_body); $headers[] = "Content-Type: application/x-www-form-urlencoded"; } else { $headers[] = "GET {$url['path']} HTTP/1.0"; } $headers[] = "Host: {$url['host']}"; $headers[] = "Connection: Close"; $headers[] = "\r\n"; if(!empty($post_body)) { $headers[] = $post_body; } $headers = implode("\r\n", $headers);
|
if(!@fwrite($fp, $headers)) { return false;
| if(!@fwrite($fp, $headers)) { return false;
|
Zeile 4988 | Zeile 5186 |
---|
fclose($fp); $data = explode("\r\n\r\n", $data, 2); return $data[1];
|
fclose($fp); $data = explode("\r\n\r\n", $data, 2); return $data[1];
|
| } else if(empty($post_data)) { return @implode("", @file($url));
|
} else {
|
} else {
|
return @implode("", @file($url));
| return false;
|
} }
| } }
|
Zeile 5071 | Zeile 5273 |
---|
$in_escape = !$in_escape; } if(!count($strings))
|
$in_escape = !$in_escape; } if(!count($strings))
|
{
| {
|
return $original; } return $strings;
|
return $original; } return $strings;
|
}
| }
|
/** * Fetch an IPv4 long formatted range for searching IPv4 IP addresses. *
| /** * Fetch an IPv4 long formatted range for searching IPv4 IP addresses. *
|
Zeile 5086 | Zeile 5288 |
---|
function fetch_longipv4_range($ip) { $ip_bits = explode(".", $ip);
|
function fetch_longipv4_range($ip) { $ip_bits = explode(".", $ip);
|
if($ip == "*") return array(ip2long(0), ip2long(255));
| $ip_string1 = $ip_string2 = "";
if($ip == "*") { return array(ip2long('0.0.0.0'), ip2long('255.255.255.255')); }
|
if(strpos($ip, ".*") === false)
|
if(strpos($ip, ".*") === false)
|
{
| {
|
$ip = str_replace("*", "", $ip); if(count($ip_bits) == 4) {
| $ip = str_replace("*", "", $ip); if(count($ip_bits) == 4) {
|
Zeile 5104 | Zeile 5310 |
---|
// Wildcard based IP provided else {
|
// Wildcard based IP provided else {
|
| $sep = "";
|
foreach($ip_bits as $piece) { if($piece == "*") {
|
foreach($ip_bits as $piece) { if($piece == "*") {
|
return array(ip2long($ip_string."0"), ip2long($ip_string."255"));
| $ip_string1 .= $sep."0"; $ip_string2 .= $sep."255";
|
} else {
|
} else {
|
$ip_string .= $piece.".";
| $ip_string1 .= $sep.$piece; $ip_string2 .= $sep.$piece;
|
}
|
}
|
} } }
| $sep = "."; } return array(ip2long($ip_string1), ip2long($ip_string2)); } }
|
/** * Fetch a list of ban times for a user account. *
| /** * Fetch a list of ban times for a user account. *
|
Zeile 5160 | Zeile 5371 |
---|
* @param string The ban length string * @param int The optional UNIX timestamp, if 0, current time is used. * @return int The UNIX timestamp when the ban will be lifted
|
* @param string The ban length string * @param int The optional UNIX timestamp, if 0, current time is used. * @return int The UNIX timestamp when the ban will be lifted
|
*/
| */
|
function ban_date2timestamp($date, $stamp=0) { if($stamp == 0)
| function ban_date2timestamp($date, $stamp=0) { if($stamp == 0)
|
Zeile 5183 | Zeile 5394 |
---|
function expire_warnings() { global $db;
|
function expire_warnings() { global $db;
|
| $users = array();
|
$query = $db->query(" SELECT w.wid, w.uid, w.points, u.warningpoints FROM ".TABLE_PREFIX."warnings w
| $query = $db->query(" SELECT w.wid, w.uid, w.points, u.warningpoints FROM ".TABLE_PREFIX."warnings w
|
Zeile 5195 | Zeile 5409 |
---|
"expired" => 1 ); $db->update_query("warnings", $updated_warning, "wid='{$warning['wid']}'");
|
"expired" => 1 ); $db->update_query("warnings", $updated_warning, "wid='{$warning['wid']}'");
|
$warning['warningpoints'] -= $warning['points']; if($warning['warningpoints'] < 0)
| if(array_key_exists($warning['uid'], $users)) { $users[$warning['uid']] -= $warning['points']; } else { $users[$warning['uid']] = $warning['warningpoints']-$warning['points']; } } foreach($users as $uid => $warningpoints) { if($warningpoints < 0)
|
{
|
{
|
$warning['warningpoints'] = 0;
| $warningpoints = 0;
|
}
|
}
|
|
|
$updated_user = array(
|
$updated_user = array(
|
"warningpoints" => intval($warning['warningpoints'])
| "warningpoints" => intval($warningpoints)
|
);
|
);
|
$db->update_query("users", $updated_user, "uid='{$warning['uid']}'");
| $db->update_query("users", $updated_user, "uid='".intval($uid)."'");
|
} }
| } }
|
Zeile 5244 | Zeile 5471 |
---|
* Custom chmod function to fix problems with hosts who's server configurations screw up umasks * * @param string The file to chmod
|
* Custom chmod function to fix problems with hosts who's server configurations screw up umasks * * @param string The file to chmod
|
* @param octal The mode to chmod(i.e. 0666)
| * @param string The mode to chmod(i.e. 0666)
|
*/ function my_chmod($file, $mode) {
|
*/ function my_chmod($file, $mode) {
|
| // Passing $mode as an octal number causes strlen and substr to return incorrect values. Instead pass as a string
|
if(substr($mode, 0, 1) != '0' || strlen($mode) !== 4) { return false; } $old_umask = umask(0);
|
if(substr($mode, 0, 1) != '0' || strlen($mode) !== 4) { return false; } $old_umask = umask(0);
|
$result = chmod($file, $mode);
| // We convert the octal string to a decimal number because passing a octal string doesn't work with chmod // and type casting subsequently removes the prepended 0 which is needed for octal numbers $result = chmod($file, octdec($mode));
|
umask($old_umask); return $result; }
| umask($old_umask); return $result; }
|
Zeile 5286 | Zeile 5517 |
---|
} @closedir($dh); }
|
} @closedir($dh); }
|
|
|
// Are we done? Don't delete the main folder too and return true if($path == $orig_dir) {
| // Are we done? Don't delete the main folder too and return true if($path == $orig_dir) {
|
Zeile 5297 | Zeile 5528 |
---|
} return @unlink($path);
|
} return @unlink($path);
|
| }
/** * Counts the number of subforums in a array([pid][disporder][fid]) starting from the pid * * @param array The array of forums * @return integer The number of sub forums */ function subforums_count($array) { $count = 0; foreach($array as $array2) { $count += count($array2); } return $count;
|
}
?>
| }
?>
|