/** * @see Form::readData() */ public function readData() { parent::readData(); // read objects $this->sponsorList->sqlOffset = ($this->pageNo - 1) * $this->itemsPerPage; $this->sponsorList->sqlLimit = $this->itemsPerPage; $this->sponsorList->readObjects(); $this->isSponsor = $this->entry->isSponsor(); // init sidebar $this->sidebar = new ContestSidebar($this->entry, array('sponsorList', 'advertiseSponsor')); }
/** * 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); }