/**
  * Hook-Handler method for the 'BSUniversalExportGetWidget' event.
  * @param UniversalExport $oUniversalExport
  * @param array $aModules
  * @param Title $oSpecialPage
  * @param Title $oCurrentTitle
  * @param array $aCurrentQueryParams
  * @return boolean Always true to keep hook running
  */
 public function onBSUniversalExportGetWidget($oUniversalExport, &$aModules, $oSpecialPage, $oCurrentTitle, $aCurrentQueryParams)
 {
     $aCurrentQueryParams['ue[module]'] = 'pdf';
     $aLinks = array();
     $aLinks['pdf-single-no-attachments'] = array('URL' => htmlspecialchars($oSpecialPage->getLinkUrl($aCurrentQueryParams)), 'TITLE' => wfMessage('bs-uemodulepdf-widgetlink-single-no-attachments-title')->plain(), 'CLASSES' => 'bs-uemodulepdf-single', 'TEXT' => wfMessage('bs-uemodulepdf-widgetlink-single-no-attachments-text')->plain());
     wfRunHooks('BSUEModulePDFBeforeCreateWidget', array($this, $oSpecialPage, &$aLinks, $aCurrentQueryParams));
     $oPdfView = new ViewBaseElement();
     $oPdfView->setAutoWrap('<ul>###CONTENT###</ul>');
     $oPdfView->setTemplate('<li><a href="{URL}" rel="nofollow" title="{TITLE}" class="{CLASSES}">{TEXT}</a></li>');
     #
     foreach ($aLinks as $sKey => $aData) {
         $oPdfView->addData($aData);
     }
     $aModules[] = $oPdfView;
     return true;
 }
 /**
  * Hook-handler for 'BS:UserPageSettings'
  * @param User $oUser The current MediaWiki User object
  * @param Title $oTitle The current MediaWiki Title object
  * @param array $aSettingViews A list of View objects
  * @return array The SettingsViews array with an andditional View object
  */
 public function onUserPageSettings($oUser, $oTitle, &$aSettingViews)
 {
     $oUserSidebarArticleTitle = Title::makeTitle(NS_USER, $oUser->getName() . '/Sidebar');
     $oUserPageSettingsView = new ViewBaseElement();
     $oUserPageSettingsView->setAutoWrap('<div id="bs-usersidebar-settings" class="bs-userpagesettings-item">###CONTENT###</div>');
     $oUserPageSettingsView->setTemplate('<a href="{URL}" title="{TITLE}"><img alt="{IMGALT}" src="{IMGSRC}" /><div class="bs-user-label">{TEXT}</div></a>');
     $oUserPageSettingsView->addData(array('URL' => htmlspecialchars($oUserSidebarArticleTitle->getEditURL()), 'TITLE' => wfMessage('bs-usersidebar-userpagesettings-link-title')->plain(), 'TEXT' => wfMessage('bs-usersidebar-userpagesettings-link-text')->text(), 'IMGALT' => wfMessage('bs-tab_focus')->plain(), 'IMGSRC' => $this->getImagePath() . 'bs-userpage-sidebar.png'));
     $aSettingViews[] = $oUserPageSettingsView;
     return true;
 }
 /**
  *
  * @global User $wgUser
  * @param Title $oTitle
  * @return false|\ViewStateBarBodyElement
  */
 private function makeStateBarBodySubPages($oTitle)
 {
     global $wgUser;
     if ($oTitle->hasSubpages() == false) {
         return false;
     }
     wfProfileIn('BS::' . __METHOD__);
     $oSubpageListView = new ViewStateBarBodyElement();
     $oSubpageListView->setKey('Subpages');
     $oSubpageListView->setHeading(wfMessage('bs-articleinfo-subpages')->plain());
     $aSubpages = $oTitle->getSubpages(-1);
     if (count($aSubpages) > 100) {
         $oSubpageListView->setBodyText(wfMessage('bs-articleinfo-subpages-too-much')->plain());
     } else {
         // TODO RBV (22.02.12 10:22): Less inline CSS, more use of classes
         $oList = new ViewBaseElement();
         $oList->setAutoWrap('<ul style="margin:0">###CONTENT###</ul>');
         $oList->setTemplate('<li style="{STYLE}">&rarr; {LINK}</li>');
         foreach ($aSubpages as $oTitle) {
             $sLink = $wgUser->getSkin()->link($oTitle, $oTitle->getSubpageText());
             $sStyle = 'margin-left:' . (count(explode('/', $oTitle->getText())) - 1) . 'em';
             $oList->addData(array('LINK' => $sLink, 'STYLE' => $sStyle));
         }
         $oSubpageListView->setBodyText($oList->execute());
     }
     wfRunHooks('BSArticleInfoBeforeSubpagesBodyView', array($this, &$oSubpageListView));
     wfProfileOut('BS::' . __METHOD__);
     return $oSubpageListView;
 }
 /**
  * Hook-handler for 'BS:UserPageSettings'
  * @param User $oUser The current MediaWiki User object
  * @param Title $oTitle The current MediaWiki Title object
  * @param array $aSettingViews A list of View objects
  * @return array The SettingsViews array with an andditional View object
  */
 public function onUserPageSettings($oUser, $oTitle, &$aSettingViews)
 {
     $oWidgetBarArticleTitle = Title::makeTitle(NS_USER, $oUser->getName() . '/Widgetbar');
     // TODO MRG (01.07.11 02:13): Should be put in a view in BsCore
     $oUserPageSettingsView = new ViewBaseElement();
     $oUserPageSettingsView->setAutoWrap('<div id="bs-widgetbar-settings" class="bs-userpagesettings-item">###CONTENT###</div>');
     $oUserPageSettingsView->setTemplate('<a href="{URL}" title="{TITLE}"><img alt="{IMGALT}" src="{IMGSRC}" /><div class="bs-user-label">{TEXT}</div></a>');
     $oUserPageSettingsView->addData(array('HEADLINE' => wfMessage('bs-widgetbar-userpagesettings-headline')->plain(), 'URL' => htmlspecialchars($oWidgetBarArticleTitle->getEditURL()), 'TITLE' => wfMessage('bs-widgetbar-userpagesettings-link-title')->plain(), 'TEXT' => wfMessage('bs-widgetbar-userpagesettings-link-text')->text(), 'IMGALT' => wfMessage('bs-widgetbar-userpagesettings-headline')->plain(), 'IMGSRC' => $this->getImagePath(true) . 'bs-userpage-widgets.png'));
     $aSettingViews[] = $oUserPageSettingsView;
     return true;
 }