private function renderDefaultSwitch() { // only add switch to activity / watchlist feed $feeds = array('activity', 'watchlist'); if (!in_array($this->type, $feeds)) { return ''; } // check current default view $defaultView = MyHome::getDefaultView(); if ($defaultView == $this->type) { return ''; } // render checkbox with label $html = ''; $html .= Xml::openElement('div', array('id' => 'myhome-feed-switch-default', 'class' => 'accent')); $html .= Xml::element('input', array('id' => 'myhome-feed-switch-default-checkbox', 'type' => 'checkbox', 'name' => $this->type, 'disabled' => 'true')); $html .= Xml::element('label', array('for' => 'myhome-feed-switch-default-checkbox'), wfMsg('myhome-default-view-checkbox', wfMsg("myhome-{$this->type}-feed"))); $html .= Xml::closeElement('div'); return $html; }
function execute($par) { wfProfileIn(__METHOD__); global $wgOut, $wgUser, $wgBlankImgUrl; $this->setHeaders(); // not available for skins different than Oasis if (!F::app()->checkSkin('oasis')) { $wgOut->addWikiMsg('myhome-switch-to-monaco'); wfProfileOut(__METHOD__); return; } // choose default view (RT #68074) if ($wgUser->isLoggedIn()) { $this->defaultView = MyHome::getDefaultView(); if ($par == '') { $par = $this->defaultView; } } else { $this->defaultView = false; } // watchlist feed if ($par == 'watchlist') { $this->classWatchlist = "selected"; // not available for anons if ($wgUser->isAnon()) { if (get_class(RequestContext::getMain()->getSkin()) == 'SkinOasis') { $wgOut->wrapWikiMsg('<div class="latest-activity-watchlist-login" >$1</div>', array('oasis-activity-watchlist-login', wfGetReturntoParam())); } else { $wgOut->wrapWikiMsg('<div id="myhome-log-in">$1</div>', array('myhome-log-in', wfGetReturntoParam())); } //oasis-activity-watchlist-login // RT #23970 $wgOut->addInlineScript(<<<JS \$(function() { \t\$('#myhome-log-in').find('a').click(function(ev) { \t\topenLogin(ev); \t}); }); JS ); wfProfileOut(__METHOD__); return; } else { $this->feedSelected = 'watchlist'; $feedProxy = new WatchlistFeedAPIProxy(); $feedRenderer = new WatchlistFeedRenderer(); } } else { //for example: wiki-domain.com/wiki/Special:WikiActivity $this->feedSelected = 'activity'; $feedProxy = new ActivityFeedAPIProxy(); $feedRenderer = new ActivityFeedRenderer(); } $feedProvider = new DataFeedProvider($feedProxy); global $wgJsMimeType, $wgExtensionsPath; $wgOut->addScript("<script type=\"{$wgJsMimeType}\" src=\"{$wgExtensionsPath}/wikia/MyHome/WikiActivity.js\"></script>\n"); $wgOut->addExtensionStyle(AssetsManager::getInstance()->getSassCommonURL('extensions/wikia/MyHome/oasis.scss')); wfRunHooks('SpecialWikiActivityExecute', array($wgOut, $wgUser)); $data = $feedProvider->get(50); // this breaks when set to 60... // FIXME: do it in AchievementsII extension global $wgEnableAchievementsInActivityFeed, $wgEnableAchievementsExt; if (!empty($wgEnableAchievementsInActivityFeed) && !empty($wgEnableAchievementsExt)) { $wgOut->addExtensionStyle("{$wgExtensionsPath}/wikia/AchievementsII/css/achievements_sidebar.css"); } // use message from MyHome as special page title $wgOut->setPageTitle(wfMsg('oasis-activity-header')); $template = new EasyTemplate(dirname(__FILE__) . '/templates'); $template->set('data', $data['results']); $showMore = isset($data['query-continue']); if ($showMore) { $template->set('query_continue', $data['query-continue']); } if (empty($data['results'])) { $template->set('emptyMessage', wfMsgExt("myhome-activity-feed-empty", array('parse'))); } $template->set_vars(array('showMore' => $showMore, 'type' => $this->feedSelected, 'wgBlankImgUrl' => $wgBlankImgUrl)); $wgOut->addHTML($template->render('activityfeed.oasis')); // page header: replace subtitle with navigation global $wgHooks; $wgHooks['PageHeaderIndexAfterExecute'][] = array(&$this, 'addNavigation'); wfProfileOut(__METHOD__); }