Я использую Zend_Navigation (приятное дополнение к фреймворку, кстати) для создания моего меню, после чего оно должно отображаться на странице (само собой разумеется). Я сначала установил контейнер где-то в контроллере:
// $pages is the array containing all page information
$nav = new Zend_Navigation($pages);
$this->view->navigation($nav);
Затем в макете это выглядит так:
echo $this->navigation()->menu();
, который работает отлично. Теперь: я хочу, чтобы меню отображалось немного иначе. Страница, которую я создаю, использует jQuery Fisheye-plugin для создания Mac-подобного Dock-меню. Однако этому плагину нужна определенная разметка ...
На самом деле, это список <a>
элементов, содержащий <img>
(для значка) и <span>
(для всплывающей подсказки). Стандартный помощник вида меню отображает все в неупорядоченном списке (логически) с параметром 'label'
в качестве текста ссылки.
Кажется, что содержимое, переданное в параметр 'label'
, перед рендерингом экранируется, поэтому вставка html-кода мне не поможет. Кроме того, Fisheye обычно не воспринимает свои элементы, содержащиеся в теге <li>
, со всем, что заключено в <ul></ul>
, а представляет собой просто одноуровневый список <a>
элементов.
Я думал о написании пользовательского помощника вида для док-станции, который мог бы позаботиться о вставке <img>
и <span>
, но мне очень трудно подключить пользовательский помощник вида к классу навигации. Я просто не могу понять, где его разместить и каким образом, хотя автозагрузчик заботливо заботится обо всех моих других пользовательских классах (моделях и т. П.). Есть идеи по этому поводу?
Опять же, даже если я смогу заставить этот помощник вида работать, я все равно останусь с неупорядоченным списком HTML - я знаю, что тоже могу потерять его, используя пользовательский помощник вида, но я всегда был фанатом содержит основные навигационные меню внутри списка, ради семантики.
Если кто-нибудь может мне немного помочь, я буду очень признателен. Если Fisheye просто не предназначен для работы с <ul>
, это было бы слишком плохо ... была бы веская причина вообще потерять Zend_Navigation в этом случае?