/** * Render the special page * @param string $par parameter submitted as subpage */ function execute($par) { // Anons don't get a watchlist $this->requireLogin('watchlistanontext'); $user = $this->getUser(); $out = $this->getOutput(); $out->setPageTitle($this->msg('gather-editfeed-title')); $req = $this->getRequest(); $this->filter = $req->getVal('filter', 'all'); $this->id = $req->getInt('collection-id', 0); $out->addHtml($this->getHeader($user, $this->id, $this->getPageTitle()->getLocalUrl())); $out->addModuleStyles(array('mediawiki.ui.input', 'ext.gather.styles', 'ext.gather.menu.icon')); $out->setProperty('unstyledContent', true); $this->showRecentChangesHeader(); $user = $this->getUser(); $id = (int) $this->id; $feed = models\CollectionFeed::newFromDatabase($user, $id, $this->filter); $feedView = new views\CollectionFeed($feed, $this->getLanguage()); $feedView->render($out); }
/** * @param ResultWrapper $res * @return CollectionFeed a collection */ public static function newFromResultWrapper(ResultWrapper $res) { $feed = new CollectionFeed(); foreach ($res as $row) { $user = User::newFromId($row->rc_user); $title = Title::makeTitle($row->rc_namespace, $row->rc_title); $comment = self::formatComment($row->rc_comment, $title); $ts = new MWTimestamp($row->rc_timestamp); $revId = $row->rc_this_oldid; $bytes = $row->rc_new_len - $row->rc_old_len; $isMinor = $row->rc_minor != 0; if (!$row->rc_deleted) { $item = new CollectionFeedItem($title, $user, $comment, $ts, $revId, $isMinor, $bytes); if ($row->rc_user == 0) { $item->setUsername(IP::prettifyIP($row->rc_user_text)); } $feed->add($item); } } return $feed; }