Vergleich inc/class_datacache.php - 1.8.1 - 1.8.6

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

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

	 * @var object

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

	 */
public $handler = null;


	 */
public $handler = null;


Zeile 117Zeile 117
			$query = $db->simple_select("datacache", "title,cache");
while($data = $db->fetch_array($query))
{

			$query = $db->simple_select("datacache", "title,cache");
while($data = $db->fetch_array($query))
{

				$this->cache[$data['title']] = my_unserialize($data['cache']);

				$this->cache[$data['title']] = unserialize($data['cache']);

			}
}
}

			}
}
}

Zeile 125Zeile 125
	/**
* Read cache from files or db.
*

	/**
* Read cache from files or db.
*

	 * @param string The cache component to read.
* @param boolean If true, cannot be overwritten during script execution.
* @return unknown

	 * @param string $name The cache component to read.
* @param boolean $hard If true, cannot be overwritten during script execution.
* @return mixed

	 */
function read($name, $hard=false)
{

	 */
function read($name, $hard=false)
{

Zeile 171Zeile 171
				// Fetch from database
$query = $db->simple_select("datacache", "title,cache", "title='".$db->escape_string($name)."'");
$cache_data = $db->fetch_array($query);

				// Fetch from database
$query = $db->simple_select("datacache", "title,cache", "title='".$db->escape_string($name)."'");
$cache_data = $db->fetch_array($query);

				$data = my_unserialize($cache_data['cache']);

				$data = unserialize($cache_data['cache']);


// Update cache for handler
get_execution_time();


// Update cache for handler
get_execution_time();

Zeile 200Zeile 200
			}
else
{

			}
else
{

				$data = my_unserialize($cache_data['cache']);

				$data = unserialize($cache_data['cache']);

			}
}


			}
}


Zeile 220Zeile 220
	/**
* Update cache contents.
*

	/**
* Update cache contents.
*

	 * @param string The cache content identifier.
* @param string The cache content.

	 * @param string $name The cache content identifier.
* @param string $contents The cache content.

	 */
