/**
  * 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;
 }