/** * * @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 Hook 'BSStateBarBeforeBodyViewAdd' * @param StateBar $oStateBar * @param array $aBodyViews * @return boolean Always true to keep hook running */ public function onBSStateBarBeforeBodyViewAdd($oStateBar, &$aBodyViews, $oUser, $oTitle) { if ($oTitle->exists() == false) { return true; } $oMltListView = new ViewStateBarBodyElement(); $oMltListView->setKey('MoreLikeThis'); $oMltListView->setHeading(wfMessage('bs-extendedsearch-morelikethis')->plain()); $oMltListView->setBodyText(ExtendedSearchBase::getInstance($this)->getViewMoreLikeThis($oTitle)->execute()); $aBodyViews['statebarbodymorelikethis'] = $oMltListView; return true; }
public static function makeStateBarBodyElementKeyValueTable($aParameters) { $oKeyValueTable = new ViewBaseElement(); $oKeyValueTable->setTemplate('<table class="contenttable">###ROWS###</table>'); $oRowView = new ViewBaseElement(); $oRowView->setTemplate('<tr><td>{KEY}</td><td><em>{VALUE}</em></td></tr>'); foreach ($aParameters['rows'] as $sKey => $sValue) { $oRowView->addData(array('KEY' => wfMessage('bs-universalexport-' . $sKey)->plain(), 'VALUE' => $sValue)); } $oKeyValueTable->addItem($oRowView, 'ROWS'); $oKeyValueStateBarBodyView = new ViewStateBarBodyElement(); $oKeyValueStateBarBodyView->setKey($aParameters['key']); $oKeyValueStateBarBodyView->setHeading($aParameters['heading']); $oKeyValueStateBarBodyView->setBodyText($oKeyValueTable->execute()); return $oKeyValueStateBarBodyView; }
private function makeStateBarBodyResponsibleEditorsEntries($iArticleId) { $aResponsibleEditorIds = $this->getResponsibleEditorIdsByArticleId($iArticleId); if (empty($aResponsibleEditorIds)) { return false; } $oResponsibleEditorsBodyView = new ViewStateBarBodyElement(); $sLastUsername = ''; $aResponsibleEditorUserMiniProfiles = array(); foreach ($aResponsibleEditorIds as $iResponsibleEditorId) { $oUser = User::newFromId($iResponsibleEditorId); $sLastUsername = $oUser->getName(); $aResponsibleEditorUserMiniProfiles[] = $this->mCore->getUserMiniProfile($oUser, array('width' => 48, 'height' => 48, 'classes' => array('left')))->execute(); } $sStateBarBodyHeadline = wfMessage('bs-responsibleeditors-statebarbody-headline')->numParams(count($aResponsibleEditorIds))->params($sLastUsername)->text(); $oResponsibleEditorsBodyView->setKey('ResponsibleEditors-Body'); $oResponsibleEditorsBodyView->setHeading($sStateBarBodyHeadline); $oResponsibleEditorsBodyView->setBodyText(implode('', $aResponsibleEditorUserMiniProfiles)); return $oResponsibleEditorsBodyView; }