/** * * @global OutputPage $this->getOutput() * @param type $sParameter * @return type */ public function execute($sParameter) { parent::execute($sParameter); $extension = false; if ($sParameter) { $sParameter = $this->parseParams($sParameter); } else { $sParameter = array('Page' => $this->getRequest()->getVal('Page', '')); } if (isset($sParameter['Page'])) { $extension = $sParameter['Page']; } $rssFeeds = RSSFeeder::getRegisteredFeeds(); if ($extension && is_array($rssFeeds[$extension])) { $this->getOutput()->disable(); $runner = $rssFeeds[$extension]['method']; header('Content-Type: application/xml; charset=UTF-8'); echo $rssFeeds[$extension]['object']->{$runner}($sParameter); return; } $this->getOutput()->addModuleStyles('ext.bluespice.rssFeeder'); $form = new ViewBaseForm(); $form->setId('RSSFeederForm'); #$form->setValidationUrl( 'index.php?&action=remote&mod=RSSFeeder&rf=validate' ); $label = new ViewFormElementLabel(); $label->useAutoWidth(); $label->setText('<h3>' . wfMessage('bs-rssfeeder-pagetext')->plain() . '</h3>'); $form->addItem($label); foreach ($rssFeeds as $name => $feed) { $func = $feed['buildLinks']; $form->addItem($feed['object']->{$func}()); } $this->getOutput()->addHTML($form->execute()); }
/** * Hook-Handler for MediaWiki hook MediaWikiPerformAction * @param OutputPage $wgOut MediaWiki Outpupage object. * @param Article $article MediaWiki article object. * @param Title $title MediaWiki title object. * @param User $user MediaWiki user object. * @param Request $request MediaWiki request object. * @param mediaWiki $mediaWiki MediaWiki mediaWiki object. * @return bool Always true. */ public function onBSRSSFeederGetRegisteredFeeds($aFeeds) { RSSFeeder::registerFeed('recentchanges', wfMessage('bs-rssfeeder-recent-changes')->plain(), wfMessage('bs-rssstandards-desc-rc')->plain(), $this, NULL, NULL, 'buildLinksRc'); RSSFeeder::registerFeed('followOwn', wfMessage('bs-rssstandards-title-own')->plain(), wfMessage('bs-rssstandards-desc-own')->plain(), $this, 'buildRssOwn', array('u'), 'buildLinksOwn'); RSSFeeder::registerFeed('followPage', wfMessage('bs-rssstandards-title-page')->plain(), wfMessage('bs-rssstandards-desc-page')->plain(), $this, 'buildRssPage', array('p', 'ns'), 'buildLinksPage'); RSSFeeder::registerFeed('namespace', wfMessage('bs-ns')->plain(), wfMessage('bs-rssstandards-desc-ns')->plain(), $this, 'buildRssNs', array('ns'), 'buildLinksNs'); RSSFeeder::registerFeed('category', wfMessage('bs-rssstandards-title-cat')->plain(), wfMessage('bs-rssstandards-desc-cat')->plain(), $this, 'buildRssCat', array('cat'), 'buildLinksCat'); RSSFeeder::registerFeed('watchlist', wfMessage('bs-rssstandards-title-watch')->plain(), wfMessage('bs-rssstandards-desc-watch')->plain(), $this, 'buildRssWatch', array('days'), 'buildLinksWatch'); return true; }
public function onBSRSSFeederGetRegisteredFeeds($aFeeds) { RSSFeeder::registerFeed('blog', wfMessage('bs-blog-blog')->plain(), wfMessage('bs-blog-extension-description')->plain(), $this, 'buildRssNsBlog', null, 'buildLinksNs'); return true; }