public function navbar()
{
return _class('html')->navbar([
'brand' => [
'link' => url('/'),
'name' => 'Title',
],
[
'link' => '#home',
'name' => 'Home',
],
[
'link' => '#link1',
'name' => 'Link1',
],
[
'link' => '#link2',
'name' => 'Link2',
],
]);
}
public function navbar($data = [], $extra = [])
{
if ($this->_is_bs5) {
return $this->_bs5()->navbar($data, $extra);
}
$extra['id'] = ($extra['id'] ?? null) ?: __FUNCTION__ . '_' . ($this->_ids[__FUNCTION__] = ($this->_ids[__FUNCTION__] ?? 0) + 1);
$items = [];
$brand = '';
if (isset($data['brand'])) {
$b = ($data['brand'] ?? null);
unset($data['brand']);
$brand = '<a class="brand navbar-brand' . (($b['class'] ?? null) ? ' ' . ($b['class'] ?? null) : '') . '" href="' . ($b['link'] ?? null) . '" title="' . ($b['name'] ?? null) . '">' . ($b['name'] ?? null) . '</a>';
}
$subs = $this->B5_ITEM_OPTIONS ? $this->_navbar_subs($data) : [];
$data = _prepare_html($data);
$i = 0;
foreach ((array) $data as $k => $v) {
if (isset($extra['selected'])) {
$is_selected = (($extra['selected'] ?? null) == $k);
} else {
$is_selected = (++$i == 1);
}
$class_item = ($v['class_item'] ?? null) ?: ($extra['class_item'] ?? null);
$badge = ($v['badge'] ?? null) ? ' <sup class="badge badge-' . (($v['class_badge'] ?? null) ?: 'info') . '">' . ($v['badge'] ?? null) . '</sup>' : '';
if (isset($subs[$k])) {
$items[] = $this->_navbar_dropdown_bs3($v, $subs[$k], $is_selected, $class_item, $badge, false);
continue;
}
$items[] = '<li class="' . ($is_selected ? ' active' : '') . ($class_item ? ' ' . $class_item : '') . '"><a href="' . ($v['link'] ?? null) . '" title="' . ($v['name'] ?? null) . '">' . ($v['name'] ?? null) . $badge . '</a></li>';
}
$right = $this->_navbar_right_bs3($extra);
$nav_class = ! empty($extra['dark']) ? 'navbar-inverse' : 'navbar-default';
if ($this->_navbar_collapse($extra) !== '') {
$target = fix_html_attr_id($extra['id'] . '_collapse');
return '<div class="navbar ' . $nav_class . (($extra['class'] ?? null) ? ' ' . $extra['class'] : '') . '" id="' . $extra['id'] . '"><div class="container-fluid">'
. '<div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#' . $target . '" aria-controls="' . $target . '" aria-expanded="false">'
. '<span class="sr-only">' . t('Toggle navigation') . '</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button>' . $brand . '</div>'
. '<div class="collapse navbar-collapse" id="' . $target . '"><ul class="nav navbar-nav">' . implode(PHP_EOL, $items) . '</ul>' . $right . '</div>'
. '</div></div>';
}
return
'<div class="navbar ' . $nav_class . (($extra['class'] ?? null) ? ' ' . ($extra['class'] ?? null) : '') . '" id="' . ($extra['id'] ?? null) . '">
<div class="navbar-inner navbar-header">'
. $brand
. '<ul class="nav navbar-nav">' . implode(PHP_EOL, (array) $items) . '</ul>
</div>' . $right . '
</div>';
}