Zeile 1 | Zeile 1 |
---|
<?php /** * MyBB 1.4
|
<?php /** * MyBB 1.4
|
* Copyright � 2008 MyBB Group, All Rights Reserved
| * Copyright © 2008 MyBB Group, All Rights Reserved
|
* * 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 4182 2008-09-07 18:05:30Z Tikitiki $
| * $Id: functions.php 4562 2009-11-29 22:04:37Z RyanGordon $
|
*/
/**
| */
/**
|
Zeile 228 | Zeile 228 |
---|
/** * Sends a specified amount of messages from the mail queue *
|
/** * Sends a specified amount of messages from the mail queue *
|
* @param int The number of messages to send (Defaults to 20)
| * @param int The number of messages to send (Defaults to 10)
|
*/ function send_mail_queue($count=10) {
| */ function send_mail_queue($count=10) {
|
Zeile 409 | 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)
|
| * @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="")
| 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 451 | 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 470 | Zeile 473 |
---|
// Guests get a special string else {
|
// Guests get a special string else {
|
return md5($mybb->config['database']['hostname'].$mybb->config['database']['username'].md5($mybb->config['database']['password']));
| return md5($mybb->settings['bburl'].$mybb->config['database']['username'].$mybb->settings['internal']['encryption_key']);
|
} }
| } }
|
Zeile 491 | Zeile 494 |
---|
} else {
|
} else {
|
error($lang->invalid_post_code);
| if(defined("IN_ADMINCP")) { return false; } else { error($lang->invalid_post_code); }
|
} } else
| } } else
|
Zeile 625 | Zeile 635 |
---|
/** * Produce a friendly error message page
|
/** * Produce a friendly error message page
|
*
| *
|
* @param string The error message to be shown * @param string The title of the message shown in the title of the page and the error table */
| * @param string The error message to be shown * @param string The title of the message shown in the title of the page and the error table */
|
Zeile 637 | 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"; exit; }
if(!$title) {
| }
// 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; }
if(!$title) {
|
$title = $mybb->settings['bbname']; }
| $title = $mybb->settings['bbname']; }
|
Zeile 682 | Zeile 692 |
---|
if(!is_array($errors)) { $errors = array($errors);
|
if(!is_array($errors)) { $errors = array($errors);
|
}
| }
|
// AJAX error message? if($mybb->input['ajax'])
| // AJAX error message? if($mybb->input['ajax'])
|
Zeile 691 | Zeile 701 |
---|
// Send our headers. @header("Content-type: text/html; charset={$lang->settings['charset']}"); echo "<error>{$error}</error>\n";
|
// Send our headers. @header("Content-type: text/html; charset={$lang->settings['charset']}"); echo "<error>{$error}</error>\n";
|
exit; }
| exit; }
|
foreach($errors as $error) {
| foreach($errors as $error) {
|
Zeile 765 | 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 799 | Zeile 809 |
---|
} else {
|
} else {
|
$url = str_replace("#", "&#", $url);
| |
$url = htmlspecialchars_decode($url); $url = str_replace(array("\n","\r",";"), "", $url);
run_shutdown(); header("Location: $url");
|
$url = htmlspecialchars_decode($url); $url = str_replace(array("\n","\r",";"), "", $url);
run_shutdown(); header("Location: $url");
|
}
| }
|
exit; }
|
exit; }
|
|
|
/** * Generate a listing of page - pagination *
| /** * Generate a listing of page - pagination *
|
Zeile 826 | Zeile 835 |
---|
if($count <= $perpage) { return;
|
if($count <= $perpage) { return;
|
}
| }
|
$url = str_replace("&", "&", $url); $url = htmlspecialchars_uni($url);
| $url = str_replace("&", "&", $url); $url = htmlspecialchars_uni($url);
|
Zeile 844 | Zeile 853 |
---|
if(!$mybb->settings['maxmultipagelinks']) { $mybb->settings['maxmultipagelinks'] = 5;
|
if(!$mybb->settings['maxmultipagelinks']) { $mybb->settings['maxmultipagelinks'] = 5;
|
}
| }
|
$from = $page-floor($mybb->settings['maxmultipagelinks']/2); $to = $page+floor($mybb->settings['maxmultipagelinks']/2);
| $from = $page-floor($mybb->settings['maxmultipagelinks']/2); $to = $page+floor($mybb->settings['maxmultipagelinks']/2);
|
Zeile 853 | Zeile 862 |
---|
{ $from = 1; $to = $from+$mybb->settings['maxmultipagelinks']-1;
|
{ $from = 1; $to = $from+$mybb->settings['maxmultipagelinks']-1;
|
}
| }
|
if($to > $pages) {
| if($to > $pages) {
|
Zeile 868 | Zeile 877 |
---|
if($to == 0) { $to = $pages;
|
if($to == 0) { $to = $pages;
|
}
| }
|
if($from > 1) { $page_url = fetch_page_url($url, 1);
| if($from > 1) { $page_url = fetch_page_url($url, 1);
|
Zeile 893 | Zeile 902 |
---|
{ $page_url = fetch_page_url($url, $pages); eval("\$end = \"".$templates->get("multipage_end")."\";");
|
{ $page_url = fetch_page_url($url, $pages); eval("\$end = \"".$templates->get("multipage_end")."\";");
|
}
| }
|
if($page < $pages) { $next = $page+1;
| if($page < $pages) { $next = $page+1;
|
Zeile 990 | 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 1010 | 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 1024 | 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 1091 | Zeile 1097 |
---|
{ if($uid != 0 && $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 1261 | Zeile 1267 |
---|
$password = $forum_cache[$fid]['password']; if($password) {
|
$password = $forum_cache[$fid]['password']; if($password) {
|
if($mybb->input['pwverify'])
| if($mybb->input['pwverify'] && $pid == 0)
|
{ if($password == $mybb->input['pwverify']) {
| { if($password == $mybb->input['pwverify']) {
|
Zeile 1293 | Zeile 1299 |
---|
if($showform) {
|
if($showform) {
|
$_SERVER['REQUEST_URI'] = htmlspecialchars_uni($_SERVER['REQUEST_URI']); eval("\$pwform = \"".$templates->get("forumdisplay_password")."\";"); output_page($pwform);
| if($pid) { header("Location: ".$mybb->settings['bburl']."/".get_forum_link($fid)); } else { $_SERVER['REQUEST_URI'] = htmlspecialchars_uni($_SERVER['REQUEST_URI']); eval("\$pwform = \"".$templates->get("forumdisplay_password")."\";"); output_page($pwform); }
|
exit; } }
| exit; } }
|
Zeile 1319 | Zeile 1332 |
---|
} if($uid == 0)
|
} if($uid == 0)
|
{
| {
|
return false; }
| return false; }
|
Zeile 1340 | Zeile 1353 |
---|
} $modpermscache[$fid][$uid] = $perms;
|
} $modpermscache[$fid][$uid] = $perms;
|
} else {
| } else {
|
$perms = $modpermscache[$fid][$uid]; }
return $perms; }
|
$perms = $modpermscache[$fid][$uid]; }
return $perms; }
|
|
|
/** * Checks if a moderator has permissions to perform an action in a specific forum *
| /** * Checks if a moderator has permissions to perform an action in a specific forum *
|
Zeile 1360 | Zeile 1373 |
---|
function is_moderator($fid="0", $action="", $uid="0") { global $mybb, $cache;
|
function is_moderator($fid="0", $action="", $uid="0") { global $mybb, $cache;
|
|
|
if($uid == 0) { $uid = $mybb->user['uid'];
| if($uid == 0) { $uid = $mybb->user['uid'];
|
Zeile 1389 | Zeile 1402 |
---|
{ return true; }
|
{ return true; }
|
}
| }
|
} return false; }
| } return false; }
|
Zeile 1413 | Zeile 1426 |
---|
} } }
|
} } }
|
}
| }
|
}
/**
| }
/**
|
Zeile 1436 | Zeile 1449 |
---|
$posticons_cache = $cache->read("posticons"); $posticons = array(); foreach($posticons_cache as $posticon)
|
$posticons_cache = $cache->read("posticons"); $posticons = array(); foreach($posticons_cache as $posticon)
|
{
| {
|
$posticons[$posticon['name']] = $posticon; } krsort($posticons);
| $posticons[$posticon['name']] = $posticon; } krsort($posticons);
|
Zeile 1447 | Zeile 1460 |
---|
{ $iconlist .= "<label><input type=\"radio\" name=\"icon\" value=\"".$dbicon['iid']."\" checked=\"checked\" /> <img src=\"".$dbicon['path']."\" alt=\"".$dbicon['name']."\" /></label>"; $no_icons_checked = "";
|
{ $iconlist .= "<label><input type=\"radio\" name=\"icon\" value=\"".$dbicon['iid']."\" checked=\"checked\" /> <img src=\"".$dbicon['path']."\" alt=\"".$dbicon['name']."\" /></label>"; $no_icons_checked = "";
|
}
| }
|
else { $iconlist .= "<label><input type=\"radio\" name=\"icon\" value=\"".$dbicon['iid']."\" /> <img src=\"".$dbicon['path']."\" alt=\"".$dbicon['name']."\" /></label>";
|
else { $iconlist .= "<label><input type=\"radio\" name=\"icon\" value=\"".$dbicon['iid']."\" /> <img src=\"".$dbicon['path']."\" alt=\"".$dbicon['name']."\" /></label>";
|
}
| }
|
++$listed; if($listed == 10) {
| ++$listed; if($listed == 10) {
|
Zeile 1481 | Zeile 1494 |
---|
if(!$mybb->settings['cookiepath']) { $mybb->settings['cookiepath'] = "/";
|
if(!$mybb->settings['cookiepath']) { $mybb->settings['cookiepath'] = "/";
|
}
| }
|
if($expires == -1) { $expires = 0; } elseif($expires == "" || $expires == null)
|
if($expires == -1) { $expires = 0; } elseif($expires == "" || $expires == null)
|
{
| {
|
if($mybb->user['remember'] == 0) { $expires = 0;
| if($mybb->user['remember'] == 0) { $expires = 0;
|
Zeile 1506 | Zeile 1519 |
---|
$mybb->settings['cookiepath'] = str_replace(array("\n","\r"), "", $mybb->settings['cookiepath']); $mybb->settings['cookiedomain'] = str_replace(array("\n","\r"), "", $mybb->settings['cookiedomain']); $mybb->settings['cookieprefix'] = str_replace(array("\n","\r", " "), "", $mybb->settings['cookieprefix']);
|
$mybb->settings['cookiepath'] = str_replace(array("\n","\r"), "", $mybb->settings['cookiepath']); $mybb->settings['cookiedomain'] = str_replace(array("\n","\r"), "", $mybb->settings['cookiedomain']); $mybb->settings['cookieprefix'] = str_replace(array("\n","\r", " "), "", $mybb->settings['cookieprefix']);
|
|
|
// Versions of PHP prior to 5.2 do not support HttpOnly cookies and IE is buggy when specifying a blank domain so set the cookie manually $cookie = "Set-Cookie: {$mybb->settings['cookieprefix']}{$name}=".urlencode($value);
| // Versions of PHP prior to 5.2 do not support HttpOnly cookies and IE is buggy when specifying a blank domain so set the cookie manually $cookie = "Set-Cookie: {$mybb->settings['cookieprefix']}{$name}=".urlencode($value);
|
Zeile 1518 | Zeile 1531 |
---|
if(!empty($mybb->settings['cookiepath'])) { $cookie .= "; path={$mybb->settings['cookiepath']}";
|
if(!empty($mybb->settings['cookiepath'])) { $cookie .= "; path={$mybb->settings['cookiepath']}";
|
}
| }
|
if(!empty($mybb->settings['cookiedomain'])) {
| if(!empty($mybb->settings['cookiedomain'])) {
|
Zeile 1528 | Zeile 1541 |
---|
if($httponly == true) { $cookie .= "; HttpOnly";
|
if($httponly == true) { $cookie .= "; HttpOnly";
|
}
| }
|
$mybb->cookies[$name] = $value;
|
$mybb->cookies[$name] = $value;
|
|
|
header($cookie, false);
|
header($cookie, false);
|
}
/**
| }
/**
|
* Unset a cookie set by MyBB. * * @param string The cookie identifier. */ function my_unsetcookie($name)
|
* Unset a cookie set by MyBB. * * @param string The cookie identifier. */ function my_unsetcookie($name)
|
{
| {
|
global $mybb; $expires = -3600;
| global $mybb; $expires = -3600;
|
Zeile 1564 | Zeile 1577 |
---|
if(!isset($mybb->cookies['mybb'][$name])) { return false;
|
if(!isset($mybb->cookies['mybb'][$name])) { return false;
|
}
| }
|
$cookie = unserialize($mybb->cookies['mybb'][$name]);
if(isset($cookie[$id]))
| $cookie = unserialize($mybb->cookies['mybb'][$name]);
if(isset($cookie[$id]))
|
Zeile 1575 | Zeile 1588 |
---|
else { return 0;
|
else { return 0;
|
} }
| } }
|
/** * Set a serialised cookie array.
| /** * Set a serialised cookie array.
|
Zeile 1588 | Zeile 1601 |
---|
function my_set_array_cookie($name, $id, $value) { global $mybb;
|
function my_set_array_cookie($name, $id, $value) { global $mybb;
|
|
|
$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 1615 | Zeile 1631 |
---|
$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 1624 | Zeile 1640 |
---|
// 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) {
| { if(strpos(",".$func_blacklist.",", 'exec') !== false) {
|
return $lang->unknown; } } // PHP disabled functions? if($func_blacklist = @ini_get('disable_functions'))
|
return $lang->unknown; } } // 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; }
|
}
| }
|
$load = @exec("uptime");
|
$load = @exec("uptime");
|
$load = split("load averages?: ", $load);
| $load = explode("load average: ", $load);
|
$serverload = explode(",", $load[1]); if(!is_array($serverload)) {
| $serverload = explode(",", $load[1]); if(!is_array($serverload)) {
|
Zeile 1671 | Zeile 1687 |
---|
$counters = array('numthreads','numunapprovedthreads','numposts','numunapprovedposts','numusers'); $update = array();
|
$counters = array('numthreads','numunapprovedthreads','numposts','numunapprovedposts','numusers'); $update = array();
|
foreach($counters as $counter) { if(array_key_exists($counter, $changes))
| foreach($counters as $counter) { if(array_key_exists($counter, $changes))
|
{ // Adding or subtracting from previous value? if(substr($changes[$counter], 0, 1) == "+" || substr($changes[$counter], 0, 1) == "-") { $new_stats[$counter] = $stats[$counter] + $changes[$counter];
|
{ // Adding or subtracting from previous value? if(substr($changes[$counter], 0, 1) == "+" || substr($changes[$counter], 0, 1) == "-") { $new_stats[$counter] = $stats[$counter] + $changes[$counter];
|
}
| }
|
else { $new_stats[$counter] = $changes[$counter];
| else { $new_stats[$counter] = $changes[$counter];
|
Zeile 1704 | Zeile 1720 |
---|
if(is_array($stats)) { $stats = array_merge($stats, $new_stats);
|
if(is_array($stats)) { $stats = array_merge($stats, $new_stats);
|
}
| }
|
else { $stats = $new_stats;
| else { $stats = $new_stats;
|
Zeile 1721 | Zeile 1737 |
---|
$cache->update("stats", $stats, "dateline"); }
|
$cache->update("stats", $stats, "dateline"); }
|
|
|
/** * Updates the forum counters with a specific value (or addition/subtraction of the previous value) *
| /** * Updates the forum counters with a specific value (or addition/subtraction of the previous value) *
|
Zeile 1739 | Zeile 1755 |
---|
// Fetch above counters for this forum $query = $db->simple_select("forums", implode(",", $counters), "fid='{$fid}'"); $forum = $db->fetch_array($query);
|
// Fetch above counters for this forum $query = $db->simple_select("forums", implode(",", $counters), "fid='{$fid}'"); $forum = $db->fetch_array($query);
|
foreach($counters as $counter) { if(array_key_exists($counter, $changes)) { // Adding or subtracting from previous value? if(substr($changes[$counter], 0, 1) == "+" || substr($changes[$counter], 0, 1) == "-") {
| foreach($counters as $counter) { if(array_key_exists($counter, $changes)) { // Adding or subtracting from previous value? if(substr($changes[$counter], 0, 1) == "+" || substr($changes[$counter], 0, 1) == "-") {
|
$update_query[$counter] = $forum[$counter] + $changes[$counter]; } else
| $update_query[$counter] = $forum[$counter] + $changes[$counter]; } else
|
Zeile 1827 | Zeile 1843 |
---|
// Update last post info update_forum_lastpost($fid);
|
// Update last post info update_forum_lastpost($fid);
|
| $cache->update_forums();
|
}
/**
| }
/**
|
Zeile 1835 | Zeile 1853 |
---|
* @param int The forum ID */ function update_forum_lastpost($fid)
|
* @param int The forum ID */ function update_forum_lastpost($fid)
|
{
| {
|
global $db;
// Fetch the last post for this forum
| global $db;
// Fetch the last post for this forum
|
Zeile 1868 | Zeile 1886 |
---|
function update_thread_counters($tid, $changes=array()) { global $db;
|
function update_thread_counters($tid, $changes=array()) { global $db;
|
|
|
$update_query = array(); $counters = array('replies','unapprovedposts','attachmentcount', 'attachmentcount');
| $update_query = array(); $counters = array('replies','unapprovedposts','attachmentcount', 'attachmentcount');
|
Zeile 1892 | Zeile 1910 |
---|
} // Less than 0? That's bad if($update_query[$counter] < 0)
|
} // Less than 0? That's bad if($update_query[$counter] < 0)
|
{
| {
|
$update_query[$counter] = 0; } } }
|
$update_query[$counter] = 0; } } }
|
| $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); }
|
Zeile 1924 | Zeile 1946 |
---|
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 1934 | Zeile 1958 |
---|
LIMIT 1 "); $firstpost = $db->fetch_array($query);
|
LIMIT 1 "); $firstpost = $db->fetch_array($query);
|
| $db->free_result($query);
|
if(!$firstpost['username'])
|
if(!$firstpost['username'])
|
{
| {
|
$firstpost['username'] = $firstpost['postusername']; }
| $firstpost['username'] = $firstpost['postusername']; }
|
Zeile 1958 | Zeile 1984 |
---|
$update_array = array( 'username' => $firstpost['username'], 'uid' => intval($firstpost['uid']),
|
$update_array = array( 'username' => $firstpost['username'], 'uid' => intval($firstpost['uid']),
|
| 'dateline' => intval($firstpost['dateline']),
|
'lastpost' => intval($lastpost['dateline']), 'lastposter' => $lastpost['username'], 'lastposteruid' => intval($lastpost['uid']), ); $db->update_query("threads", $update_array, "tid='{$tid}'");
|
'lastpost' => intval($lastpost['dateline']), 'lastposter' => $lastpost['username'], 'lastposteruid' => intval($lastpost['uid']), ); $db->update_query("threads", $update_array, "tid='{$tid}'");
|
| unset($firstpost, $lastpost, $update_array);
|
}
function update_forum_count($fid)
| }
function update_forum_count($fid)
|
Zeile 2022 | Zeile 2051 |
---|
* @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;
| { global $forum_cache, $jumpfcache, $permissioncache, $mybb, $selecteddone, $forumjump, $forumjumpbits, $gobutton, $theme, $templates, $lang;
|
Zeile 2066 | Zeile 2096 |
---|
{ $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 2083 | Zeile 2113 |
---|
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 2258 | Zeile 2288 |
---|
else { eval("\$codeinsert = \"".$templates->get("codebuttons")."\";");
|
else { eval("\$codeinsert = \"".$templates->get("codebuttons")."\";");
|
} }
| } }
|
return $codeinsert; }
| return $codeinsert; }
|
Zeile 2404 | Zeile 2434 |
---|
$gzdata .= pack("V", $crc); $gzdata .= pack("V", $size); $contents = $gzdata;
|
$gzdata .= pack("V", $crc); $gzdata .= pack("V", $size); $contents = $gzdata;
|
} } }
| } } }
|
return $contents; }
| return $contents; }
|
Zeile 2430 | Zeile 2460 |
---|
{ $fid = $data['fid']; unset($data['fid']);
|
{ $fid = $data['fid']; unset($data['fid']);
|
}
| }
|
if($data['tid'] == '') {
| if($data['tid'] == '') {
|
Zeile 2446 | Zeile 2476 |
---|
if(is_array($data)) { $data = serialize($data);
|
if(is_array($data)) { $data = serialize($data);
|
}
$time = TIME_NOW;
| }
$time = TIME_NOW;
|
$sql_array = array( "uid" => $mybb->user['uid'],
| $sql_array = array( "uid" => $mybb->user['uid'],
|
Zeile 2476 | Zeile 2506 |
---|
if($uid != 0) { $display_reputation = "<a href=\"reputation.php?uid={$uid}\">";
|
if($uid != 0) { $display_reputation = "<a href=\"reputation.php?uid={$uid}\">";
|
}
$display_reputation .= "<strong class=\"";
| }
$display_reputation .= "<strong class=\"";
|
if($reputation < 0)
|
if($reputation < 0)
|
{
| {
|
$display_reputation .= "reputation_negative"; } elseif($reputation > 0) { $display_reputation .= "reputation_positive";
|
$display_reputation .= "reputation_negative"; } elseif($reputation > 0) { $display_reputation .= "reputation_positive";
|
} else {
| } else {
|
$display_reputation .= "reputation_neutral"; }
|
$display_reputation .= "reputation_neutral"; }
|
|
|
$display_reputation .= "\">{$reputation}</strong>";
if($uid != 0) { $display_reputation .= "</a>";
|
$display_reputation .= "\">{$reputation}</strong>";
if($uid != 0) { $display_reputation .= "</a>";
|
}
| }
|
return $display_reputation; }
| return $display_reputation; }
|
Zeile 2516 | Zeile 2546 |
---|
return "<span class=\"high_warning\">{$level}%</span>"; } else if($level >= 50)
|
return "<span class=\"high_warning\">{$level}%</span>"; } else if($level >= 50)
|
{
| {
|
return "<span class=\"moderate_warning\">{$level}%</span>"; } else if($level >= 25)
| return "<span class=\"moderate_warning\">{$level}%</span>"; } else if($level >= 25)
|
Zeile 2550 | Zeile 2580 |
---|
{ $ip = $val; break;
|
{ $ip = $val; break;
|
} } }
| } } }
|
}
if(!isset($ip))
| }
if(!isset($ip))
|
Zeile 2580 | Zeile 2610 |
---|
function get_friendly_size($size) { global $lang;
|
function get_friendly_size($size) { global $lang;
|
|
|
if(!is_numeric($size)) { return $lang->na;
| if(!is_numeric($size)) { return $lang->na;
|
Zeile 2598 | Zeile 2628 |
---|
} // Exabyte (1024 Petabytes) elseif($size >= 1152921504606846976)
|
} // Exabyte (1024 Petabytes) elseif($size >= 1152921504606846976)
|
{
| {
|
$size = my_number_format(round(($size / 1152921504606846976), 2))." ".$lang->size_eb; } // Petabyte (1024 Terabytes)
| $size = my_number_format(round(($size / 1152921504606846976), 2))." ".$lang->size_eb; } // Petabyte (1024 Terabytes)
|
Zeile 2625 | Zeile 2655 |
---|
elseif($size >= 1024) { $size = my_number_format(round(($size / 1024), 2))." ".$lang->size_kb;
|
elseif($size >= 1024) { $size = my_number_format(round(($size / 1024), 2))." ".$lang->size_kb;
|
}
| }
|
elseif($size == 0) { $size = "0 ".$lang->size_bytes;
| elseif($size == 0) { $size = "0 ".$lang->size_bytes;
|
Zeile 2769 | Zeile 2799 |
---|
$format = str_replace("y", my_substr($year, -2), $format);
return $format;
|
$format = str_replace("y", my_substr($year, -2), $format);
return $format;
|
}
/**
| }
/**
|
* Build the breadcrumb navigation trail from the specified items * * @return The formatted breadcrumb navigation trail
| * Build the breadcrumb navigation trail from the specified items * * @return The formatted breadcrumb navigation trail
|
Zeile 2781 | Zeile 2811 |
---|
global $nav, $navbits, $templates, $theme, $lang;
eval("\$navsep = \"".$templates->get("nav_sep")."\";");
|
global $nav, $navbits, $templates, $theme, $lang;
eval("\$navsep = \"".$templates->get("nav_sep")."\";");
|
|
|
if(is_array($navbits)) { reset($navbits);
| if(is_array($navbits)) { reset($navbits);
|
Zeile 2790 | Zeile 2820 |
---|
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 2815 | Zeile 2845 |
---|
eval("\$donenav = \"".$templates->get("nav")."\";");
return $donenav;
|
eval("\$donenav = \"".$templates->get("nav")."\";");
return $donenav;
|
}
/**
| }
/**
|
* Add a breadcrumb menu item to the list. * * @param string The name of the item to add
| * Add a breadcrumb menu item to the list. * * @param string The name of the item to add
|
Zeile 2826 | Zeile 2856 |
---|
function add_breadcrumb($name, $url="") { global $navbits;
|
function add_breadcrumb($name, $url="") { global $navbits;
|
|
|
$navsize = count($navbits); $navbits[$navsize]['name'] = $name; $navbits[$navsize]['url'] = $url;
| $navsize = count($navbits); $navbits[$navsize]['name'] = $name; $navbits[$navsize]['url'] = $url;
|
Zeile 2844 | Zeile 2874 |
---|
if(!$pforumcache) { if(!is_array($forum_cache))
|
if(!$pforumcache) { if(!is_array($forum_cache))
|
{
| {
|
cache_forums(); }
| cache_forums(); }
|
Zeile 2866 | Zeile 2896 |
---|
}
$navsize = count($navbits);
|
}
$navsize = count($navbits);
|
$navbits[$navsize]['name'] = $forumnav['name'];
| // Convert & to & $navbits[$navsize]['name'] = preg_replace("#&(?!\#[0-9]+;)#si", "&", $forumnav['name']);
|
if(IN_ARCHIVE == 1) {
| if(IN_ARCHIVE == 1) {
|
Zeile 2938 | Zeile 2969 |
---|
$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 2980 | Zeile 3011 |
---|
echo "<h1>MyBB Debug Information</h1>\n"; echo "<h2>Page Generation</h2>\n"; echo "<table bgcolor=\"#666666\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n";
|
echo "<h1>MyBB Debug Information</h1>\n"; echo "<h2>Page Generation</h2>\n"; echo "<table bgcolor=\"#666666\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n";
|
echo "<tr>\n";
| echo "<tr>\n";
|
echo "<td bgcolor=\"#CCCCCC\" colspan=\"4\"><b><span style=\"size:2;\">Page Generation Statistics</span></b></td>\n";
|
echo "<td bgcolor=\"#CCCCCC\" colspan=\"4\"><b><span style=\"size:2;\">Page Generation Statistics</span></b></td>\n";
|
echo "</tr>\n";
| echo "</tr>\n";
|
echo "<tr>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">Page Generation Time:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$totaltime seconds</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">No. DB Queries:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$db->query_count</font></td>\n";
|
echo "<tr>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">Page Generation Time:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$totaltime seconds</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">No. DB Queries:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$db->query_count</font></td>\n";
|
echo "</tr>\n";
| echo "</tr>\n";
|
echo "<tr>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">PHP Processing Time:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$phptime seconds ($percentphp%)</font></td>\n";
| echo "<tr>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">PHP Processing Time:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$phptime seconds ($percentphp%)</font></td>\n";
|
Zeile 3012 | Zeile 3043 |
---|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$gzipen</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">No. Templates Used:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">".count($templates->cache)." (".intval(count(explode(",", $templatelist)))." Cached / ".intval(count($templates->uncached_templates))." Manually Loaded)</font></td>\n";
|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$gzipen</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">No. Templates Used:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">".count($templates->cache)." (".intval(count(explode(",", $templatelist)))." Cached / ".intval(count($templates->uncached_templates))." Manually Loaded)</font></td>\n";
|
echo "</tr>\n";
| echo "</tr>\n";
|
if(function_exists("memory_get_usage")) {
| if(function_exists("memory_get_usage")) {
|
Zeile 3046 | Zeile 3077 |
---|
echo "<tr>\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-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 "<tr>\n"; echo "<td style=\"background: #fff;\">".implode(", ", array_keys($templates->cache))."</td>\n"; echo "</tr>\n";
|
echo "</table>\n"; echo "<br />\n"; }
| echo "</table>\n"; echo "<br />\n"; }
|
Zeile 3309 | Zeile 3340 |
---|
* @param int The user group ID to join */ function join_usergroup($uid, $joingroup)
|
* @param int The user group ID to join */ function join_usergroup($uid, $joingroup)
|
{ global $db;
if($uid == $mybb->user['uid']) { $user = $mybb->user; }
| { global $db, $mybb;
if($uid == $mybb->user['uid']) { $user = $mybb->user; }
|
else { $query = $db->simple_select("users", "additionalgroups, usergroup", "uid='".intval($uid)."'");
| else { $query = $db->simple_select("users", "additionalgroups, usergroup", "uid='".intval($uid)."'");
|
Zeile 3333 | Zeile 3364 |
---|
foreach($groups as $gid) { if(trim($gid) != "" && $gid != $user['usergroup'] && !$donegroup[$gid])
|
foreach($groups as $gid) { if(trim($gid) != "" && $gid != $user['usergroup'] && !$donegroup[$gid])
|
{ $groupslist .= $comma.$gid; $comma = ","; $donegroup[$gid] = 1; } } }
$db->update_query("users", array('additionalgroups' => $groupslist), "uid='".intval($uid)."'");
| { $groupslist .= $comma.$gid; $comma = ","; $donegroup[$gid] = 1; } } }
// 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 3364 | Zeile 3404 |
---|
$user = $db->fetch_array($query); }
|
$user = $db->fetch_array($query); }
|
$usergroups = "";
| |
$groupslist = "";
|
$groupslist = "";
|
| $usergroups = "";
|
$usergroups = $user['additionalgroups'].",";
$groups = explode(",", $user['additionalgroups']);
| $usergroups = $user['additionalgroups'].",";
$groups = explode(",", $user['additionalgroups']);
|
Zeile 3382 | Zeile 3422 |
---|
} } }
|
} } }
|
|
|
$dispupdate = ""; if($leavegroup == $user['displaygroup']) {
| $dispupdate = ""; if($leavegroup == $user['displaygroup']) {
|
Zeile 3481 | Zeile 3521 |
---|
if(isset($addloc) && is_array($addloc)) {
|
if(isset($addloc) && is_array($addloc)) {
|
$location .= "?".implode("&", $addloc);
| if(strpos($location, "?") === false) { $location .= "?"; } else { $location .= "&"; } $location .= implode("&", $addloc);
|
} }
| } }
|
Zeile 3546 | Zeile 3594 |
---|
$is_allowed = true; break; }
|
$is_allowed = true; break; }
|
} }
| } }
|
// Show theme if allowed, or if override is on if($is_allowed || $theme['allowedgroups'] == "all" || $theme['allowedgroups'] == "" || $usergroup_override == 1) {
| // Show theme if allowed, or if override is on if($is_allowed || $theme['allowedgroups'] == "all" || $theme['allowedgroups'] == "" || $usergroup_override == 1) {
|
Zeile 3626 | Zeile 3674 |
---|
$decimals = 0; }
|
$decimals = 0; }
|
return number_format($number, $decimals, $mybb->settings['decpoint'], $mybb->settings['thousandssep']);
| return number_format((double)$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 3642 | Zeile 3755 |
---|
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 3761 | Zeile 3876 |
---|
$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), ($bd == 1 || $bd == 21 || $bd == 31 ? 'st' : ($bd == 2 || $bd == 22 ? 'nd' : ($bd == 3 || $bd == 23 ? 'rd' : 'th'))),
|
my_substr($by, 2), $by, ($bd[0] == 0 ? my_substr($bd, 1) : $bd), ($bd == 1 || $bd == 21 || $bd == 31 ? 'st' : ($bd == 2 || $bd == 22 ? 'nd' : ($bd == 3 || $bd == 23 ? 'rd' : 'th'))),
|
$bdays[$wd],
| $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); }
/** * Returns the age of a user with specified birthday.
|
return str_replace($find, $replace, $display); }
/** * Returns the age of a user with specified birthday.
|
*
| *
|
* @param string The birthday of a user. * @return float The age of a user with that birthday. */ function get_age($birthday)
|
* @param string The birthday of a user. * @return float The age of a user with that birthday. */ function get_age($birthday)
|
{
| {
|
$bday = explode("-", $birthday); if(!$bday[2]) { return;
|
$bday = explode("-", $birthday); if(!$bday[2]) { return;
|
}
| }
|
list($day, $month, $year) = explode("-", my_date("j-n-Y", TIME_NOW, 0, 0));
$age = $year-$bday[2];
|
list($day, $month, $year) = explode("-", my_date("j-n-Y", TIME_NOW, 0, 0));
$age = $year-$bday[2];
|
|
|
if(($month == $bday[1] && $day < $bday[0]) || $month < $bday[1]) { --$age;
| if(($month == $bday[1] && $day < $bday[0]) || $month < $bday[1]) { --$age;
|
Zeile 3816 | Zeile 3943 |
---|
function update_first_post($tid) { global $db;
|
function update_first_post($tid) { global $db;
|
|
|
$query = $db->simple_select("posts", "pid,replyto", "tid='{$tid}'", array('order_by' => 'dateline', 'limit' => 1)); $post = $db->fetch_array($query);
if($post['replyto'] != 0)
|
$query = $db->simple_select("posts", "pid,replyto", "tid='{$tid}'", array('order_by' => 'dateline', 'limit' => 1)); $post = $db->fetch_array($query);
if($post['replyto'] != 0)
|
{
| {
|
$replyto_update = array( "replyto" => 0 );
| $replyto_update = array( "replyto" => 0 );
|
Zeile 3988 | Zeile 4115 |
---|
* @return int The un-htmlentitied' string. */ function unhtmlentities($string)
|
* @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.
|
* * @param array The event data array.
| * * @param array The event data array.
|
* @return string The link to the event poster. */ function get_event_poster($event)
|
* @return string The link to the event poster. */ function get_event_poster($event)
|
{
| {
|
$event['username'] = format_name($event['username'], $event['usergroup'], $event['displaygroup']); $event_poster = build_profile_link($event['username'], $event['author']); return $event_poster;
| $event['username'] = format_name($event['username'], $event['usergroup'], $event['displaygroup']); $event_poster = build_profile_link($event['username'], $event['author']); return $event_poster;
|
Zeile 4026 | Zeile 4186 |
---|
$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. * * @param int The user id of the profile.
| * Get the profile link. * * @param int The user id of the profile.
|
Zeile 4064 | Zeile 4224 |
---|
function build_profile_link($username="", $uid=0, $target="", $onclick="") { global $lang;
|
function build_profile_link($username="", $uid=0, $target="", $onclick="") { global $lang;
|
|
|
if(!$username && $uid == 0) { // Return Guest phrase for no UID, no guest nickname return $lang->guest; } elseif($uid == 0)
|
if(!$username && $uid == 0) { // Return Guest phrase for no UID, no guest nickname return $lang->guest; } elseif($uid == 0)
|
{
| {
|
// Return the guest's nickname if user is a guest but has a nickname return $username; }
| // Return the guest's nickname if user is a guest but has a nickname return $username; }
|
Zeile 4086 | Zeile 4246 |
---|
if(!empty($onclick)) { $onclick = " onclick=\"{$onclick}\"";
|
if(!empty($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>";
| return "<a href=\"../../".get_profile_link($uid)."\"{$target}{$onclick}>{$username}</a>";
|
} elseif(IN_ADMINCP == 1) {
| } elseif(IN_ADMINCP == 1) {
|
Zeile 4256 | Zeile 4409 |
---|
*/ function get_calendar_week_link($calendar, $week) {
|
*/ 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 4393 | Zeile 4550 |
---|
else { $post_cache[$pid] = false;
|
else { $post_cache[$pid] = false;
|
return false; } } }
| return false; } } }
|
/** * Get inactivate forums.
| /** * Get inactivate forums.
|
Zeile 4404 | Zeile 4561 |
---|
* @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;
|
global $forum_cache, $cache, $inactiveforums;
|
|
|
if(!$forum_cache) { cache_forums();
|
if(!$forum_cache) { cache_forums();
|
}
$inactive = array();
| }
$inactive = array();
|
foreach($forum_cache as $fid => $forum) {
| foreach($forum_cache as $fid => $forum) {
|
Zeile 4427 | Zeile 4584 |
---|
} } }
|
} } }
|
}
| }
|
$inactiveforums = implode(",", $inactive);
return $inactiveforums;
| $inactiveforums = implode(",", $inactive);
return $inactiveforums;
|
Zeile 4457 | Zeile 4614 |
---|
$cookietime = $mybb->cookies['failedlogin'];
if(empty($cookielogins) || $cookielogins < $session->logins)
|
$cookietime = $mybb->cookies['failedlogin'];
if(empty($cookielogins) || $cookielogins < $session->logins)
|
{
| {
|
$loginattempts = $session->logins; } else
| $loginattempts = $session->logins; } else
|
Zeile 4480 | Zeile 4637 |
---|
// If so, then we need to work out if they can try to login again // Some maths to work out how long they have left and display it to them $now = TIME_NOW;
|
// If so, then we need to work out if they can try to login again // Some maths to work out how long they have left and display it to them $now = TIME_NOW;
|
|
|
if(empty($mybb->cookies['failedlogin'])) { $failedtime = $now;
| if(empty($mybb->cookies['failedlogin'])) { $failedtime = $now;
|
Zeile 4509 | Zeile 4666 |
---|
}
// 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 4548 | Zeile 4705 |
---|
return false; } // Valid local characters for email addresses: http://www.remote.org/jochen/mail/info/chars.html
|
return false; } // Valid local characters for email addresses: http://www.remote.org/jochen/mail/info/chars.html
|
return preg_match("/^[a-zA-Z0-9&*+\-_.{}~^\?=\/]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/si", $email);
| return preg_match("/^[a-zA-Z0-9&*+\-_.{}~^\?=\/]+@[a-zA-Z0-9-]+\.([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,}$/si", $email);
|
}
/**
| }
/**
|
Zeile 4631 | Zeile 4788 |
---|
*/ function build_highlight_array($terms) {
|
*/ function build_highlight_array($terms) {
|
| global $mybb;
if($mybb->settings['minsearchword'] < 1) { $mybb->settings['minsearchword'] = 3; }
|
// 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 4647 | Zeile 4811 |
---|
$inquote = false; $terms = explode("\"", $terms); foreach($terms as $phrase)
|
$inquote = false; $terms = explode("\"", $terms); foreach($terms as $phrase)
|
{
| {
|
$phrase = htmlspecialchars_uni($phrase); if($phrase != "") { if($inquote) {
|
$phrase = htmlspecialchars_uni($phrase); if($phrase != "") { if($inquote) {
|
$words[] = "\"".trim($phrase)."\"";
| $words[] = trim($phrase);
|
} else {
| } else {
|
Zeile 4664 | Zeile 4828 |
---|
} foreach($split_words as $word) {
|
} foreach($split_words as $word) {
|
if(!$word)
| if(!$word || strlen($word) < $mybb->settings['minsearchword'])
|
{ continue; }
| { continue; }
|
Zeile 4673 | Zeile 4837 |
---|
} } $inquote = !$inquote;
|
} } $inquote = !$inquote;
|
}
| }
|
} // Otherwise just a simple search query with no phrases else
| } // Otherwise just a simple search query with no phrases else
|
Zeile 4681 | Zeile 4845 |
---|
$terms = htmlspecialchars_uni($terms); $split_words = preg_split("#\s{1,}#", $terms, -1); if(!is_array($split_words))
|
$terms = htmlspecialchars_uni($terms); $split_words = preg_split("#\s{1,}#", $terms, -1); if(!is_array($split_words))
|
{
| {
|
continue; } foreach($split_words as $word) {
|
continue; } foreach($split_words as $word) {
|
if(!$word)
| if(!$word || strlen($word) < $mybb->settings['minsearchword'])
|
{ continue; }
| { continue; }
|
Zeile 4699 | Zeile 4863 |
---|
{ return false; }
|
{ return false; }
|
| // Sort the word array by length. Largest terms go first and work their way down to the smallest term. // This resolves problems like "test tes" where "tes" will be highlighted first, then "test" can't be highlighted because of the changed html usort($words, create_function('$a,$b','return strlen($b) - strlen($a);'));
|
// Loop through our words to build the PREG compatible strings foreach($words as $word)
| // Loop through our words to build the PREG compatible strings foreach($words as $word)
|
Zeile 4714 | Zeile 4882 |
---|
}
// Now make PREG compatible
|
}
// Now make PREG compatible
|
$find = "#(^|>)([^<]*)(".preg_quote($word, "#").")#i"; $replacement = "$1$2<span class=\"highlight\">$3</span>";
| $find = "#(?!<.*?)(".preg_quote($word, "#").")(?![^<>]*?>)#i"; $replacement = "<span class=\"highlight\" style=\"padding-left: 0px; padding-right: 0px;\">$1</span>";
|
$highlight_cache[$find] = $replacement; }
| $highlight_cache[$find] = $replacement; }
|
Zeile 4954 | Zeile 5122 |
---|
* @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 4963 | Zeile 5141 |
---|
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 4983 | Zeile 5166 |
---|
$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 4992 | Zeile 5175 |
---|
{ 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 5006 | Zeile 5208 |
---|
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 5069 | Zeile 5275 |
---|
$quoted_strings = array($string); } foreach($quoted_strings as $string)
|
$quoted_strings = array($string); } foreach($quoted_strings as $string)
|
{
| {
|
if($string != "") { if($in_escape)
| if($string != "") { if($in_escape)
|
Zeile 5087 | Zeile 5293 |
---|
} } $in_escape = !$in_escape;
|
} } $in_escape = !$in_escape;
|
}
| }
|
if(!count($strings)) { return $original;
|
if(!count($strings)) { return $original;
|
}
| }
|
return $strings; }
| return $strings; }
|
Zeile 5104 | Zeile 5310 |
---|
function fetch_longipv4_range($ip) { $ip_bits = explode(".", $ip);
|
function fetch_longipv4_range($ip) { $ip_bits = explode(".", $ip);
|
| $ip_string1 = $ip_string2 = "";
|
|
|
if($ip == "*") return array(ip2long(0), ip2long(255));
| if($ip == "*") { return array(ip2long('0.0.0.0'), ip2long('255.255.255.255')); }
|
if(strpos($ip, ".*") === false) {
| if(strpos($ip, ".*") === false) {
|
Zeile 5122 | Zeile 5332 |
---|
// 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));
|
} }
| } }
|
Zeile 5201 | Zeile 5416 |
---|
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 5213 | Zeile 5431 |
---|
"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)."'");
|
} }
| } }
|