Vergleich inc/class_datacache.php - 1.8.6 - 1.8.14

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 20Zeile 20
	/**
* The current cache handler we're using
*

	/**
* The current cache handler we're using
*

	 * @var apcCacheHandler|diskCacheHandler|eacceleratorCacheHandler|memcacheCacheHandler|memcachedCacheHandler|xcacheCacheHandler

	 * @var CacheHandlerInterface

	 */
public $handler = null;

	 */
public $handler = null;


/**
* Whether or not to exit the script if we cannot load the specified extension
*
* @var boolean
*/
var $silent = false;

 

/**
* A count of the number of calls.


/**
* A count of the number of calls.

Zeile 40Zeile 33

/**
* A list of the performed calls.


/**
* A list of the performed calls.

	 *

	 *

	 * @var array
*/
public $calllist = array();

	 * @var array
*/
public $calllist = array();

Zeile 56Zeile 49
	 * Explanation of a cache call.
*
* @var string

	 * Explanation of a cache call.
*
* @var string

	 */

	 */

	public $cache_debug;

/**

	public $cache_debug;

/**

Zeile 66Zeile 59
	function cache()
{
global $db, $mybb;

	function cache()
{
global $db, $mybb;

 

require_once MYBB_ROOT."/inc/cachehandlers/interface.php";


switch($mybb->config['cache_store'])
{
// Disk cache
case "files":
require_once MYBB_ROOT."/inc/cachehandlers/disk.php";


switch($mybb->config['cache_store'])
{
// Disk cache
case "files":
require_once MYBB_ROOT."/inc/cachehandlers/disk.php";

				$this->handler = new diskCacheHandler($this->silent);
break;

				$this->handler = new diskCacheHandler();
break;

			// Memcache cache
case "memcache":
require_once MYBB_ROOT."/inc/cachehandlers/memcache.php";

			// Memcache cache
case "memcache":
require_once MYBB_ROOT."/inc/cachehandlers/memcache.php";

				$this->handler = new memcacheCacheHandler($this->silent);
break;

				$this->handler = new memcacheCacheHandler();
break;

			// Memcached cache
case "memcached":
require_once MYBB_ROOT."/inc/cachehandlers/memcached.php";

			// Memcached cache
case "memcached":
require_once MYBB_ROOT."/inc/cachehandlers/memcached.php";

				$this->handler = new memcachedCacheHandler($this->silent);
break;

				$this->handler = new memcachedCacheHandler();
break;

			// eAccelerator cache
case "eaccelerator":
require_once MYBB_ROOT."/inc/cachehandlers/eaccelerator.php";

			// eAccelerator cache
case "eaccelerator":
require_once MYBB_ROOT."/inc/cachehandlers/eaccelerator.php";

				$this->handler = new eacceleratorCacheHandler($this->silent);
break;

				$this->handler = new eacceleratorCacheHandler();
break;

			// Xcache cache
case "xcache":
require_once MYBB_ROOT."/inc/cachehandlers/xcache.php";

			// Xcache cache
case "xcache":
require_once MYBB_ROOT."/inc/cachehandlers/xcache.php";

				$this->handler = new xcacheCacheHandler($this->silent);
break;

				$this->handler = new xcacheCacheHandler();
break;

			// APC cache
case "apc":
require_once MYBB_ROOT."/inc/cachehandlers/apc.php";

			// APC cache
case "apc":
require_once MYBB_ROOT."/inc/cachehandlers/apc.php";

				$this->handler = new apcCacheHandler($this->silent);

				$this->handler = new apcCacheHandler();

				break;
}


				break;
}


		if(is_object($this->handler))

		if($this->handler instanceof CacheHandlerInterface)

		{

		{

			if(method_exists($this->handler, "connect"))

			if(!$this->handler->connect())

			{

			{

				if(!$this->handler->connect())
{
$this->handler = null;
}

				$this->handler = null;




			}
}
else

			}
}
else

Zeile 140Zeile 132
		}
// 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...

		}
// 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))

		else if($hard == false && !($this->handler instanceof CacheHandlerInterface))

		{
return false;
}


		{
return false;
}


		if(is_object($this->handler))

		if($this->handler instanceof CacheHandlerInterface)

		{
get_execution_time();


		{
get_execution_time();


Zeile 239Zeile 231
		$db->replace_query("datacache", $replace_array, "", false);

// Do we have a cache handler we're using?

		$db->replace_query("datacache", $replace_array, "", false);

// Do we have a cache handler we're using?

		if(is_object($this->handler))

		if($this->handler instanceof CacheHandlerInterface)

		{
get_execution_time();


		{
get_execution_time();


Zeile 273Zeile 265
		$where = "title = '{$dbname}'";

// Delete on-demand or handler cache

		$where = "title = '{$dbname}'";

// Delete on-demand or handler cache

		if($this->handler)

		if($this->handler instanceof CacheHandlerInterface)

		{
get_execution_time();


		{
get_execution_time();


Zeile 314Zeile 306

$where .= " OR title LIKE '{$ldbname}=_%' ESCAPE '='";



$where .= " OR title LIKE '{$ldbname}=_%' ESCAPE '='";


			if($this->handler)

			if($this->handler instanceof CacheHandlerInterface)

			{
$query = $db->simple_select("datacache", "title", $where);


			{
$query = $db->simple_select("datacache", "title", $where);


Zeile 413Zeile 405
	{
global $db;


	{
global $db;


		if(is_object($this->handler))

		if($this->handler instanceof CacheHandlerInterface)

		{
$size = $this->handler->size_of($name);
if(!$size)

		{
$size = $this->handler->size_of($name);
if(!$size)

Zeile 474Zeile 466

$types = array();



$types = array();


		$query = $db->simple_select("attachtypes", "*");

		$query = $db->simple_select('attachtypes', '*', 'enabled=1');

		while($type = $db->fetch_array($query))
{
$type['extension'] = my_strtolower($type['extension']);

		while($type = $db->fetch_array($query))
{
$type['extension'] = my_strtolower($type['extension']);

Zeile 489Zeile 481
	 *
*/
function update_smilies()

	 *
