* @copyright 2014 Heinrich-Heine-Universität Düsseldorf * @license http://www.gnu.org/licenses/gpl.html * @link https://bitbucket.org/coderkun/the-legend-of-z */ namespace hhu\z\controllers; /** * Controller of the Agent to display a sidebar with Seminary related * information. * * @author Oliver Hanraths */ class SeminarybarController extends \hhu\z\Controller { /** * Required models * * @var array */ public $models = array('characters', 'quests', 'questgroups', 'achievements', 'charactergroups', 'avatars', 'media'); /** * Action: index. */ public function index() { if(is_null(IntermediateController::$seminary)) { return; } // Get Seminary $seminary = IntermediateController::$seminary; // Get Character $character = IntermediateController::$character; if(is_null($character)) { return; } $character['xplevel'] = $this->Characters->getXPLevelOfCharacters($character['id']); $character['rank'] = $this->Characters->getXPRank($seminary['id'], $character['xps']); // Get “last” Quest $lastQuest = $this->Quests->getLastQuestForCharacter($character['id']); if(!is_null($lastQuest)) { $lastQuest['questgroup'] = $this->Questgroups->getQuestgroupById($lastQuest['questgroup_id']); } // Get last achieved Achievement $achievements = $this->Achievements->getAchievedAchievementsForCharacter($character['id']); $lastAchievement = array_shift($achievements); // Get Character group members $characterGroups = array(); foreach($this->Charactergroups->getGroupsForCharacter($character['id']) as $group) { $groupsgroup = $this->Charactergroups->getGroupsgroupById($group['charactergroupsgroup_id']); if($groupsgroup['preferred']) { $group['members'] = $this->Characters->getCharactersForGroup($group['id']); foreach($group['members'] as &$member) { if(!is_null($member['avatar_id'])) { $avatar = $this->Avatars->getAvatarById($member['avatar_id']); if(!is_null($avatar['small_avatarpicture_id'])) { $member['small_avatar'] = $this->Media->getSeminaryMediaById($avatar['small_avatarpicture_id']); } } } $characterGroups[] = $group; } } // Pass data to view $this->set('seminary', $seminary); $this->set('character', $character); $this->set('lastQuest', $lastQuest); $this->set('lastAchievement', $lastAchievement); $this->set('characterGroups', $characterGroups); } } ?>