ZF2 — Активный & lt; li & gt; в меню навигации Zend

Мне удалось создать меню с помощью Zend Navigation. Однако активная страница никогда не устанавливается (active класс не установлен для любого <li> элемент).

Мой частичный:

foreach ($pages as $page): ?>

<?php if (!$page->isVisible() || !$this->navigation()->menu()->accept($page)) continue; ?>

<li role="presentation" <?php if ($page->isActive()) echo 'class="active"' ?>>
<a href="<?php echo $page->getHref() ?>">
<?php if ($icon = $page->get('icon')) {
echo '<span class="' . $icon . '"></span>';
} ?>
<span> <?php echo $this->translate($page->getLabel()) ?> </span>
</a>
</li>

<?php endforeach ?>

Извлечение module.config.php:

    'navigation' => array(
'default' => array(
array(
'label' => 'Page 1',
'route' => 'application/default',
'namespace' => 'Application\Controller',
'controller' => 'Index',
'action' => 'page1',
'icon' => 'fa fa-2x fa-file-text',
'order' => 10,
),
array(
'label' => 'Page 2',
'route' => 'application/default',
'namespace' => 'Application\Controller',
'controller' => 'Index',
'action' => 'page2',
'icon' => 'fa fa-2x fa-file-text',
'order' => 20,
),
),
),

Меню правильно отображается на странице, но без активного класса:

    $partial = array('partial/menu.phtml', 'default');
echo $this->navigation('navigation')
->menu()
->setMinDepth(0)
->setMaxDepth(0)
->setPartial($partial);

После некоторого исследования в коде ZF, я нашел то, что я не понимаю (в Zend\View\Helper\Navigation\Menu.php):

// in renderNormalMenu function, line 288
$isActive = $page->isActive(true);

Любая идея или предложение относительно моей проблемы?

Большое спасибо,

0

Решение

Проблема была в module.config.php ; isActive метод (от Zend\Navigation\Mvc) ожидалось «полное» имя контроллера (включая пространство имен).

Мой конфиг разделял пространство имен и имя контроллера, что вызывает проблему.

Решение:

            array(
'label' => 'Page 1',
'route' => 'application/default',
'controller' => 'Application\Controller\Index',
'action' => 'page1',
'icon' => 'fa fa-2x fa-file-text',
'order' => 10,
),
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]