/** * Create a new Navbar instance. * * @param string $brand * @param string $brand_url * @param array $menu * @param string $type * @param bool $collapsible * @param array $attributes * @param bool $autoroute * @return Navbar */ public static function create($brand, $brand_url, $menus, $type = Navbar::STATIC_BAR, $collapsible = false, $attributes = array(), $autoroute = true) { $attributes = Helpers::add_class($attributes, 'navbar ' . $type); //Open navbar containers $html = '<div' . HTML::attributes($attributes) . '>'; $html .= '<div class="navbar-inner"><div class="container">'; if ($collapsible) { $html .= '<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span> </a>'; } $html .= '<a class="brand" href="' . $brand_url . '">' . $brand . '</a>'; if ($collapsible) { $html .= '<div class="nav-collapse">'; } foreach ($menus as $menu) { // If is string add to html if (is_string($menu)) { $html .= $menu; } else { $attr = isset($menu['attributes']) ? $menu['attributes'] : array(); $html .= Navigation::unstyled($menu['items'], false, $attr, $autoroute); } } if ($collapsible) { $html .= '</div>'; } //close navbar containers $html .= '</div></div></div>'; return $html; }
/** * Writes the current Navbar * * @return string A Bootstrap navbar */ public function __toString() { $attributes = Helpers::add_class($this->attributes, 'navbar ' . $this->type); // Open navbar containers $html = '<div' . HTML::attributes($attributes) . '>'; $html .= '<div class="navbar-inner"><div class="container">'; // Collapsible button if asked for if ($this->collapsible) { $html .= ' <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>'; } // Add brand if one was given if ($this->brand) { $html .= HTML::link($this->brand['url'], $this->brand['name'], array('class' => 'brand')); } if ($this->collapsible) { $html .= '<div class="nav-collapse">'; } // Prints out menus if ($this->menus) { foreach ($this->menus as $menu) { if (is_string($menu)) { $html .= $menu; } else { $attr = array_get($menu, 'attributes', array()); $html .= Navigation::unstyled($menu['items'], false, $attr, $this->autoroute); } } } if ($this->collapsible) { $html .= '</div>'; } // Close navbar containers $html .= '</div></div></div>'; return $html; }