*/
function update_smilies()

	{
global $db;


	{
global $db;


		$smilies = array();

$query = $db->simple_select("smilies", "*", "", array('order_by' => 'disporder', 'order_dir' => 'ASC'));

		$smilies = array();

$query = $db->simple_select("smilies", "*", "", array('order_by' => 'disporder', 'order_dir' => 'ASC'));

Zeile 524Zeile 516

/**
* Update the badwords cache.


/**
* Update the badwords cache.

	 *
*/

	 *
*/

	function update_badwords()
{
global $db;

$badwords = array();

	function update_badwords()
{
global $db;

$badwords = array();





		$query = $db->simple_select("badwords", "*");
while($badword = $db->fetch_array($query))
{

		$query = $db->simple_select("badwords", "*");
while($badword = $db->fetch_array($query))
{

Zeile 543Zeile 535

/**
* Update the usergroups cache.


/**
* Update the usergroups cache.

	 *
*/

	 *
*/

	function update_usergroups()
{
global $db;

	function update_usergroups()
{
global $db;

Zeile 556Zeile 548
		{
$gs[$g['gid']] = $g;
}

		{
$gs[$g['gid']] = $g;
}





		$this->update("usergroups", $gs);
}

/**
* Update the forum permissions cache.

		$this->update("usergroups", $gs);
}

/**
* Update the forum permissions cache.

	 *

	 *

	 * @return bool When failed, returns false.
*/
function update_forumpermissions()

	 * @return bool When failed, returns false.
*/
function update_forumpermissions()

Zeile 599Zeile 591
		while($forum_permission = $db->fetch_array($query))
{
$this->forum_permissions[$forum_permission['fid']][$forum_permission['gid']] = $forum_permission;

		while($forum_permission = $db->fetch_array($query))
{
$this->forum_permissions[$forum_permission['fid']][$forum_permission['gid']] = $forum_permission;

		}

		}


$this->build_forum_permissions();
$this->update("forumpermissions", $this->built_forum_permissions);


$this->build_forum_permissions();
$this->update("forumpermissions", $this->built_forum_permissions);

Zeile 637Zeile 629
						}
}
$this->build_forum_permissions($perms, $forum['fid']);

						}
}
$this->build_forum_permissions($perms, $forum['fid']);

				}
}
}
}

				}
}
}
}


/**
* Update the stats cache (kept for the sake of being able to rebuild this cache via the cache interface)


/**
* Update the stats cache (kept for the sake of being able to rebuild this cache via the cache interface)

	 *
*/

	 *