function update($name, $contents)
{

	 */
function update($name, $contents)
{

Zeile 261Zeile 261
	 * Originally from frostschutz's PluginLibrary
* github.com/frostschutz
*

	 * Originally from frostschutz's PluginLibrary
* github.com/frostschutz
*

	 * @param string Cache name or title
* @param boolean To delete a cache starting with name_

	 * @param string $name Cache name or title
* @param boolean $greedy To delete a cache starting with name_

	 */
function delete($name, $greedy = false)
{

	 */
function delete($name, $greedy = false)
{

Zeile 359Zeile 359
	/**
* Debug a cache call to a non-database cache handler
*

	/**
* Debug a cache call to a non-database cache handler
*

	 * @param string The cache key
* @param string The time it took to perform the call.
* @param boolean Hit or miss status

	 * @param string $string The cache key
* @param string $qtime The time it took to perform the call.
* @param boolean $hit Hit or miss status

	 */
function debug_call($string, $qtime, $hit)
{

	 */
function debug_call($string, $qtime, $hit)
{

Zeile 386Zeile 386
		$cache_method = $cache_data[0];
$cache_key = $cache_data[1];


		$cache_method = $cache_data[0];
$cache_key = $cache_data[1];


		$this->cache_debug .= "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n".
"<tr>\n".
"<td style=\"background-color: #ccc;\">{$debug_extra}<div><strong>#".$this->call_count." - ".ucfirst($cache_method)." Call</strong></div></td>\n".
"</tr>\n".
"<tr style=\"background-color: #fefefe;\">\n".
"<td><span style=\"font-family: Courier; font-size: 14px;\">(".$mybb->config['cache_store'].") [".$hit_status."] ".htmlspecialchars_uni($cache_key)."</span></td>\n".
"</tr>\n".
"<tr>\n".
"<td bgcolor=\"#ffffff\">Call Time: ".format_time_duration($qtime)."</td>\n".
"</tr>\n".
"</table>\n".
"<br />\n";

		$this->cache_debug = "<table style=\"background-color: #666;\" width=\"95%\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">
<tr>
<td style=\"background-color: #ccc;\">{$debug_extra}<div><strong>#{$this->call_count} - ".ucfirst($cache_method)." Call</strong></div></td>
</tr>
<tr style=\"background-color: #fefefe;\">
<td><span style=\"font-family: Courier; font-size: 14px;\">({$mybb->config['cache_store']}) [{$hit_status}] ".htmlspecialchars_uni($cache_key)."</span></td>
</tr>
<tr>
<td bgcolor=\"#ffffff\">Call Time: ".format_time_duration($qtime)."</td>
</tr>
</table>
<br />\n";


$this->calllist[$this->call_count]['key'] = $string;
$this->calllist[$this->call_count]['time'] = $qtime;


$this->calllist[$this->call_count]['key'] = $string;
$this->calllist[$this->call_count]['time'] = $qtime;

Zeile 406Zeile 406
	/**
* Select the size of the cache
*

	/**
* Select the size of the cache
*

	 * @param string The name of the cache

	 * @param string $name The name of the cache

	 * @return integer the size of the cache
*/
function size_of($name='')

	 * @return integer the size of the cache
*/
function size_of($name='')

Zeile 563Zeile 563
	/**
* Update the forum permissions cache.
*

	/**
* Update the forum permissions cache.
*

	 * @return false When failed, returns false.

	 * @return bool When failed, returns false.

	 */
function update_forumpermissions()
{

	 */
function update_forumpermissions()
{

Zeile 603Zeile 603

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


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

 

return true;

	}

/**
* Build the forum permissions array
*
* @access private

	}

/**
* Build the forum permissions array
*
* @access private

	 * @param array An optional permissions array.
* @param int An optional permission id.

	 * @param array $permissions An optional permissions array.
* @param int $pid An optional permission id.

	 */
private function build_forum_permissions($permissions=array(), $pid=0)
{

	 */
private function build_forum_permissions($permissions=array(), $pid=0)
{

Zeile 627Zeile 629
						if($this->forum_permissions[$forum['fid']][$gid])
{
$perms[$gid] = $this->forum_permissions[$forum['fid']][$gid];

						if($this->forum_permissions[$forum['fid']][$gid])
{
$perms[$gid] = $this->forum_permissions[$forum['fid']][$gid];

						}

						}

						if($perms[$gid])
{
$perms[$gid]['fid'] = $forum['fid'];

						if($perms[$gid])
{
$perms[$gid]['fid'] = $forum['fid'];

Zeile 639Zeile 641
			}
}
}

			}
}
}





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

Zeile 650Zeile 652

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


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

	}

	}


/**
* Update the statistics cache


/**
* Update the statistics cache

Zeile 659Zeile 661
	function update_statistics()
{
global $db;

	function update_statistics()
{
global $db;


$query = $db->simple_select('forums', 'fid, threads, posts', $fidnot.'type=\'f\'', array('order_by' => 'posts', 'order_dir' => 'DESC', 'limit' => 1));
$forum = $db->fetch_array($query);

 

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


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

Zeile 675Zeile 674
			default:
$group_by = 'p.uid';
break;

			default:
$group_by = 'p.uid';
break;

		}

		}


$query = $db->query('


$query = $db->query('

			SELECT u.uid, u.username, COUNT(*) AS poststoday

			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.'

			FROM '.TABLE_PREFIX.'posts p
LEFT JOIN '.TABLE_PREFIX.'users u ON (p.uid=u.uid)
WHERE p.dateline>'.$timesearch.'

Zeile 687Zeile 686
		');
$topposter = $db->fetch_array($query);


		');
$topposter = $db->fetch_array($query);


		$query = $db->simple_select('users', 'COUNT(*) AS posters', 'postnum>0');

		$query = $db->simple_select('users', 'COUNT(uid) AS posters', 'postnum>0');

		$posters = $db->fetch_field($query, 'posters');

		$posters = $db->fetch_field($query, 'posters');





		$statistics = array(
'time' => TIME_NOW,

		$statistics = array(
'time' => TIME_NOW,

			'top_forum' => (array)$forum,

 
			'top_referrer' => (array)$topreferrer,
'top_poster' => (array)$topposter,

			'top_referrer' => (array)$topreferrer,
'top_poster' => (array)$topposter,

			'posters' => (int)$posters,

			'posters' => $posters

		);

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

		);

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

	}

/**

	}

/**

	 * Update the moderators cache.
*

	 * Update the moderators cache.
*

 
	 * @return bool Returns false on failure

	 */
function update_moderators()
{

	 */
function update_moderators()
{

Zeile 747Zeile 746
		while($moderator = $db->fetch_array($query))
{
$this->moderators[$moderator['fid']]['users'][$moderator['id']] = $moderator;

		while($moderator = $db->fetch_array($query))
{
$this->moderators[$moderator['fid']]['users'][$moderator['id']] = $moderator;

		}

		}


if(!function_exists("sort_moderators_by_usernames"))
{


if(!function_exists("sort_moderators_by_usernames"))
{

Zeile 781Zeile 780
		$this->build_moderators();

$this->update("moderators", $this->built_moderators);

		$this->build_moderators();

$this->update("moderators", $this->built_moderators);

	}




return true;
}


/**
* Update the users awaiting activation cache.


/**
* Update the users awaiting activation cache.

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


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


		$this->update('awaitingactivation', array('users' => $awaitingusers));






		$data = array(
'users' => $awaitingusers,
'time' => TIME_NOW
);

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

	}

/**
* Build the moderators array
*
* @access private

	}

/**
* Build the moderators array
*
* @access private

	 * @param array An optional moderators array (moderators of the parent forum for example).
* @param int An optional parent ID.

	 * @param array $moderators An optional moderators array (moderators of the parent forum for example).
* @param int $pid An optional parent ID.

	 */
private function build_moderators($moderators=array(), $pid=0)
{

	 */
private function build_moderators($moderators=array(), $pid=0)
{

Zeile 847Zeile 853
		$forums = array();

// Things we don't want to cache

		$forums = array();

// Things we don't want to cache

		$exclude = array("unapprovedthreads", "unapprovedposts", "threads", "posts", "lastpost", "lastposter", "lastposttid", "deletedthreads", "deletedposts");

		$exclude = array("unapprovedthreads", "unapprovedposts", "threads", "posts", "lastpost", "lastposter", "lastposttid", "lastposteruid", "lastpostsubject", "deletedthreads", "deletedposts");


$query = $db->simple_select("forums", "*", "", array('order_by' => 'pid,disporder'));
while($forum = $db->fetch_array($query))


$query = $db->simple_select("forums", "*", "", array('order_by' => 'pid,disporder'));
while($forum = $db->fetch_array($query))

Zeile 946Zeile 952
	/**
* Update the mailqueue cache
*

	/**
* Update the mailqueue cache
*

 
	 * @param int $last_run
* @param int $lock_time

	 */
function update_mailqueue($last_run=0, $lock_time=0)
{

	 */
function update_mailqueue($last_run=0, $lock_time=0)
{

Zeile 1119Zeile 1127

$birthdays = array();



$birthdays = array();


		// Get today, yesturday, and tomorrow's time (for different timezones)

		// Get today, yesterday, and tomorrow's time (for different timezones)

		$bdaytime = TIME_NOW;
$bdaydate = my_date("j-n", $bdaytime, '', 0);
$bdaydatetomorrow = my_date("j-n", ($bdaytime+86400), '', 0);

		$bdaytime = TIME_NOW;
$bdaydate = my_date("j-n", $bdaytime, '', 0);
$bdaydatetomorrow = my_date("j-n", ($bdaytime+86400), '', 0);

Zeile 1250Zeile 1258
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='mostonline'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='mostonline'");

		$this->update("mostonline", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("mostonline", unserialize($db->fetch_field($query, "cache")));

	}

function reload_plugins()

	}

function reload_plugins()

Zeile 1258Zeile 1266
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='plugins'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='plugins'");

		$this->update("plugins", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("plugins", unserialize($db->fetch_field($query, "cache")));

	}

function reload_last_backup()

	}

function reload_last_backup()

Zeile 1266Zeile 1274
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='last_backup'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='last_backup'");

		$this->update("last_backup", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("last_backup", unserialize($db->fetch_field($query, "cache")));

	}

function reload_internal_settings()

	}

function reload_internal_settings()

Zeile 1274Zeile 1282
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='internal_settings'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='internal_settings'");

		$this->update("internal_settings", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("internal_settings", unserialize($db->fetch_field($query, "cache")));

	}

function reload_version_history()

	}

function reload_version_history()

Zeile 1282Zeile 1290
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='version_history'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='version_history'");

		$this->update("version_history", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("version_history", unserialize($db->fetch_field($query, "cache")));

	}

function reload_modnotes()

	}

function reload_modnotes()

Zeile 1290Zeile 1298
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='modnotes'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='modnotes'");

		$this->update("modnotes", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("modnotes", unserialize($db->fetch_field($query, "cache")));

	}

function reload_adminnotes()

	}

function reload_adminnotes()

Zeile 1298Zeile 1306
		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='adminnotes'");

		global $db;

$query = $db->simple_select("datacache", "title,cache", "title='adminnotes'");

		$this->update("adminnotes", my_unserialize($db->fetch_field($query, "cache")));

		$this->update("adminnotes", unserialize($db->fetch_field($query, "cache")));

	}

function reload_mybb_credits()

	}

function reload_mybb_credits()