public function configure() { // Init category $category = new Model_Category(Conf::get('MAIN_CATEGORY')); if ($category->getQuestionsTotal(true, true) == 0) { return; } // Get questions $questions = $category->getQuestions('latest', $this->page, true, true); if ($category->getQuestionsTotal(true, true) <= ($this->page + 1) * Conf::get('QUESTION_PER_PAGE')) { header('X-JSON: (Question.setEndReached())'); } $colors = Conf::get('GRAPH_COLORS'); // Loop through all questions foreach ($questions as $key => $question) { // Get question's answers $answers = $question->getAnswers(); $data = array(); foreach (array_reverse($answers) as $key => $answer) { $data[] = array('value' => $answer->getPercentResultsMatching() / 100, 'color' => $colors[$key]); } // Assign question infos Globals::$tpl->assignLoopVar('question_archive', array('id' => $question->getId(), 'label' => $question->getLabel(), 'guid' => Tool::makeGuid($question->getLabel()), 'data' => json_encode($data), 'time' => Tool::timeWarp($question->getEndDate()))); // Assign answers infos foreach ($answers as $key => $answer) { Globals::$tpl->assignLoopVar('question_archive.answer', array('percentFormated' => round($answer->getPercentResultsMatching()), 'label' => $answer->getLabel(), 'key' => $key)); } } }
public function configure() { // Init category $category = new Model_Category(Conf::get('MAIN_CATEGORY')); if ($category->getQuestionsTotal(true) == 0) { return; } // Get logged user if there is one $user = Model_User::getLoggedUser(); // Get questions $questions = $category->getQuestions('latest', $this->page, 1); // Loop through all questions foreach ($questions as $question) { Globals::$tpl->assignLoopVar('question', array('id' => $question->getId(), 'label' => $question->getLabel(), 'image' => $question->getImageURL('medium'), 'label_urlencoded' => urlencode($question->getLabel()), 'time' => Tool::timeWarp($question->getEndDate()))); // Get answers $answers = $question->getAnswers(); $friendsVotedId = array(); if ($user) { $userResult = $user->getResult($question); $userGuess = $user->getGuess($question); } // Loop through all answers foreach ($answers as $answer) { Globals::$tpl->assignLoopVar('question.answer', array('id' => $answer->getId(), 'label' => $answer->getLabel())); if ($user && $userResult && $answer->getId() == $userResult->getAnswer()->getId()) { Globals::$tpl->assignLoopVar('question.answer.user', array('class' => 'vote', 'label' => 'Mon opinion', 'id' => $user->getId(), 'login' => $user->getLogin(), 'image' => $user->getAvatarURL('small'))); } if ($user && $userGuess && $answer->getId() == $userGuess->getAnswer()->getId()) { Globals::$tpl->assignLoopVar('question.answer.user', array('class' => 'guess', 'label' => 'Mon pronostic', 'id' => $user->getId(), 'login' => $user->getLogin(), 'image' => 'media/layout/icon24x24/map_mini.png')); } if ($user) { foreach ($user->getFriendGuesses($question) as $friendGuess) { if ($answer->getId() == $friendGuess->getAnswer()->getId()) { Globals::$tpl->assignLoopVar('question.answer.friend', array('class' => 'friend', 'userId' => $user->getId(), 'id' => $friendGuess->getFriend()->getId(), 'login' => $friendGuess->getFriend()->getLogin(), 'avatar' => $friendGuess->getFriend()->getAvatarURL('small'))); $friendsVotedId[] = $friendGuess->getFriend()->getId(); } } } } if ($user && !$userResult) { Globals::$tpl->assignLoopVar('question.pendingUser', array('class' => 'vote', 'label' => 'Mon opinion', 'id' => $user->getId(), 'login' => $user->getLogin(), 'avatar' => $user->getAvatarURL('small'))); } if ($user && !$userGuess) { Globals::$tpl->assignLoopVar('question.pendingUser', array('class' => 'guess', 'label' => 'Mon pronostic', 'id' => $user->getId(), 'login' => $user->getLogin(), 'avatar' => $user->getAvatarURL('small'))); } if ($user) { // Construct unvoted friends list foreach ($user->getFriends() as $friend) { if (!in_array($friend->getId(), $friendsVotedId)) { Globals::$tpl->assignLoopVar('question.pendingFriend', array('class' => 'friend', 'userId' => $user->getId(), 'id' => $friend->getId(), 'login' => $friend->getLogin(), 'avatar' => $friend->getAvatarURL('small'))); } } } } }