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