/** * Prepare configured and available page actions * @param BaseTemplate $tpl */ protected function preparePageActions(BaseTemplate $tpl) { $title = $this->getTitle(); // Reuse template data variable from SkinTemplate to construct page menu $menu = array(); $actions = $tpl->data['content_navigation']['actions']; // empty placeholder for edit and photos which both require js if ($this->isAllowedPageAction('edit')) { $menu['edit'] = array('id' => 'ca-edit', 'text' => '', 'itemtitle' => $this->msg('mobile-frontend-pageaction-edit-tooltip'), 'class' => MinervaUI::iconClass('edit', 'element', 'hidden')); } if ($this->isAllowedPageAction('watch')) { $watchTemplate = array('id' => 'ca-watch', 'class' => MinervaUI::iconClass('watch', 'element', 'icon-32px watch-this-article hidden')); // standardise watch article into one menu item if (isset($actions['watch'])) { $menu['watch'] = array_merge($actions['watch'], $watchTemplate); } elseif (isset($actions['unwatch'])) { $menu['watch'] = array_merge($actions['unwatch'], $watchTemplate); $menu['watch']['class'] .= ' watched'; } else { // placeholder for not logged in $menu['watch'] = $watchTemplate; // FIXME: makeLink (used by makeListItem) when no text is present defaults to use the key $menu['watch']['text'] = ''; $menu['watch']['href'] = $this->getLoginUrl(array('returnto' => $title)); } } $tpl->set('page_actions', $menu); }
/** * Get HTML representing secondary page actions like language selector * @return string */ protected function getSecondaryActionsHtml() { $baseClass = MinervaUI::buttonClass('', 'button'); $html = Html::openElement('div', array('class' => 'post-content', 'id' => 'page-secondary-actions')); foreach ($this->getSecondaryActions() as $el) { if (isset($el['attributes']['class'])) { $el['attributes']['class'] .= ' ' . $baseClass; } else { $el['attributes']['class'] = $baseClass; } $html .= Html::element('a', $el['attributes'], $el['label']); } return $html . Html::closeElement('div'); }