*/

	function update_stats()
{

	function update_stats()
{

		global $db;


 
		require_once MYBB_ROOT."inc/functions_rebuild.php";
rebuild_stats();
}

		require_once MYBB_ROOT."inc/functions_rebuild.php";
rebuild_stats();
}

Zeile 659Zeile 649
	 *
*/
function update_statistics()

	 *
*/
function update_statistics()

	{

	{

		global $db;

$query = $db->simple_select('users', 'uid, username, referrals', 'referrals>0', array('order_by' => 'referrals', 'order_dir' => 'DESC', 'limit' => 1));

		global $db;

$query = $db->simple_select('users', 'uid, username, referrals', 'referrals>0', array('order_by' => 'referrals', 'order_dir' => 'DESC', 'limit' => 1));

Zeile 680Zeile 670
			SELECT u.uid, u.username, COUNT(pid) AS poststoday
FROM '.TABLE_PREFIX.'posts p
LEFT JOIN '.TABLE_PREFIX.'users u ON (p.uid=u.uid)

			SELECT u.uid, u.username, COUNT(pid) AS poststoday
FROM '.TABLE_PREFIX.'posts p
LEFT JOIN '.TABLE_PREFIX.'users u ON (p.uid=u.uid)

			WHERE p.dateline>'.$timesearch.'

			WHERE p.dateline>'.$timesearch.' AND p.visible=1

			GROUP BY '.$group_by.' ORDER BY poststoday DESC
LIMIT 1
');

			GROUP BY '.$group_by.' ORDER BY poststoday DESC
LIMIT 1
');

Zeile 697Zeile 687
		);

$this->update('statistics', $statistics);

		);

$this->update('statistics', $statistics);

	}

	}


/**
* Update the moderators cache.


/**
* Update the moderators cache.

Zeile 715Zeile 705
		if(!is_array($forum_cache))
{
return false;

		if(!is_array($forum_cache))
{
return false;

		}


		}


		reset($forum_cache);
$fcache = array();


		reset($forum_cache);
$fcache = array();


Zeile 753Zeile 743
			function sort_moderators_by_usernames($a, $b)
{
return strcasecmp($a['username'], $b['username']);

			function sort_moderators_by_usernames($a, $b)
{
return strcasecmp($a['username'], $b['username']);

			}

			}

		}

//Fetch moderating usergroups from the database

		}

//Fetch moderating usergroups from the database

Zeile 789Zeile 779
	 *
*/
function update_awaitingactivation()

	 *
