/**
  *
  * @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;
 }
 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;
 }
 /**
  * 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 function __construct()
 {
     parent::__construct();
     $this->sKey = 'Review';
     $this->mOptions = array();
 }