public function __construct($param) { $this->isValidType($param->type); $this->_nav = new UL(); $this->_nav->addClass('nav')->addClass('nav-' . $param->type); foreach ($param->item as $item) { $this->_item = new LI(); # Menu Dropdown if (isset($item['dropdown'])) { $divider = new \br\gov\sial\core\output\screen\html\Strong(); $divider->addClass('caret'); $link = new Anchor($item['text'] . ' ' . $divider, $item['href']); $link->addClass('dropdown-toggle')->attr('data-toggle', 'dropdown'); $this->_item->add($link); $this->_item->addClass('dropdown'); $this->_dropdown = new UL(); $this->_dropdown->addClass('dropdown-menu'); foreach ($item['dropdown'] as $subItem) { $li = new LI(); $li->add(new Anchor($subItem['text'], $subItem['href'])); $this->_dropdown->add($li); } $this->_item->add($this->_dropdown); } else { $this->_item->add(new Anchor($item['text'], $item['href'])); } if ($item['text'] == $param->active) { $this->_item->addClass('active'); } $this->_nav->add($this->_item); } }
/** * Retorna uma lista dos elementos que compõe o componente brandbar * @param \stdClass $param * @return \br\gov\sial\core\output\screen\html\UL */ private function setElements($param) { $ul = new UL(); $ul->addClass('nav'); foreach ($this->safeToggle($param, 'links', array()) as $link) { $li = new LI(); $li->add(new Anchor($link['text'], $link['href'])); $ul->add($li); } return $ul; }
/** * Cria menu. * * @param stdClass * @return Div * */ public function menuNavbar(\stdClass $config) { # navbar $mainDiv = new Div(); $mainDiv->addClass(array('navbar', 'navbar-fixed-top')); # inner $divInner = new Div(); $divInner->addClass('navbar-inner'); $mainDiv->add($divInner); # fluid $divFluid = new Div(); $divFluid->addClass('container-fluid'); $divInner->add($divFluid); # anchor $anchor = new Anchor(); $anchor->attr('data-target', '.nav-collapse')->attr('data-toggle', 'collapse')->addClass(array('btn', 'btn-navbar')); $divFluid->add($anchor); # @todo a quantidade de icon-bar deve ser dinamica $span = new Span(); $span->addClass('icon-bar'); $anchor->add(array(clone $span, clone $span, $span)); $divCollapse = new Div(); $divCollapse->addClass('nav-collapse'); $divFluid->add($divCollapse); $ulNav = new UL(); $ulNav->addClass('nav'); $divCollapse->add($ulNav); foreach ($config->options as $key => $val) { $li = new LI(); $ulNav->add($li); if ('__DIVIDER_VERTICAL__' == $val) { $li->addClass('divider-vertical'); } else { $li->addClass('dropdown'); $anchor = new Anchor($key, '#'); $anchor->attr('data-toggle', 'dropdown')->addClass('dropdown-toggle'); $li->add($anchor); $strong = new Strong(); $strong->addClass('caret'); $anchor->add($strong); $ul = new UL(); $ul->addClass('dropdown-menu'); $li->add($ul); foreach ($val as $idx => $link) { $anchor = new Anchor($link['text'], $link['href']); $liSub = new LI(); $liSub->add($anchor); $ul->add($liSub); } } } return $mainDiv; }