private function load() { if (!is_null($this->releases)) { return; } else { global $wgMemc; $res = $wgMemc->get(self::CACHE_KEY); if ($res) { $this->releases = $res; } else { $dbr = wfGetDB(DB_SLAVE); $this->releases = array(); $res = $dbr->select('distribution_mwreleases', '*', array(), __METHOD__); foreach ($res as $row) { if (!isset($this->releases[$row->mwr_id])) { $mw = MediaWikiRelease::newFromRow($row); $this->releases[$mw->getId()] = $mw; } } uasort($this->releases, array($this, 'sortReleasesDesc')); // cache for 30 days. This doesn't change often so we'll explicity // flush when we've changed something $wgMemc->set(self::CACHE_KEY, $this->releases, 60 * 60 * 24 * 30); } $this->fullyLoaded = true; } }
private function formatReleaseForTable(MediaWikiRelease $rel) { global $wgLang; $branchUrl = $this->skin->makeExternalLink($rel->getBranchUrl(), $rel->getBranch()); $tagUrl = $this->skin->makeExternalLink($rel->getTagUrl(), $rel->getTag()); $announceUrl = $this->skin->makeExternalLink($rel->getAnnouncement(), 'mediawiki-announce'); $supported = $rel->isSupported() ? wfMsg('yes') : wfMsg('no'); $flagStatus = $rel->getSupported() > Release::SUPPORT_TIL_EOL ? wfMsg('releasemanager-supported-overriden', $supported) : wfMsg('releasemanager-supported-til-eol', $supported); $editDel = $this->skin->link($this->getTitleFor('ReleaseManager', 'edit/' . $rel->getId()), wfMsg('edit')) . ' / ' . $this->skin->link($this->getTitleFor('ReleaseManager', 'delete/' . $rel->getId()), wfMsg('delete')); return Html::openElement('tr') . Html::element('td', array(), $rel->getName()) . Html::element('td', array(), $rel->getNumber()) . Html::element('td', array(), 'broken') . Html::element('td', array(), 'broken') . Html::rawElement('td', array(), $branchUrl) . Html::rawElement('td', array(), $tagUrl) . Html::rawElement('td', array(), $announceUrl) . Html::rawElement('td', array(), $flagStatus) . Html::rawElement('td', array(), $editDel) . Html::closeElement('tr'); }