Zeile 6 | Zeile 6 |
---|
* Website: http://mybb.com * License: http://mybb.com/about/license *
|
* Website: http://mybb.com * License: http://mybb.com/about/license *
|
* $Id: class_datacache.php 5057 2010-06-23 08:07:55Z RyanGordon $
| * $Id$
|
*/
class datacache
| */
class datacache
|
Zeile 95 | Zeile 95 |
---|
function read($name, $hard=false) { global $db, $mybb;
|
function read($name, $hard=false) { global $db, $mybb;
|
|
|
// Already have this cache and we're not doing a hard refresh? Return cached copy if(isset($this->cache[$name]) && $hard == false) { return $this->cache[$name]; }
|
// Already have this cache and we're not doing a hard refresh? Return cached copy if(isset($this->cache[$name]) && $hard == false) { return $this->cache[$name]; }
|
| // If we're not hard refreshing, and this cache doesn't exist, return false // It would have been loaded pre-global if it did exist anyway... else if($hard == false && !is_object($this->handler)) { return false; }
|
if(is_object($this->handler)) { $data = $this->handler->fetch($name);
|
if(is_object($this->handler)) { $data = $this->handler->fetch($name);
|
|
|
// No data returned - cache gone bad? if($data === false) {
| // No data returned - cache gone bad? if($data === false) {
|
Zeile 113 | Zeile 119 |
---|
$query = $db->simple_select("datacache", "title,cache", "title='".$db->escape_string($name)."'"); $cache_data = $db->fetch_array($query); $data = @unserialize($cache_data['cache']);
|
$query = $db->simple_select("datacache", "title,cache", "title='".$db->escape_string($name)."'"); $cache_data = $db->fetch_array($query); $data = @unserialize($cache_data['cache']);
|
if($data == null) { $data = ''; }
|
|
// Update cache for handler $this->handler->put($name, $data);
|
// Update cache for handler $this->handler->put($name, $data);
|
} }
| } }
|
// Else, using internal database cache else { $query = $db->simple_select("datacache", "title,cache", "title='$name'"); $cache_data = $db->fetch_array($query);
|
// Else, using internal database cache else { $query = $db->simple_select("datacache", "title,cache", "title='$name'"); $cache_data = $db->fetch_array($query);
|
|
|
if(!$cache_data['title']) { $data = false;
| if(!$cache_data['title']) { $data = false;
|
Zeile 144 | Zeile 146 |
---|
if($data !== false) { return $data;
|
if($data !== false) { return $data;
|
}
| }
|
else { return false;
| else { return false;
|
Zeile 156 | Zeile 158 |
---|
* * @param string The cache content identifier. * @param string The cache content.
|
* * @param string The cache content identifier. * @param string The cache content.
|
*/
| */
|
function update($name, $contents) { global $db, $mybb;
| function update($name, $contents) { global $db, $mybb;
|
Zeile 170 | Zeile 172 |
---|
"title" => $db->escape_string($name), "cache" => $dbcontents );
|
"title" => $db->escape_string($name), "cache" => $dbcontents );
|
$db->replace_query("datacache", $replace_array, "title", false);
| $db->replace_query("datacache", $replace_array, "", false);
|
// Do we have a cache handler we're using? if(is_object($this->handler))
| // Do we have a cache handler we're using? if(is_object($this->handler))
|
Zeile 190 | Zeile 192 |
---|
global $db;
if(is_object($this->handler))
|
global $db;
if(is_object($this->handler))
|
{
| {
|
$size = $this->handler->size_of($name); if(!$size) {
| $size = $this->handler->size_of($name); if(!$size) {
|
Zeile 211 | Zeile 213 |
---|
} // Using MySQL as cache else
|
} // Using MySQL as cache else
|
{
| {
|
if($name)
|
if($name)
|
{
| {
|
$query = $db->simple_select("datacache", "cache", "title='{$name}'"); return strlen($db->fetch_field($query, "cache")); }
| $query = $db->simple_select("datacache", "cache", "title='{$name}'"); return strlen($db->fetch_field($query, "cache")); }
|
Zeile 221 | Zeile 223 |
---|
{ return $db->fetch_size("datacache"); }
|
{ return $db->fetch_size("datacache"); }
|
} }
| } }
|
/** * Update the MyBB version in the cache.
| /** * Update the MyBB version in the cache.
|
Zeile 255 | Zeile 257 |
---|
{ $type['extension'] = my_strtolower($type['extension']); $types[$type['extension']] = $type;
|
{ $type['extension'] = my_strtolower($type['extension']); $types[$type['extension']] = $type;
|
}
| }
|
$this->update("attachtypes", $types); }
| $this->update("attachtypes", $types); }
|
Zeile 277 | Zeile 279 |
---|
} $this->update("smilies", $smilies);
|
} $this->update("smilies", $smilies);
|
}
/**
| }
/**
|
* Update the posticon cache. * */
| * Update the posticon cache. * */
|
Zeile 521 | Zeile 523 |
---|
foreach($main as $forum) { $forum_mods = '';
|
foreach($main as $forum) { $forum_mods = '';
|
if($moderators)
| if(count($moderators))
|
{ $forum_mods = $moderators; } // Append - local settings override that of a parent - array_merge works here if($this->moderators[$forum['fid']]) {
|
{ $forum_mods = $moderators; } // Append - local settings override that of a parent - array_merge works here if($this->moderators[$forum['fid']]) {
|
if(is_array($forum_mods))
| if(is_array($forum_mods) && count($forum_mods))
|
{
|
{
|
$forum_mods = $forum_mods + $this->moderators[$forum['fid']];
| $forum_mods = array_merge($forum_mods, $this->moderators[$forum['fid']]);
|
} else {
| } else {
|
Zeile 708 | Zeile 710 |
---|
$banned_ips[$banned_ip['fid']] = $banned_ip; } $this->update("bannedips", $banned_ips);
|
$banned_ips[$banned_ip['fid']] = $banned_ip; } $this->update("bannedips", $banned_ips);
|
| }
/** * Updates the banned emails cache */ function update_bannedemails() { global $db;
$banned_emails = array(); $query = $db->simple_select("banfilters", "fid, filter", "type = '3'");
while($banned_email = $db->fetch_array($query)) { $banned_emails[$banned_email['fid']] = $banned_email; }
$this->update("bannedemails", $banned_emails);
|
}
/**
| }
/**
|
Zeile 726 | Zeile 746 |
---|
} function update_most_replied_threads()
|
} function update_most_replied_threads()
|
{ global $db, $mybb; $threads = array();
| { global $db, $mybb; $threads = array();
|
$query = $db->simple_select("threads", "tid, subject, replies, fid", "visible='1'", array('order_by' => 'replies', 'order_dir' => 'DESC', 'limit_start' => 0, 'limit' => $mybb->settings['statslimit'])); while($thread = $db->fetch_array($query)) {
| $query = $db->simple_select("threads", "tid, subject, replies, fid", "visible='1'", array('order_by' => 'replies', 'order_dir' => 'DESC', 'limit_start' => 0, 'limit' => $mybb->settings['statslimit'])); while($thread = $db->fetch_array($query)) {
|
Zeile 753 | Zeile 773 |
---|
} $this->update("most_viewed_threads", $threads);
|
} $this->update("most_viewed_threads", $threads);
|
}
| }
|
function update_banned() {
| function update_banned() {
|
Zeile 775 | Zeile 795 |
---|
global $db; $birthdays = array();
|
global $db; $birthdays = array();
|
|
|
// Get today, yesturday, and tomorrow's time (for different timezones) $bdaytime = TIME_NOW; $bdaydate = my_date("j-n", $bdaytime, '', 0);
| // Get today, yesturday, and tomorrow's time (for different timezones) $bdaytime = TIME_NOW; $bdaydate = my_date("j-n", $bdaytime, '', 0);
|
Zeile 806 | Zeile 826 |
---|
} function update_groupleaders()
|
} function update_groupleaders()
|
{ global $db; $groupleaders = array();
| { global $db; $groupleaders = array();
|
$query = $db->simple_select("groupleaders"); while($groupleader = $db->fetch_array($query))
|
$query = $db->simple_select("groupleaders"); while($groupleader = $db->fetch_array($query))
|
{
| {
|
$groupleaders[$groupleader['uid']][] = $groupleader;
|
$groupleaders[$groupleader['uid']][] = $groupleader;
|
}
| }
|
$this->update("groupleaders", $groupleaders); }
|
$this->update("groupleaders", $groupleaders); }
|
| function update_threadprefixes() { global $db;
$prefixes = array(); $query = $db->simple_select("threadprefixes", "*", "", array("order_by" => "pid"));
while($prefix = $db->fetch_array($query)) { $prefixes[$prefix['pid']] = $prefix; }
$this->update("threadprefixes", $prefixes); }
function update_forumsdisplay() { global $db;
$fd_statistics = array();
$time = TIME_NOW; // Look for announcements that don't end, or that are ending some time in the future $query = $db->simple_select("announcements", "fid", "enddate = '0' OR enddate > '{$time}'", array("order_by" => "aid"));
if($db->num_rows($query)) { while($forum = $db->fetch_array($query)) { if(!isset($fd_statistics[$forum['fid']]['announcements'])) { $fd_statistics[$forum['fid']]['announcements'] = 1; } } }
// Do we have any mod tools to use in our forums? $query = $db->simple_select("modtools", "forums, tid", "type = 't'", array("order_by" => "tid"));
if($db->num_rows($query)) { unset($forum); while($tool = $db->fetch_array($query)) { $forums = explode(",", $tool['forums']);
foreach($forums as $forum) { if(!$forum) { $forum = -1; }
if(!isset($fd_statistics[$forum]['modtools'])) { $fd_statistics[$forum]['modtools'] = 1; } } } }
$this->update("forumsdisplay", $fd_statistics); }
|
/* Other, extra functions for reloading caches if we just changed to another cache extension (i.e. from db -> xcache) */ function reload_mostonline() {
| /* Other, extra functions for reloading caches if we just changed to another cache extension (i.e. from db -> xcache) */ function reload_mostonline() {
|