Browse Source

Merge branch '68-fix-nav-empty-items'

tags/2.0.6
Klimov Paul 9 years ago
parent
commit
b6087e2a5c
  1. 6
      Nav.php
  2. 33
      tests/NavTest.php

6
Nav.php

@ -177,7 +177,7 @@ class Nav extends Widget
$active = $this->isItemActive($item); $active = $this->isItemActive($item);
} }
if ($items !== null) { if (!empty($items)) {
$linkOptions['data-toggle'] = 'dropdown'; $linkOptions['data-toggle'] = 'dropdown';
Html::addCssClass($options, ['widget' => 'dropdown']); Html::addCssClass($options, ['widget' => 'dropdown']);
Html::addCssClass($linkOptions, ['widget' => 'dropdown-toggle']); Html::addCssClass($linkOptions, ['widget' => 'dropdown-toggle']);
@ -192,6 +192,10 @@ class Nav extends Widget
} }
} }
if (empty($items)) {
$items = '';
}
if ($this->activateItems && $active) { if ($this->activateItems && $active) {
Html::addCssClass($options, 'active'); Html::addCssClass($options, 'active');
} }

33
tests/NavTest.php

@ -86,4 +86,37 @@ EXPECTED;
$this->assertEqualsWithoutLE($expected, $out); $this->assertEqualsWithoutLE($expected, $out);
} }
public function testEmptyItems()
{
Nav::$counter = 0;
$out = Nav::widget([
'items' => [
[
'label' => 'Page1',
'items' => null,
],
[
'label' => 'Dropdown1',
'items' => [
['label' => 'Page2', 'content' => 'Page2'],
['label' => 'Page3', 'content' => 'Page3'],
],
],
[
'label' => 'Page4',
'items' => [],
],
],
]);
$expected = <<<EXPECTED
<ul id="w0" class="nav"><li><a href="#">Page1</a></li>
<li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">Dropdown1 <b class="caret"></b></a><ul id="w1" class="dropdown-menu"><li class="dropdown-header">Page2</li>
<li class="dropdown-header">Page3</li></ul></li>
<li><a href="#">Page4</a></li></ul>
EXPECTED;
$this->assertEqualsWithoutLE($expected, $out);
}
} }

Loading…
Cancel
Save