public static function getAllChallengeWinners() { Challenge::getAllChallenges(); if (!self::$allFetched) { $items = query(__CLASS__)->sortDesc('time')->selectMultiple(); self::$cache = array(); foreach ($items as $item) { if (!$item->getChallenge()) { continue; } self::$cache[$item->id] = $item; } self::$allFetched = true; } return self::$cache; }
$element = id(new UIContainer())->setTitle('Claim A Challenge/Prize'); $element->addElement(UIText::exactText(challenge_claim_form())); $page->addElement($element); } $element = id(new UIContainer())->setTitle('Challenge Dashboard'); $winners = ChallengeWinner::getAllChallengeWinners(); if (count($winners) == 0) { $element->addElement('No challenges have been won yet.'); } foreach ($winners as $winner) { $element->addElement(UIText::exactText(challenge_winner($position, $winner))); } $page->addElement($element); if ($position >= POSITION_ADMIN) { $element = id(new UIContainer())->setTitle('All Challenges (Admin only)'); $challenges = Challenge::getAllChallenges(); if (count($challenges) == 0) { $element->addElement('No challenges.'); } foreach ($challenges as $challenge) { $element->addElement(UIText::exactText(challenge_list($challenge))); } $page->addElement($element); $page->addElement(UIText::exactText(<<<EOT <form method="POST" action="challenges.php"> Name: <input type="text" name="name" /> Points: <input type="text" name="points" /> Claim Code (optional): <input type="text" name="code" /> <input type="submit" name="new" value="Create New Challenge" /> </form> EOT