only consider Character with user role in ranking
This commit is contained in:
parent
2b76ddf089
commit
4f2bc32024
2 changed files with 29 additions and 7 deletions
|
|
@ -24,7 +24,7 @@
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
public $models = array('seminaries', 'characters', 'users', 'charactergroups', 'charactertypes', 'seminarycharacterfields', 'avatars', 'media', 'questtopics');
|
||||
public $models = array('seminaries', 'characters', 'users', 'charactergroups', 'charactertypes', 'seminarycharacterfields', 'avatars', 'media', 'quests', 'questgroups', 'questtopics');
|
||||
/**
|
||||
* Required components
|
||||
*
|
||||
|
|
@ -139,6 +139,16 @@
|
|||
$questtopic['characterQuestcount'] = $this->Questtopics->getCharacterQuestCountForQuesttopic($questtopic['id'], $character['id']);
|
||||
}
|
||||
|
||||
// Get “last” Quest
|
||||
$lastQuest = null;
|
||||
if(count(array_intersect(array('admin', 'moderator'), \hhu\z\controllers\SeminaryController::$character['characterroles'])) > 0)
|
||||
{
|
||||
$lastQuest = $this->Quests->getLastQuestForCharacter($character['id']);
|
||||
if(!is_null($lastQuest)) {
|
||||
$lastQuest['questgroup'] = $this->Questgroups->getQuestgroupById($lastQuest['questgroup_id']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Pass data to view
|
||||
$this->set('seminary', $seminary);
|
||||
|
|
@ -150,6 +160,7 @@
|
|||
$this->set('milestones', $milestones);
|
||||
$this->set('ranking', $ranking);
|
||||
$this->set('questtopics', $questtopics);
|
||||
$this->set('lastQuest', $lastQuest);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -279,6 +290,7 @@
|
|||
$seminary = $this->Seminaries->getSeminaryByUrl($seminaryUrl);
|
||||
|
||||
// Do action
|
||||
$selectedCharacters = array();
|
||||
if($this->request->getRequestMethod() == 'POST' && !empty($this->request->getPostParam('actions')) && !empty($this->request->getPostParam('characters')))
|
||||
{
|
||||
$actions = $this->request->getPostParam('actions');
|
||||
|
|
@ -342,6 +354,7 @@
|
|||
// Pass data to view
|
||||
$this->set('seminary', $seminary);
|
||||
$this->set('characters', $characters);
|
||||
$this->set('selectedCharacters', $selectedCharacters);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -260,11 +260,14 @@
|
|||
public function getXPRank($seminaryId, $xps)
|
||||
{
|
||||
$data = $this->db->query(
|
||||
'SELECT count(v_characters.id) AS c '.
|
||||
'SELECT count(characters.id) AS c '.
|
||||
'FROM charactertypes '.
|
||||
'INNER JOIN v_characters ON v_characters.charactertype_id = charactertypes.id '.
|
||||
'WHERE seminary_id = ? AND v_characters.xps > ?',
|
||||
'id',
|
||||
'INNER JOIN v_characters AS characters ON characters.charactertype_id = charactertypes.id '.
|
||||
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '.
|
||||
'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
|
||||
'WHERE seminary_id = ? AND characters.xps > ?',
|
||||
'sid',
|
||||
'user',
|
||||
$seminaryId, $xps
|
||||
);
|
||||
if(!empty($data)) {
|
||||
|
|
@ -290,10 +293,13 @@
|
|||
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
|
||||
'FROM v_characters AS characters '.
|
||||
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
||||
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '.
|
||||
'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
|
||||
'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '.
|
||||
'ORDER BY characters.xps ASC '.
|
||||
'LIMIT ?',
|
||||
'idd',
|
||||
'sidd',
|
||||
'user',
|
||||
$seminaryId, $xps, $count
|
||||
);
|
||||
}
|
||||
|
|
@ -313,10 +319,13 @@
|
|||
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
|
||||
'FROM v_characters AS characters '.
|
||||
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
||||
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '.
|
||||
'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
|
||||
'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '.
|
||||
'ORDER BY characters.xps DESC '.
|
||||
'LIMIT ?',
|
||||
'idd',
|
||||
'sidd',
|
||||
'user',
|
||||
$seminaryId, $xps, $count
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue