
Untitled
By: a guest on Mar 10th, 2010 | syntax:
PHP | size: 3.01 KB | hits: 134 | expires: Never
class Highscore
{
private $highscoreEntries;
public function __construct($skill = SKILL_LEVEL, $entries, $pagination = 1)
{
$pagination--;
$cache = Cache::getInstance();
if ($cache->isEnabled() && $cache->fetch('highscore_cache_' . $skill . '_' . $entries . '_' . $pagination, $this->highscoreEntries))
return;
$db = Database::getInstance();
$this->highscoreEntries = array();
switch ($skill) {
case SKILL_LEVEL:
{
$result = $db->query('SELECT `name`, `level`, `experience`, `redskull` FROM `players` ORDER BY `experience` DESC LIMIT ' . ($pagination * $entries) . ', ' . $entries . ';');
while (($row = $db->fetchRows($result)))
array_push($this->highscoreEntries, array('name' => $row['name'], 'skill' => $row['level'], 'tries' => $row['experience'], 'redskull' => $row['redskull']));
$db->freeResult($result);
break;
}
case SKILL_MAGIC:
{
$result = $db->query('SELECT `name`, `maglevel`, `manaspent` FROM `players` ORDER BY `maglevel` DESC, `manaspent` DESC LIMIT ' . ($pagination * $entries) . ', ' . $entries . ';');
while (($row = $db->fetchRows($result)))
array_push($this->highscoreEntries, array('name' => $row['name'], 'skill' => $row['maglevel'], 'tries' => $row['manaspent']));
$db->freeResult($result);
break;
}
default:
{
$result = $db->query('SELECT `player_id`, `value`, `count` FROM `player_skills` WHERE `skillid` = ' . $skill . ' ORDER BY `value` DESC, `count` DESC LIMIT ' . ($pagination * $entries) . ', ' . $entries . ';');
while (($row = $db->fetchRows($result)))
array_push($this->highscoreEntries, array('name' => Player::getNameById($row['player_id']), 'skill' => $row['value'], 'tries' => $row['count']));
$db->freeResult($result);
break;
}
}
if ($cache->isEnabled())
$cache->register('highscore_cache_' . $skill . '_' . $entries . '_' . $pagination, $this->highscoreEntries, 3600);
}
public function __destruct()
{
if (isset($this->highscoreEntries))
unset($this->highscoreEntries);
}
public function getEntries()
{
return $this->highscoreEntries;
}
}