/** * Created a list depending on the given array * * @param array $links condition for the list * @return string list in html */ public function __invoke(array $links, $std = false, array $list = null, $translate = true) { $this->emptyProps(); $this->setStandards($list); $html = '<ul'; $html .= HtmlAttribute::attributeArray($this->attribute); $html .= '>'; foreach ($links as $key => $link) { $standard = array(); if (is_array($link) && true === $std && ($standard = $this->getStandards($key))) { $link = ArrayMergeRecursiveDistinct::merge($standard, $link); } else { $link = $this->getStandards($key); } $html .= '<li><' . $this->tag; if ('a' == $this->tag && false !== $link['href']) { $html .= ' href="' . $link['href'] . '"'; } if (isset($link['attribs']) && is_array($link['attribs'])) { foreach ($link['attribs'] as $attr => $val) { if (false !== $val) { if ('title' === $attr) { $val = $this->view->translate($val); } $html .= HtmlAttribute::attributeString($attr, $val, true); } } } $html .= '>'; $html .= true === $translate ? $this->view->translate($link['label']) : $link['label']; $html .= '</' . $this->tag . '>'; $html .= '</li>'; } $html .= '</ul>'; return $html; }
/** * Set html tag attributte * * @param array $defaults * @param array $page * @param Zend\View\Model\ViewModel $layout */ protected function setHtmlAttribute($pageOptions, $layout) { $attribute = ''; foreach ($this->htmlAttributes as $column => $attr) { $value = $this->getPageAttribute($pageOptions, $column); if (false !== $value) { $attribute .= HtmlAttribute::attributeString($attr, $value, true); } } if (strlen($attribute) > 0) { $layout->htmlTagAttribs = $attribute; } }