/** * Get list item class. * * @param AbstractPage $page * * @return string */ public function getLiClass(AbstractPage $page) { /* @var $escaper \Zend\View\Helper\EscapeHtmlAttr */ $escaper = $this->getView()->plugin('escapeHtmlAttr'); $liClasses = array($this->liClass); if ($this->getAddClassToListItem()) { $liClasses[] = $page->getClass(); } if ($page->hasPages()) { $liClasses[] = $this->getLiHasMenuClass(); } if ($page->isActive(true)) { $liClasses[] = $this->getLiActiveClass(); } return $escaper(implode(' ', $liClasses)); }
/** * Searches the root container for forward 'subsection' relations of the * given $page * * From {@link http://www.w3.org/TR/html4/types.html#type-links}: * Refers to a document serving as a subsection in a collection of * documents. * * @param AbstractPage $page * @return AbstractPage|array|null */ public function searchRelSubsection(AbstractPage $page) { $found = array(); if ($page->hasPages()) { // given page has child pages, loop chapters foreach ($this->findRoot($page) as $chapter) { // is page a section? if ($chapter->hasPage($page)) { foreach ($page as $subsection) { if ($this->accept($subsection)) { $found[] = $subsection; } } } } } switch (count($found)) { case 0: return null; case 1: return $found[0]; default: return $found; } }