/** * Creates a Widget object * @return ViewWidget */ public function getWidget() { $sAction = $this->getRequest()->getVal('action', 'view'); if (!in_array($sAction, array('view', 'historysubmit'))) { return null; } $oCurrentTitle = $this->getTitle(); if ($oCurrentTitle->quickUserCan('universalexport-export') === false) { return null; } $aCurrentQueryParams = $this->getRequest()->getValues(); $sTitle = isset($aCurrentQueryParams['title']) ? $aCurrentQueryParams['title'] : ""; $sSpecialPageParameter = BsCore::sanitize($sTitle, '', BsPARAMTYPE::STRING); $oSpecialPage = SpecialPage::getTitleFor('UniversalExport', $sSpecialPageParameter); if (isset($aCurrentQueryParams['title'])) { unset($aCurrentQueryParams['title']); } $aModules = array(); wfRunHooks('BSUniversalExportGetWidget', array($this, &$aModules, $oSpecialPage, $oCurrentTitle, $aCurrentQueryParams)); if (empty($aModules)) { return null; } $sList = ''; foreach ($aModules as $oModuleView) { if ($oModuleView instanceof ViewBaseElement) { $sList .= $oModuleView->execute(); } else { wfDebugLog('BS::UniversalExport', 'getWidget: Invalid view.'); } } $oWidgetView = new ViewWidget(); $oWidgetView->setId('universalexport')->setTitle(wfMessage('bs-universalexport-widget-title')->plain())->setBody($sList)->setTooltip(wfMessage('bs-universalexport-widget-tooltip')->plain()); return $oWidgetView; }
/** * Callback for WidgetListHelper. Adds the WhoIsOnline Widget to the list if Keyword is found. * @return ViewWidget. */ public function onWidgetListKeyword() { wfProfileIn('BS::' . __METHOD__); $oWidgetView = new ViewWidget(); $oWidgetView->setId('bs-whoisonline')->setTitle(wfMessage('bs-whoisonline-widget-title')->plain())->setBody($this->getPortlet(false, BsConfig::get('MW::WhoIsOnline::LimitCount'))->execute())->setTooltip(wfMessage('bs-whoisonline-widget-title')->plain())->setAdditionalBodyClasses(array('bs-nav-links', 'bs-whoisonline-portlet')); //For correct margin and fontsize wfProfileOut('BS::' . __METHOD__); return $oWidgetView; }
/** * Callback for WidgetListHelper. Adds the WhoIsOnline Widget to the list if Keyword is found. * @return ViewWidget. */ public function onWidgetListKeyword($oTitle) { wfProfileIn('BS::' . __METHOD__); $oWidgetView = new ViewWidget(); $oWidgetView->setId('bs-extendedsearch-mlt')->setTitle(wfMessage('bs-extendedsearch-morelikethis')->plain())->setBody(ExtendedSearchBase::getInstance($this)->getViewMoreLikeThis($oTitle)->execute())->setTooltip(wfMessage('bs-extendedsearch-morelikethis')->plain())->setAdditionalBodyClasses(array('bs-nav-links', 'bs-extendedsearch-portlet')); //For correct margin and fontsize wfProfileOut('BS::' . __METHOD__); return $oWidgetView; }
/** * Renders widget view of SmartList. Called by MW::WidgetBar::DefaultWidgets. * @param BsEvent $oEvent The Event object * @param array $aWidgets An array of widgets. Add your Widget to this array. * @return bool allow other hooked methods to be executed. always true */ public function onBSWidgetBarGetDefaultWidgets(&$aViews, $oUser, $oTitle) { $aArgs = array(); $aArgs['count'] = (int) BsConfig::get('MW::SmartList::Count'); $aArgs['namespaces'] = implode(',', BsConfig::get('MW::SmartList::Namespaces')); $aArgs['categories'] = implode(',', BsConfig::get('MW::SmartList::Categories')); $aArgs['categoryMode'] = 'OR'; $aArgs['showMinorChanges'] = BsConfig::get('MW::SmartList::ShowMinorChanges'); $aArgs['period'] = BsConfig::get('MW::SmartList::Period'); $aArgs['mode'] = 'recentchanges'; $aArgs['showOnlyNewArticles'] = BsConfig::get('MW::SmartList::ShowOnlyNewArticles'); $aArgs['heading'] = wfMessage('bs-smartlist-recent-changes')->plain(); $aArgs['trim'] = BsConfig::get('MW::SmartList::Trim'); $aArgs['showtext'] = BsConfig::get('MW::SmartList::ShowText'); $aArgs['trimtext'] = BsConfig::get('MW::SmartList::TrimText'); $aArgs['order'] = BsConfig::get('MW::SmartList::Order'); $aArgs['sort'] = BsConfig::get('MW::SmartList::Sort'); $aArgs['showns'] = BsConfig::get('MW::SmartList::ShowNamespace'); $sCustomList = $this->getCustomList($aArgs); $sHeading = wfMessage('bs-smartlist-recent-changes')->plain(); $oWidgetView = new ViewWidget(); $oWidgetView->setId('smartlist')->setTitle($sHeading)->setBody($sCustomList)->setTooltip($sHeading)->setAdditionalBodyClasses(array('bs-nav-links')); //For correct margin and fontsize $aViews['SMARTLIST'] = $oWidgetView; return true; }