Zeile 6 | Zeile 6 |
---|
* Website: http://www.mybboard.com * License: http://www.mybboard.com/eula.html *
|
* Website: http://www.mybboard.com * License: http://www.mybboard.com/eula.html *
|
* $Id: functions.php 2277 2006-09-27 10:26:56Z chris $
| * $Id: functions.php 2794 2007-02-14 02:37:17Z chris $
|
*/
/**
| */
/**
|
Zeile 106 | Zeile 106 |
---|
*/ function run_shutdown() {
|
*/ function run_shutdown() {
|
global $db, $cache, $shutdown_functions, $done_shutdown;
| global $db, $cache, $plugins, $shutdown_functions, $done_shutdown;
|
if($done_shutdown == true) { return; }
|
if($done_shutdown == true) { return; }
|
| // If our DB has been deconstructed already (bad PHP 5.2.0), reconstruct if(!is_object($db)) { require MYBB_ROOT."inc/config.php"; if(isset($config)) { require_once MYBB_ROOT."inc/db_".$config['dbtype'].".php"; $db = new databaseEngine; $db->connect($config['hostname'], $config['username'], $config['password']); $db->select_db($config['database']); } } // Cache object deconstructed? reconstruct if(!is_object($cache)) { require_once MYBB_ROOT."inc/class_datacache.php"; $cache = new datacache; } // And finaly.. we have the PHP developers to thank for this "hack" which fixes a problem THEY created if(!is_object($plugins) && !defined("NO_PLUGINS")) { require_once MYBB_ROOT."inc/class_plugins.php"; $plugins = new pluginSystem; $plugins->load(); }
|
// We have some shutdown queries needing to be run if(is_array($db->shutdown_queries))
|
// We have some shutdown queries needing to be run if(is_array($db->shutdown_queries))
|
{
| {
|
// Loop through and run them all foreach($db->shutdown_queries as $query) {
| // Loop through and run them all foreach($db->shutdown_queries as $query) {
|
Zeile 142 | Zeile 170 |
---|
function send_mail_queue($count=10) { global $db, $cache, $plugins;
|
function send_mail_queue($count=10) { global $db, $cache, $plugins;
|
|
|
$plugins->run_hooks("send_mail_queue_start");
// Check to see if the mail queue has messages needing to be sent
| $plugins->run_hooks("send_mail_queue_start");
// Check to see if the mail queue has messages needing to be sent
|
Zeile 254 | Zeile 282 |
---|
{ $offset = "+".$offset; }
|
{ $offset = "+".$offset; }
|
} }
| } }
|
if($offset == "-") { $offset = 0;
| if($offset == "-") { $offset = 0;
|
Zeile 269 | Zeile 297 |
---|
if($todaysdate == $date) { $date = $lang->today;
|
if($todaysdate == $date) { $date = $lang->today;
|
}
| }
|
elseif($yesterdaysdate == $date) { $date = $lang->yesterday;
| elseif($yesterdaysdate == $date) { $date = $lang->yesterday;
|
Zeile 291 | Zeile 319 |
---|
* @param string The chracter set being used to send this email. */ function my_mail($to, $subject, $message, $from="", $charset="", $headers="")
|
* @param string The chracter set being used to send this email. */ function my_mail($to, $subject, $message, $from="", $charset="", $headers="")
|
{
| {
|
global $db, $mybb, $lang;
if(empty($charset))
| global $db, $mybb, $lang;
if(empty($charset))
|
Zeile 397 | Zeile 425 |
---|
/** * Load the forum cache in to memory
|
/** * Load the forum cache in to memory
|
| * * @param boolean True to force a reload of the cache
|
*/
|
*/
|
function cache_forums()
| function cache_forums($force=false)
|
{ global $forum_cache, $db, $cache;
|
{ global $forum_cache, $db, $cache;
|
| if($force == true) { $forum_cache = $cache->read("forums", 1); return $forum_cache; }
|
if(!$forum_cache) {
| if(!$forum_cache) {
|
Zeile 481 | Zeile 517 |
---|
"location2" => 0 ); $db->update_query(TABLE_PREFIX."sessions", $noperm_array, "sid='".$session->sid."'");
|
"location2" => 0 ); $db->update_query(TABLE_PREFIX."sessions", $noperm_array, "sid='".$session->sid."'");
|
$url = $_SERVER['REQUEST_URI']; $url = str_replace("&", "&", $url);
| $url = htmlspecialchars_uni($_SERVER['REQUEST_URI']);
|
if($mybb->user['uid']) { $lang->error_nopermission_user_5 = sprintf($lang->error_nopermission_user_5, $mybb->user['username']);
| if($mybb->user['uid']) { $lang->error_nopermission_user_5 = sprintf($lang->error_nopermission_user_5, $mybb->user['username']);
|
Zeile 796 | Zeile 831 |
---|
function fetch_forum_permissions($fid, $gid, $groupperms) { global $groupscache, $forum_cache, $fpermcache, $mybb, $fpermfields;
|
function fetch_forum_permissions($fid, $gid, $groupperms) { global $groupscache, $forum_cache, $fpermcache, $mybb, $fpermfields;
|
|
|
$groups = explode(",", $gid);
|
$groups = explode(",", $gid);
|
|
|
if(!$fpermcache[$fid]) // This forum has no custom or inherited permisssions so lets just return the group permissions { return $groupperms; }
|
if(!$fpermcache[$fid]) // This forum has no custom or inherited permisssions so lets just return the group permissions { return $groupperms; }
|
| $current_permissions = array();
|
foreach($groups as $gid) {
|
foreach($groups as $gid) {
|
if($gid && $groupscache[$gid])
| if($groupscache[$gid])
|
{
|
{
|
if(!is_array($fpermcache[$fid][$gid]))
| // If this forum has permissions set if($fpermcache[$fid][$gid])
|
{
|
{
|
continue; } foreach($fpermcache[$fid][$gid] as $perm => $access) { if($perm == "fid" || $perm == "gid" || $perm == "pid")
| $level_permissions = $fpermcache[$fid][$gid]; foreach($level_permissions as $permission => $access)
|
{
|
{
|
continue; } $permission = $forumpermissions[$perm]; if((is_numeric($access) && $access > $permission) || ($access == "yes" && $permission == "no") || !$permission) { $forumpermissions[$perm] = $access;
| if($access >= $current_permissions[$permission] || ($access == "yes" && $current_permissions[$permission] == "no") || !$current_permissions[$permission]) { $current_permissions[$permission] = $access; }
|
} } }
|
} } }
|
} if(!isset($forumpermissions))
| } if(count($current_permissions) == 0)
|
{
|
{
|
$forumpermissions = $groupperms;
| $current_permissions = $groupperms;
|
}
|
}
|
return $forumpermissions;
| return $current_permissions;
|
}
/**
| }
/**
|
Zeile 835 | Zeile 872 |
---|
* * @param int The forum ID * @param string The plain text password for the forum
|
* * @param int The forum ID * @param string The plain text password for the forum
|
*/
| */
|
function check_forum_password($fid, $password="") { global $mybb, $header, $footer, $headerinclude, $theme, $templates, $lang;
| function check_forum_password($fid, $password="") { global $mybb, $header, $footer, $headerinclude, $theme, $templates, $lang;
|
Zeile 848 | Zeile 885 |
---|
if($password == $mybb->input['pwverify']) { my_setcookie("forumpass[$fid]", md5($mybb->user['uid'].$mybb->input['pwverify']), null, true);
|
if($password == $mybb->input['pwverify']) { my_setcookie("forumpass[$fid]", md5($mybb->user['uid'].$mybb->input['pwverify']), null, true);
|
$showform = 0; }
| $showform = 0; }
|
else { eval("\$pwnote = \"".$templates->get("forumdisplay_password_wrongpass")."\";");
| else { eval("\$pwnote = \"".$templates->get("forumdisplay_password_wrongpass")."\";");
|
Zeile 874 | Zeile 911 |
---|
} if($showform) {
|
} if($showform) {
|
| $_SERVER['REQUEST_URI'] = htmlspecialchars_uni($_SERVER['REQUEST_URI']);
|
eval("\$pwform = \"".$templates->get("forumdisplay_password")."\";"); output_page($pwform); exit;
|
eval("\$pwform = \"".$templates->get("forumdisplay_password")."\";"); output_page($pwform); exit;
|
}
| }
|
}
/**
| }
/**
|
Zeile 918 | Zeile 956 |
---|
$perms = $modpermscache[$uid][$fid]; } return $perms;
|
$perms = $modpermscache[$uid][$fid]; } 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 948 | Zeile 986 |
---|
$query = $db->simple_select(TABLE_PREFIX.'moderators', 'mid', "uid={$uid}", array('limit' => 1)); $modcheck = $db->fetch_array($query); if($modcheck['mid'])
|
$query = $db->simple_select(TABLE_PREFIX.'moderators', 'mid', "uid={$uid}", array('limit' => 1)); $modcheck = $db->fetch_array($query); if($modcheck['mid'])
|
{
| {
|
return "yes"; } else
| return "yes"; } else
|
Zeile 960 | Zeile 998 |
---|
{ $modperms = get_moderator_permissions($fid, $uid); if(!$action && $modperms)
|
{ $modperms = get_moderator_permissions($fid, $uid); if(!$action && $modperms)
|
{
| {
|
return "yes"; } else { if($modperms[$action] == "yes")
|
return "yes"; } else { if($modperms[$action] == "yes")
|
{
| {
|
return "yes"; } else
| return "yes"; } else
|
Zeile 977 | Zeile 1015 |
---|
} } }
|
} } }
|
|
|
/** * Generate a list of the posticons. *
| /** * Generate a list of the posticons. *
|
Zeile 989 | Zeile 1027 |
---|
$listed = 0; if($mybb->input['icon'])
|
$listed = 0; if($mybb->input['icon'])
|
{
| {
|
$icon = $mybb->input['icon']; } $no_icons_checked = " checked=\"checked\"";
| $icon = $mybb->input['icon']; } $no_icons_checked = " checked=\"checked\"";
|
Zeile 1001 | Zeile 1039 |
---|
while($dbicon = $db->fetch_array($query)) { if($icon == $dbicon['iid'])
|
while($dbicon = $db->fetch_array($query)) { if($icon == $dbicon['iid'])
|
{
| {
|
$iconlist .= "<input type=\"radio\" name=\"icon\" value=\"".$dbicon['iid']."\" checked=\"checked\" /> <img src=\"".$dbicon['path']."\" alt=\"".$dbicon['name']."\" />"; $no_icons_checked = ""; }
| $iconlist .= "<input type=\"radio\" name=\"icon\" value=\"".$dbicon['iid']."\" checked=\"checked\" /> <img src=\"".$dbicon['path']."\" alt=\"".$dbicon['name']."\" />"; $no_icons_checked = ""; }
|
Zeile 1014 | Zeile 1052 |
---|
{ $iconlist .= "<br />"; $listed = 0;
|
{ $iconlist .= "<br />"; $listed = 0;
|
} }
| } }
|
eval("\$posticons = \"".$templates->get("posticons")."\";"); return $posticons; }
|
eval("\$posticons = \"".$templates->get("posticons")."\";"); return $posticons; }
|
| /** * MyBB setcookie() wrapper. * * @param string The cookie identifier. * @param string The cookie value. * @param int The timestamp of the expiry date. * @param boolean True if setting a HttpOnly cookie (supported by IE, Opera 9, Konqueror) */
|
function my_setcookie($name, $value="", $expires="", $httponly=false) {
|
function my_setcookie($name, $value="", $expires="", $httponly=false) {
|
global $mybb, $sent_header; if($sent_header || headers_sent()) { return false; }
| global $mybb;
|
if(!$mybb->settings['cookiepath']) { $mybb->settings['cookiepath'] = "/"; } if($expires == -1)
|
if(!$mybb->settings['cookiepath']) { $mybb->settings['cookiepath'] = "/"; } if($expires == -1)
|
{
| {
|
$expires = 0; } else if($expires == "" || $expires == null) { if($mybb->user['remember'] == "no")
|
$expires = 0; } else if($expires == "" || $expires == null) { if($mybb->user['remember'] == "no")
|
{
| {
|
$expires = 0; } else
| $expires = 0; } else
|
Zeile 1064 | Zeile 1106 |
---|
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'])) { $cookie .= "; domain={$mybb->settings['cookiedomain']}";
| if(!empty($mybb->settings['cookiedomain'])) { $cookie .= "; domain={$mybb->settings['cookiedomain']}";
|
Zeile 1082 | Zeile 1124 |
---|
* @param string The cookie identifier. */ function my_unsetcookie($name)
|
* @param string The cookie identifier. */ function my_unsetcookie($name)
|
{ global $mybb, $sent_header; if($sent_header) { return false; }
$expires = time()-3600;
| { global $mybb; $expires = -3600;
|
my_setcookie($name, "", $expires); }
| my_setcookie($name, "", $expires); }
|
Zeile 1121 | Zeile 1156 |
---|
/** * Set a serialised cookie array.
|
/** * Set a serialised cookie array.
|
*
| *
|
* @param string The cookie identifier. * @param int The cookie content id. * @param string The value to set the cookie to.
| * @param string The cookie identifier. * @param int The cookie content id. * @param string The value to set the cookie to.
|
Zeile 1268 | Zeile 1303 |
---|
"); $firstpost = $db->fetch_array($query); if(!$firstpost['username'])
|
"); $firstpost = $db->fetch_array($query); if(!$firstpost['username'])
|
{
| {
|
$firstpost['username'] = $firstpost['postusername']; } if(!$lastpost['username'])
| $firstpost['username'] = $firstpost['postusername']; } if(!$lastpost['username'])
|
Zeile 1297 | Zeile 1332 |
---|
update_thread_attachment_count($tid); $db->query(" UPDATE ".TABLE_PREFIX."threads
|
update_thread_attachment_count($tid); $db->query(" UPDATE ".TABLE_PREFIX."threads
|
SET username='".$firstpost['username']."', uid='".intval($firstpost['uid'])."', lastpost='".$lastpost['dateline']."', lastposter='".$lastpost['username']."', lastposteruid='".intval($lastpost['uid'])."', replies='$treplies', unapprovedposts='$nounposts'
| SET username='".$firstpost['username']."', uid='".intval($firstpost['uid'])."', lastpost='".intval($lastpost['dateline'])."', lastposter='".$lastpost['username']."', lastposteruid='".intval($lastpost['uid'])."', replies='$treplies', unapprovedposts='$nounposts'
|
WHERE tid='$tid' "); }
| WHERE tid='$tid' "); }
|
Zeile 1319 | Zeile 1354 |
---|
$db->query(" UPDATE ".TABLE_PREFIX."threads SET attachmentcount='{$attachment_count}'
|
$db->query(" UPDATE ".TABLE_PREFIX."threads SET attachmentcount='{$attachment_count}'
|
WHERE tid='$tid'
| WHERE tid='$tid'
|
"); }
| "); }
|
Zeile 1329 | Zeile 1364 |
---|
* @param int The thread ID */ function delete_thread($tid)
|
* @param int The thread ID */ function delete_thread($tid)
|
{ global $moderation; if(!is_object($moderation)) {
| { global $moderation; if(!is_object($moderation)) {
|
require_once MYBB_ROOT."inc/class_moderation.php"; $moderation = new Moderation; }
| require_once MYBB_ROOT."inc/class_moderation.php"; $moderation = new Moderation; }
|
Zeile 1353 | Zeile 1388 |
---|
$moderation = new Moderation; } return $moderation->delete_post($pid);
|
$moderation = new Moderation; } return $moderation->delete_post($pid);
|
}
| }
|
/** * Builds a forum jump menu
| /** * Builds a forum jump menu
|
Zeile 1379 | Zeile 1414 |
---|
if(!is_array($jumpfcache)) { if(!is_array($forum_cache))
|
if(!is_array($jumpfcache)) { if(!is_array($forum_cache))
|
{
| {
|
cache_forums(); } foreach($forum_cache as $fid => $forum)
| cache_forums(); } foreach($forum_cache as $fid => $forum)
|
Zeile 1387 | Zeile 1422 |
---|
if($forum['active'] != "no") { $jumpfcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
|
if($forum['active'] != "no") { $jumpfcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
|
}
| }
|
} } if(!is_array($permissioncache))
| } } if(!is_array($permissioncache))
|
Zeile 1455 | Zeile 1490 |
---|
/** * Generates a random string.
|
/** * Generates a random string.
|
*
| *
|
* @param int The length of the string to generate. * @return string The random string. */ function random_str($length="8")
|
* @param int The length of the string to generate. * @return string The random string. */ function random_str($length="8")
|
{
| {
|
$set = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8","9"); $str; for($i = 1; $i <= $length; $i++)
|
$set = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8","9"); $str; for($i = 1; $i <= $length; $i++)
|
{
| {
|
$ch = rand(0, count($set)-1); $str .= $set[$ch]; }
| $ch = rand(0, count($set)-1); $str .= $set[$ch]; }
|
Zeile 1489 | Zeile 1524 |
---|
}
if($displaygroup != 0)
|
}
if($displaygroup != 0)
|
{
| {
|
$usergroup = $displaygroup; } $ugroup = $groupscache[$usergroup];
| $usergroup = $displaygroup; } $ugroup = $groupscache[$usergroup];
|
Zeile 1588 | Zeile 1623 |
---|
*/ function build_clickable_smilies() {
|
*/ function build_clickable_smilies() {
|
global $db, $smiliecache, $theme, $templates, $lang, $mybb;
| global $db, $smiliecache, $theme, $templates, $lang, $mybb, $smiliecount;
|
if($mybb->settings['smilieinserter'] != "off" && $mybb->settings['smilieinsertercols'] && $mybb->settings['smilieinsertertot']) {
|
if($mybb->settings['smilieinserter'] != "off" && $mybb->settings['smilieinsertercols'] && $mybb->settings['smilieinsertertot']) {
|
$smiliecount = 0;
| if(!$smiliecount) { $query = $db->simple_select(TABLE_PREFIX."smilies", "COUNT(*) as smilies"); $smiliecount = $db->fetch_field($query, "smilies"); }
|
if(!$smiliecache) {
|
if(!$smiliecache) {
|
$query = $db->query(" SELECT * FROM ".TABLE_PREFIX."smilies WHERE showclickable != 'no' ORDER BY disporder ");
| $query = $db->simple_select(TABLE_PREFIX."smilies", "*", "showclickable != 'no'", array('order_by' => 'disporder'));
|
while($smilie = $db->fetch_array($query)) { $smiliecache[$smilie['find']] = $smilie['image'];
|
while($smilie = $db->fetch_array($query)) { $smiliecache[$smilie['find']] = $smilie['image'];
|
$smiliecount++;
| |
} } unset($smilie);
| } } unset($smilie);
|
Zeile 1632 | Zeile 1666 |
---|
{ $smilies .= "<tr>\n"; }
|
{ $smilies .= "<tr>\n"; }
|
$find = $db->escape_string(htmlspecialchars($find));
| $find = htmlspecialchars_uni($find);
|
$smilies .= "<td><img src=\"{$image}\" border=\"0\" class=\"smilie\" alt=\"{$find}\" /></td>\n"; $i++; $counter++;
| $smilies .= "<td><img src=\"{$image}\" border=\"0\" class=\"smilie\" alt=\"{$find}\" /></td>\n"; $i++; $counter++;
|
Zeile 1753 | Zeile 1787 |
---|
"tid" => $tid, "action" => $db->escape_string($action), "data" => $db->escape_string($data),
|
"tid" => $tid, "action" => $db->escape_string($action), "data" => $db->escape_string($data),
|
"ipaddress" => $session->ipaddress
| "ipaddress" => $db->escape_string($session->ipaddress)
|
); $db->insert_query(TABLE_PREFIX."moderatorlog", $sql_array); }
| ); $db->insert_query(TABLE_PREFIX."moderatorlog", $sql_array); }
|
Zeile 1826 | Zeile 1860 |
---|
$ip = $_SERVER['REMOTE_ADDR']; } }
|
$ip = $_SERVER['REMOTE_ADDR']; } }
|
| global $db; $ip = $db->escape_string(preg_replace("#([^.0-9 ]*)#", "", $ip));
|
return $ip; }
| return $ip; }
|
Zeile 2150 | Zeile 2187 |
---|
echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$db->query_count</font></td>\n"; echo "</tr>\n"; echo "<tr>\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 "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">PHP Proccessing Time:</font></b></td>\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 "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">MySQL Processing Time:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$querytime seconds ($percentsql%)</font></td>\n";
| echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$phptime seconds ($percentphp%)</font></td>\n"; echo "<td bgcolor=\"#EFEFEF\" width=\"25%\"><b><font face=\"Tahoma\" size=\"2\">MySQL Processing Time:</font></b></td>\n"; echo "<td bgcolor=\"#FEFEFE\" width=\"25%\"><font face=\"Tahoma\" size=\"2\">$querytime seconds ($percentsql%)</font></td>\n";
|
Zeile 2193 | Zeile 2230 |
---|
{ echo "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n"; echo "<tr>\n";
|
{ echo "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n"; echo "<tr>\n";
|
echo "<td colspan=\"8\" 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 "<tr>\n"; echo "<td style=\"background: #fff;\">".implode(", ", array_keys($templates->cache))."</td>\n";
|
Zeile 2519 | Zeile 2556 |
---|
else { if(isset($_SERVER['PATH_INFO']))
|
else { if(isset($_SERVER['PATH_INFO']))
|
{
| {
|
$location = $_SERVER['PATH_INFO']; } elseif(isset($_ENV['PATH_INFO']))
| $location = $_SERVER['PATH_INFO']; } elseif(isset($_ENV['PATH_INFO']))
|
Zeile 2529 | Zeile 2566 |
---|
elseif(isset($_ENV['PHP_SELF'])) { $location = $_ENV['PHP_SELF'];
|
elseif(isset($_ENV['PHP_SELF'])) { $location = $_ENV['PHP_SELF'];
|
}
| }
|
else { $location = $_SERVER['PHP_SELF'];
| else { $location = $_SERVER['PHP_SELF'];
|
Zeile 2539 | Zeile 2576 |
---|
$location .= "?".$_SERVER['QUERY_STRING']; } elseif(isset($_ENV['QUERY_STRING']))
|
$location .= "?".$_SERVER['QUERY_STRING']; } elseif(isset($_ENV['QUERY_STRING']))
|
{
| {
|
$location = "?".$_ENV['QUERY_STRING']; } }
| $location = "?".$_ENV['QUERY_STRING']; } }
|
Zeile 2560 | Zeile 2597 |
---|
} } return $location;
|
} } return $location;
|
}
/**
| }
/**
|
* Build a theme selection menu * * @param string The name of the menu
| * Build a theme selection menu * * @param string The name of the menu
|
Zeile 2574 | Zeile 2611 |
---|
*/ function build_theme_select($name, $selected="", $tid=0, $depth="", $usergroup_override=0) {
|
*/ function build_theme_select($name, $selected="", $tid=0, $depth="", $usergroup_override=0) {
|
global $db, $themeselect, $tcache, $lang, $mybb;
| global $db, $themeselect, $tcache, $lang, $mybb, $limit;
|
if($tid == 0) { $themeselect = "<select name=\"$name\">"; $themeselect .= "<option value=\"0\">".$lang->use_default."</option>\n"; $themeselect .= "<option value=\"0\">-----------</option>\n";
|
if($tid == 0) { $themeselect = "<select name=\"$name\">"; $themeselect .= "<option value=\"0\">".$lang->use_default."</option>\n"; $themeselect .= "<option value=\"0\">-----------</option>\n";
|
}
| $tid = 1; }
|
if(!is_array($tcache)) {
|
if(!is_array($tcache)) {
|
$query = $db->query(" SELECT name, pid, tid, allowedgroups FROM ".TABLE_PREFIX."themes WHERE pid != 0 ORDER BY pid, name ");
| $query = $db->simple_select(TABLE_PREFIX."themes", "name, pid, tid, allowedgroups", "pid != '0'", array('order_by' => 'pid, name'));
|
while($theme = $db->fetch_array($query)) {
|
while($theme = $db->fetch_array($query)) {
|
$tcache[$theme['pid']][] = $theme;
| $tcache[$theme['pid']][$theme['tid']] = $theme;
|
} }
|
} }
|
if(is_array($tcache))
| if(is_array($tcache[$tid]))
|
{ // Figure out what groups this user is in if($mybb->user['additionalgroups'])
| { // Figure out what groups this user is in if($mybb->user['additionalgroups'])
|
Zeile 2603 | Zeile 2640 |
---|
} $in_groups[] = $mybb->user['usergroup'];
|
} $in_groups[] = $mybb->user['usergroup'];
|
foreach($tcache as $misc)
| foreach($tcache[$tid] as $theme)
|
{
|
{
|
foreach($misc as $theme)
| $sel = ""; // Make theme allowed groups into array $is_allowed = false; if($theme['allowedgroups'] != "all" && $theme['allowedgroups'] != "")
|
{
|
{
|
$sel = ""; // Make theme allowed groups into array $is_allowed = false; if($theme['allowedgroups'] != "all" && $theme['allowedgroups'] != "")
| $allowed_groups = explode(",", $theme['allowedgroups']); // See if groups user is in is allowed foreach($allowed_groups as $agid)
|
{
|
{
|
$allowed_groups = explode(",", $theme['allowedgroups']); // See if groups user is in is allowed foreach($allowed_groups as $agid)
| if(in_array($agid, $in_groups))
|
{
|
{
|
if(in_array($agid, $in_groups)) { $is_allowed = true; break; } } } // Show theme if allowed, or if override is on if($is_allowed || $theme['allowedgroups'] == "all" || $usergroup_override == 1) { if($theme['tid'] == $selected) { $sel = " selected=\"selected\""; } if($theme['pid'] != 0) { $themeselect .= "<option value=\"".$theme['tid']."\"$sel>".$depth.$theme['name']."</option>"; $depthit = $depth."--"; } if(array_key_exists($theme['tid'], $tcache)) { build_theme_select($name, $selected, $theme['tid'], $depthit, $usergroup_override);
| $is_allowed = true; break;
|
}
|
}
|
| } } // Show theme if allowed, or if override is on if($is_allowed || $theme['allowedgroups'] == "all" || $theme['allowedgroups'] == "" || $usergroup_override == 1) { if($theme['tid'] == $selected) { $sel = " selected=\"selected\""; } if($theme['pid'] != 0) { $themeselect .= "<option value=\"".$theme['tid']."\"$sel>".$depth.$theme['name']."</option>"; $depthit = $depth."--"; } if(array_key_exists($theme['tid'], $tcache)) { build_theme_select($name, $selected, $theme['tid'], $depthit, $usergroup_override);
|
} } }
|
} } }
|
}
| }
|
if(!$tid) { $themeselect .= "</select>"; }
|
if(!$tid) { $themeselect .= "</select>"; }
|
|
|
return $themeselect; }
|
return $themeselect; }
|
| |
/** * Custom function for htmlspecialchars which takes in to account unicode
| /** * Custom function for htmlspecialchars which takes in to account unicode
|
Zeile 2838 | Zeile 2876 |
---|
*/ function my_strlen($string) {
|
*/ function my_strlen($string) {
|
$string = preg_replace("#&\#(0-9]+);#", "-", $string); if(function_exists("mb_strlen")) { $string_length = mb_strlen($string); } else { $string_length = strlen($string); }
| global $lang;
$string = preg_replace("#&\#(0-9]+);#", "-", $string);
if(strtolower($lang->settings['charset']) == "utf-8") { // Get rid of any excess RTL and LTR override for they are the workings of the devil $string = str_replace(dec_to_utf8(8238), "", $string); $string = str_replace(dec_to_utf8(8237), "", $string);
// Remove dodgy whitspaces $string = str_replace(chr(0xCA), "", $string); } $string = trim($string);
if(function_exists("mb_strlen")) { $string_length = mb_strlen($string); } else { $string_length = strlen($string); }
|
|
|
return $string_length;
| return $string_length;
|
}
/**
| }
/**
|
Zeile 2885 | Zeile 2937 |
---|
}
return $cut_string;
|
}
return $cut_string;
|
| }
/** * lowers the case of a string, mb strings accounted for * * @param string The string to lower. * @return int The lowered string. */ function my_strtolower($string) { if(function_exists("mb_strtolower")) { $string = mb_strtolower($string); } else { $string = strtolower($string); }
return $string; }
/** * Finds a needle in a haystack and returns it position, mb strings accounted for * * @param string String to look in (haystack) * @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 == '') { return false; }
if(function_exists("mb_strpos")) { $position = mb_strpos($haystack, $needle, $offset); } else { $position = strpos($haystack, $needle, $offset); }
return $position; }
/** * ups the case of a string, mb strings accounted for * * @param string The string to up. * @return int The uped string. */ function my_strtoupper($string) { if(function_exists("mb_strtoupper")) { $string = mb_strtoupper($string); } else { $string = strtoupper($string); }
return $string;
|
}
/**
| }
/**
|
Zeile 2895 | Zeile 3014 |
---|
*/ function unhtmlentities($string) {
|
*/ function unhtmlentities($string) {
|
// replace numeric entities
| // Replace numeric entities
|
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string); $string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
|
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string); $string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
|
// replace literal entities
| // Replace literal entities
|
$trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl);
|
$trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl);
|
|
|
return strtr($string, $trans_tbl); }
| return strtr($string, $trans_tbl); }
|
Zeile 3179 | Zeile 3300 |
---|
$inactive[] = $fid; foreach($forum_cache as $fid1 => $forum1) {
|
$inactive[] = $fid; foreach($forum_cache as $fid1 => $forum1) {
|
if(strpos(",".$forum1['parentlist'].",", ",".$fid.",") !== false)
| if(strpos(",".$forum1['parentlist'].",", ",".$fid.",") !== false && !in_array($fid1, $inactive))
|
{
|
{
|
$inactive[] = $fid;
| $inactive[] = $fid1;
|
} } }
| } } }
|
Zeile 3265 | Zeile 3386 |
---|
*/ function validate_email_format($email) {
|
*/ function validate_email_format($email) {
|
if(!preg_match("/^(.+)@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/si", $email))
| if(!preg_match("/^(.+)@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/si", $email) || strpos($email, ' ') !== false)
|
{ return false; }
| { return false; }
|
Zeile 3351 | Zeile 3472 |
---|
return false; } return $dest;
|
return false; } return $dest;
|
| }
/** * Return a list of banned usernames. * * @return array The array of banned usernames. */ function get_banned_usernames() { global $mybb; $banned_usernames = explode(",", $mybb->settings['bannedusernames']); $banned_usernames = array_map("trim", $banned_usernames); $banned_usernames = array_map("strtolower", $banned_usernames); return $banned_usernames; }
/** * Checks if a username has been disallowed for registration/use. * * @param string The username * @return boolean True if banned, false if not banned */ function is_banned_username($username) { $banned_usernames = get_banned_usernames(); if(in_array(strtolower($username), $banned_usernames)) { return true; } else { return false; } }
/** * Return a list of banned email addresses. * * @return array The array of banned email addresses. */ function get_banned_emails() { global $mybb; $banned_emails = explode(",", $mybb->settings['bannedemails']); $banned_emails = array_map("trim", $banned_emails); $banned_emails = array_map("strtolower", $banned_emails); return $banned_emails; }
/** * Check if a specific email address has been banned. * * @param string The email address. * @return boolean True if banned, false if not banned */ function is_banned_email($email) { $banned_emails = get_banned_emails(); $email = strtolower($email); foreach($banned_emails as $banned_email) { if($banned_email != "" && strpos($email, $banned_email) !== false) { return true; } } return false; }
/** * Return a list of banned IP addresses. * * @return array The array of banned IP addresses. */ function get_banned_ips() { global $mybb; $banned_ips = explode(",", $mybb->settings['bannedips']); $banned_ips = array_map("trim", $banned_ips); return $banned_ips; }
/** * Checks if a specific IP address has been banned. * * @param string The IP address. * @return boolean True if banned, false if not banned. */ function is_banned_ip($ip_address) { $banned_ips = get_banned_ips(); foreach($banned_ips as $banned_ip) { if($banned_ip != "" && strpos($ip_address, $banned_ip) !== false) { return true; } } return false;
|
}
/**
| }
/**
|