*/
function update_awaitingactivation()

	{
global $db;

	{
global $db;


$query = $db->simple_select('users', 'COUNT(uid) AS awaitingusers', 'usergroup=\'5\'');
$awaitingusers = (int)$db->fetch_field($query, 'awaitingusers');

$data = array(
'users' => $awaitingusers,


$query = $db->simple_select('users', 'COUNT(uid) AS awaitingusers', 'usergroup=\'5\'');
$awaitingusers = (int)$db->fetch_field($query, 'awaitingusers');

$data = array(
'users' => $awaitingusers,

			'time'	=> TIME_NOW 

			'time'	=> TIME_NOW

		);

$this->update('awaitingactivation', $data);

		);

$this->update('awaitingactivation', $data);

Zeile 818Zeile 808
			{
foreach($main as $forum)
{

			{
foreach($main as $forum)
{

					$forum_mods = '';

					$forum_mods = array();

					if(count($moderators))
{
$forum_mods = $moderators;

					if(count($moderators))
{
$forum_mods = $moderators;

Zeile 847Zeile 837
	 *
*/
function update_forums()

	 *
*/
function update_forums()

	{

	{

		global $db;

$forums = array();

		global $db;

$forums = array();

Zeile 876Zeile 866
	 *
*/
function update_usertitles()

	 *
*/
function update_usertitles()

	{

	{

		global $db;

$usertitles = array();

		global $db;

$usertitles = array();

Zeile 897Zeile 887
	{
global $db, $mybb;


	{
global $db, $mybb;


		$reports = array();

 
		$query = $db->simple_select("reportedcontent", "COUNT(rid) AS unreadcount", "reportstatus='0'");
$num = $db->fetch_array($query);


		$query = $db->simple_select("reportedcontent", "COUNT(rid) AS unreadcount", "reportstatus='0'");
$num = $db->fetch_array($query);


Zeile 906Zeile 895

$query = $db->simple_select("reportedcontent", "dateline", "reportstatus='0'", array('order_by' => 'dateline', 'order_dir' => 'DESC'));
$latest = $db->fetch_array($query);


$query = $db->simple_select("reportedcontent", "dateline", "reportstatus='0'", array('order_by' => 'dateline', 'order_dir' => 'DESC'));
$latest = $db->fetch_array($query);


$reasons = array();

if(!empty($mybb->settings['reportreasons']))
{
$options = $mybb->settings['reportreasons'];
$options = explode("\n", $options);

foreach($options as $option)
{
$option = explode("=", $option);
$reasons[$option[0]] = $option[1];
}
}

 

$reports = array(
"unread" => $num['unreadcount'],
"total" => $total['reportcount'],


$reports = array(
"unread" => $num['unreadcount'],
"total" => $total['reportcount'],

			"lastdateline" => $latest['dateline'],
"reasons" => $reasons

			"lastdateline" => $latest['dateline']


		);

$this->update("reportedcontent", $reports);

		);

$this->update("reportedcontent", $reports);

Zeile 1082Zeile 1056

$threads = array();



$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']));

		$query = $db->simple_select("threads", "tid, subject, replies, fid, uid", "visible='1'", array('order_by' => 'replies', 'order_dir' => 'DESC', 'limit_start' => 0, 'limit' => $mybb->settings['statslimit']));

		while($thread = $db->fetch_array($query))
{
$threads[] = $thread;

		while($thread = $db->fetch_array($query))
{
$threads[] = $thread;

Zeile 1097Zeile 1071

$threads = array();



$threads = array();


		$query = $db->simple_select("threads", "tid, subject, views, fid", "visible='1'", array('order_by' => 'views', 'order_dir' => 'DESC', 'limit_start' => 0, 'limit' => $mybb->settings['statslimit']));

		$query = $db->simple_select("threads", "tid, subject, views, fid, uid", "visible='1'", array('order_by' => 'views', 'order_dir' => 'DESC', 'limit_start' => 0, 'limit' => $mybb->settings['statslimit']));

		while($thread = $db->fetch_array($query))
{
$threads[] = $thread;

		while($thread = $db->fetch_array($query))
{
$threads[] = $thread;

		}

		}


$this->update("most_viewed_threads", $threads);


$this->update("most_viewed_threads", $threads);

	}


	}


	function update_banned()
{
global $db;

	function update_banned()
{
global $db;





		$bans = array();

$query = $db->simple_select("banned");

		$bans = array();

$query = $db->simple_select("banned");

Zeile 1119Zeile 1093
		}

$this->update("banned", $bans);

		}

$this->update("banned", $bans);

	}


	}


	function update_birthdays()
{
global $db;

	function update_birthdays()
{
global $db;

Zeile 1157Zeile 1131
	}

function update_groupleaders()

	}

function update_groupleaders()

	{

	{

		global $db;

$groupleaders = array();

		global $db;

$groupleaders = array();

Zeile 1194Zeile 1168

$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"));


$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($db->num_rows($query))
{
while($forum = $db->fetch_array($query))

Zeile 1250Zeile 1224
		}

$this->update("profilefields", $fields);

		}

$this->update("profilefields", $fields);

 
	}

/**
* Update the report reasons cache.
*
*/
function update_reportreasons($no_plugins = false)
{
global $db;

$content_types = array('post', 'profile', 'reputation');
if(!$no_plugins)
{
global $plugins;
$content_types = $plugins->run_hooks("report_content_types", $content_types);
}

$reasons = array();

$query = $db->simple_select("reportreasons", "*", "", array('order_by' => 'disporder'));
while($reason = $db->fetch_array($query))
{
if($reason['appliesto'] == 'all')
{
foreach($content_types as $content)
{
$reasons[$content][] = array(
'rid' => $reason['rid'],
'title' => $reason['title'],
'extra' => $reason['extra'],
);
}
}
elseif($reason['appliesto'] != '')
{
$appliesto = explode(",", $reason['appliesto']);
foreach($appliesto as $content)
{
$reasons[$content][] = array(
'rid' => $reason['rid'],
'title' => $reason['title'],
'extra' => $reason['extra'],
);
}
}
}

$this->update("reportreasons", $reasons);

	}

/* Other, extra functions for reloading caches if we just changed to another cache extension (i.e. from db -> xcache) */

	}

/* Other, extra functions for reloading caches if we just changed to another cache extension (i.e. from db -> xcache) */