public function buildRssNs($aParams) { global $wgRequest, $wgSitename, $wgLang, $wgDBprefix; $dbr = wfGetDB(DB_SLAVE); $_showLimit = 10; if (isset($aParams['ns'])) { $ns = $aParams['ns'] + 0; } else { $ns = $wgRequest->getInt('ns', 0); } $aNamespaces = $wgLang->getNamespaces(); $channel = RSSCreator::createChannel($wgSitename . ' - ' . wfMessage('bs-ns')->plain() . ' ' . $aNamespaces[$ns], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'], wfMessage('bs-rssstandards-desc-ns')->plain()); $res = $dbr->query("select page_id from " . $wgDBprefix . "page where page_namespace = " . $ns); $entryIds = array(); while ($row = $dbr->fetchRow($res)) { $entryIds[] = $row['page_id']; } if (count($entryIds)) { $query = "SELECT Min(r.rev_id) as rid, r.rev_page, r.rev_timestamp, r.rev_user_text FROM " . $wgDBprefix . "revision as r WHERE r.rev_page In (" . join(",", $entryIds) . ") GROUP BY r.rev_page, r.rev_timestamp, r.rev_user_text ORDER BY rid DESC"; $res = $dbr->query($query); $numberOfEntries = $dbr->numRows($res); $query .= ' LIMIT ' . $_showLimit; $res = $dbr->query($query); while ($row = $dbr->fetchRow($res)) { $title = Title::newFromID($row['rev_page']); $article = new Article($title); if (!$title->userCan('read')) { $numberOfEntries--; continue; } $_title = str_replace("_", " ", $title->getText()); $_link = $title->getFullURL(); $_tmpText = preg_replace("#\\[<a\\ href\\=\"(.*)action\\=edit(.*)\"\\ title\\=\"(.*)\">(.*)<\\/a>\\]#", "", $this->mCore->parseWikiText($article->getContent(), $this->getTitle())); if (class_exists('SecureFileStore')) { $_description = SecureFileStore::secureFilesInText($_tmpText); } else { $_description = $_tmpText; } unset($_tmpText); $item = RSSItemCreator::createItem($_title, $_link, $_description); if ($item) { $item->setPubDate(wfTimestamp(TS_UNIX, $row['rev_timestamp'])); $item->setComments($title->getTalkPage()->getFullURL()); $item->setGUID($title->getFullURL("oldid=" . $article->getRevIdFetched()), 'true'); $channel->addItem($item); } } } $dbr->freeResult($res); return $channel->buildOutput(); }
public function onSiteNoticeAfter(&$siteNotice) { $siteNotice = SecureFileStore::secureFilesInText($siteNotice); return true; }