Używam Zend_Navigation (słodki dodatek do frameworka, btw), aby zbudować moje menu, po czym powinno być renderowane na stronie (oczywiste). I najpierw ustawić pojemnik gdzieś w kontrolerze:Pierwsze menu Zend_Navigation do pracy z fisheye jQuery's
// $pages is the array containing all page information
$nav = new Zend_Navigation($pages);
$this->view->navigation($nav);
Następnie w układzie, to staje się to tak:
echo $this->navigation()->menu();
który działa doskonale. Teraz: chcę, aby menu było renderowane trochę inaczej. Strona, którą buduję, używa jQuery Fisheye-plugin do zbudowania menu podobnego do Macintosha. Jednak ten plugin potrzebuje specjalnego znaczników ...
Właściwie, to pobiera listę <a>
elementów zawierających zarówno <img>
(na ikonie) oraz <span>
(na etykiecie). Standardowy helper widoku menu renderuje wszystko na liście nieuporządkowanej (logicznie) z parametrem 'label'
jako tekstem łącza.
Wygląda na to, że treść przekazana do parametru 'label'
została wygenerowana przed renderowaniem, więc wstawienie html nie przyniesie mi żadnego pożytku. Poza tym Rybie Oko zazwyczaj nie zajmuje swoich elementów zawartych w tagu <li>
, a cała rzecz jest zapakowana w <ul></ul>
, ale jest to tylko jednopoziomowa lista elementów <a>
.
Zastanawiam się nad napisaniem niestandardowego pomocnika widoku dla stacji dokującej, który byłby w stanie zająć się wstawianiem <img>
i <span>
, ale bardzo trudno jest uzyskać pomocnika widoku niestandardowego dołączonego do nawigacji klasa. Po prostu nie wiem, gdzie go umieścić i w jaki sposób, mimo że wszystkie inne niestandardowe klasy (modele i takie) są słodko obsługiwane przez autoloader. Jakieś pomysły na ten temat?
Z drugiej strony, nawet jeśli mogę uzyskać pomocnika widoku do pracy, nadal pozostaję z nieuporządkowaną listą HTML - wiem, że mogę ją stracić również za pomocą niestandardowego pomocnika widoku, ale zawsze byłem wentylator zawierający główne menu nawigacyjne na liście, ze względu na semantykę.
Jeśli ktoś może mi pomóc, bardzo bym to docenił. Jeśli Fisheye po prostu nie działa z <ul>
, to byłoby zbyt źle ... czy byłby to dobry powód, aby całkowicie stracić Zend_Navigation w tym przypadku?
Wow, idealna odpowiedź. Wygląda na to, że w Zend_Navigation wciąż jest coś do zrobienia, ale dostanę tam, gdzie muszę iść. Dzięki! – JorenB
@JorenB tylko dlatego, że wiesz, po prostu zapytałem Matthew P. (główny deweloper na ZF), czy w dowolnym momencie dołączą dekoratory do nawigacji. Powiedział (w skrócie) "nie planowane, ponieważ częściowe mają bardzo niewiele kosztów, a dekoratorzy nie są kochani przez społeczność" .. wygląda na to, że Zend_Nav jest hitem wydajnościowym na własną rękę. – typeoneerror
Próbowałem tego, ale kontener jest pusty ... obiekt (Zend \ Navigation \ Navigation) # 509 (3) { ["pages": protected] => array (0) { } ["indeks": chroniony ] => array (0) { } ["dirtyIndex": protected] => bool (false) } – cwhisperer