/** * @see Page::readData() */ public function readData() { parent::readData(); if ($this->classID) { $class = new ContestClass($this->classID); $val = WCF::getLanguage()->get($class->description); if (!empty($val)) { $this->description[] = $val; } } // read entries $this->entryList->sqlLimit = $this->itemsPerPage; $this->entryList->sqlOffset = ($this->pageNo - 1) * $this->itemsPerPage; $this->entryList->readObjects(); // init todo list require_once WCF_DIR . 'lib/data/contest/crew/todo/ContestCrewTodoList.class.php'; $this->todoList = new ContestCrewTodoList(); $this->todoList->readObjects(); // init sidebar $this->sidebar = new ContestSidebar(); // read tags if (MODULE_TAGGING) { $this->tagList->readObjects(); $this->tags = $this->tagList->getObjects(); } }
/** * @see EventListener::execute() */ public function execute($eventObj, $className, $eventName) { if (MODULE_CONTEST == 1 && PROFILE_SHOW_LAST_CONTEST_ENTRIES == 1 && WCF::getUser()->getPermission('user.contest.canViewContest') && $eventObj->frame->getUser()->getPermission('user.contest.canUseContest')) { // get entries require_once WCF_DIR . 'lib/data/contest/ContestList.class.php'; $entryList = new ContestList(); $entryList->sqlConditions .= 'contest.userID = ' . $eventObj->frame->getUserID(); $count = $entryList->countObjects(); if ($count > 0) { $entryList->sqlLimit = 5; $entryList->readObjects(); WCF::getTPL()->assign(array('user' => $eventObj->frame->getUser(), 'entries' => $entryList->getObjects(), 'contestEntries' => $count)); WCF::getTPL()->append('additionalContent3', WCF::getTPL()->fetch('userProfileContest')); } } }
/** * @see Page::readData() */ public function readData() { parent::readData(); $this->entryList->sqlLimit = $this->limit; $this->entryList->readObjects(); }
/** * returns all sidebar data in format, which can be cached */ protected function _init() { // get classes $classList = new ContestClassTree(); $classList->readObjects(); // get jurys if (!$this->contest || $this->contest->isEnabledJury()) { $juryList = new ContestJuryList(); if ($this->contest !== null) { $juryList->sqlConditions .= 'contest_jury.contestID = ' . $this->contest->contestID . ' AND contest_jury.state = "accepted" '; } else { $juryList->sqlJoins .= " INNER JOIN wcf" . WCF_N . "_contest contest ON contest.contestID = contest_jury.contestID "; $juryList->sqlConditions .= 'contest.state IN ("scheduled", "closed") AND contest_jury.state = "accepted" '; } $juryList->sqlOrderBy = 'juryID DESC'; $juryList->readObjects(); } else { $juryList = null; } // get participants $participantList = new ContestParticipantList(); if ($this->contest !== null) { $participantList->sqlConditions .= 'contest_participant.contestID = ' . $this->contest->contestID . ' AND contest_participant.state = "accepted" '; } else { $participantList->sqlJoins .= " INNER JOIN wcf" . WCF_N . "_contest contest ON contest.contestID = contest_participant.contestID "; $participantList->sqlConditions .= 'contest.state IN ("scheduled", "closed") AND contest_participant.state = "accepted" '; } $participantList->sqlLimit = 10; $participantList->sqlOrderBy = 'participantID DESC'; $participantList->readObjects(); // get sponsors $sponsorList = new ContestSponsorList(); if ($this->contest !== null) { $sponsorList->sqlConditions .= 'contest_sponsor.contestID = ' . $this->contest->contestID . ' AND contest_sponsor.state = "accepted" '; } else { $sponsorList->sqlJoins .= " INNER JOIN wcf" . WCF_N . "_contest contest ON contest.contestID = contest_sponsor.contestID "; $sponsorList->sqlConditions .= 'contest.state IN ("scheduled", "closed") AND contest_sponsor.state = "accepted" '; } $sponsorList->sqlOrderBy = 'sponsorID DESC'; $sponsorList->readObjects(); // get prices $priceList = new ContestPriceList(); if ($this->contest !== null) { $priceList->sqlConditions .= 'contest_price.contestID = ' . $this->contest->contestID . ' AND contest_price.state != "declined" '; } else { $priceList->sqlJoins .= " INNER JOIN wcf" . WCF_N . "_contest contest ON contest.contestID = contest_price.contestID "; $priceList->sqlConditions .= 'contest.state IN ("scheduled", "closed") AND contest_price.state != "declined" '; } $priceList->sqlOrderBy = 'position ASC'; $priceList->readObjects(); // get tag cloud $tagList = null; if (MODULE_TAGGING) { $tagList = new ContestTagList($this->contest, WCF::getSession()->getVisibleLanguageIDArray()); $tagList->readObjects(); } // get latest entries $latestEntryList = new ContestList(); if ($this->contest !== null) { $latestEntryList->sqlConditions .= 'contest.contestID != ' . $this->contest->contestID; } $latestEntryList->sqlLimit = 10; $latestEntryList->readObjects(); // get latest solutions if (!$this->contest || $this->contest->enableSolution) { $latestSolutionList = new ContestSolutionList(); if ($this->contest !== null) { $latestSolutionList->sqlConditions .= 'contest_solution.contestID = ' . $this->contest->contestID; } $latestSolutionList->sqlOrderBy = 'solutionID DESC'; $latestSolutionList->sqlLimit = 5; $latestSolutionList->readObjects(); } else { $latestSolutionList = null; } return array('classList' => $classList, 'juryList' => $juryList, 'participantList' => $participantList, 'sponsorList' => $sponsorList, 'priceList' => $priceList, 'tagList' => $tagList, 'latestEntryList' => $latestEntryList, 'latestSolutionList' => $latestSolutionList); }