Пустой элемент добавлен в меню Zend_Navigation? - PullRequest
0 голосов
/ 15 ноября 2011

Я только что заметил проблему с моим меню.Я работаю над приложением php с Zend Framework.Похоже, в моем меню вставлена ​​пустая строка текста, и я не понимаю, почему.Например ... Menu with empty space

Как видите, между элементами, которые я добавил вручную, и элементами, созданными с помощью моего menu.phtml, есть пустое пространство.Вот мой код ...

Во-первых, потому что у меня есть 3 разных меню, я сохранил их в Zend_Register, в моей начальной загрузке, но я просто покажу вам код моего анонимного меню.

        protected function _initNavigation()
    {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();

        //Init du menu anonyme
        $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'menuNotLogged');    
        $container = new Zend_Navigation($config);
        Zend_Registry::set('main',$container);
        $view->navigation($container);}

Затем в моем макете я отображаю свое меню ...

<div id="navigation">
<ul id="primary-links">
<li id="overview"><a href="#">Overview test</a></li>
<li><a href="#">Manual test</a></li>
<?php
$partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);          

    echo $this->navigation()->menu()->render(Zend_Registry::get('main'));
?>
</ul>
</div>

Теперь мой menu.phtml ...

foreach ($this->container as $page) {
    if ($page->isVisible()) {
        if ($page->isActive(true)) {
        //... not active so it doesn't enter here
        } else {
               echo '<li>'.$this->navigation()->menu()->htmlify($page). '</li>' ;
        }
    }
}

Я попытался отладить свое меню в Firebug(FF) и Developer Tools (IE8), в меню отображается пустой текст (первое изображение - IE, второе - Firefox)
Empty text ode enter image description here

Существует пустой элемент иЯ не вижу, откуда это взялось!Я заметил это, потому что мне нужно изменить шаблон моего приложения, и со старым меню оно делало то же самое, но я его не видел, теперь оно действительно ... видно.

Это действительно кажется проблемой при рендеринге моего меню, потому что, если я добавляю элементы вручную, проблем не возникает.Глядя на мой код, у вас есть идеи, что может вызвать это?У кого-нибудь когда-нибудь была такая же проблема?Вам нужны другие части моего кода или другие детали?

Спасибо уже!

ОБНОВЛЕНИЕ

Это мое меню не занесено в мою навигацию.

Пустая строка есть в моем представлении Отладочный вывод из Zend Studio и в Firebug тоже.Вероятно, из-за этой строки добавлен пустой элемент, но я не знаю, откуда он.

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Есть ли в вашем меню конфигурации элемент, возможно, без метки? И почему вы используете партиалы для отображения вашего меню, а не как: echo $this->navigation()->menu(Zend_Registry::get('main'))->render();? Не могли бы вы опубликовать точный вывод HTML, где проблема в том, что я не могу получить фотографию, которую вы опубликовали ..

0 голосов
/ 15 ноября 2011

В сгенерированном выводе вы получили несколько ошибок:

Вы открываете 4 li -элемента, но закрывается только 1.Таким образом, нежелательное пространство может появиться из-за сломанной HTML-разметки?

...