Mam menu główne o strukturze najwyższego poziomu podobnej do następującej:
Home - Categories - Something Else - ... - Contact
Każdy z tych łączy najwyższego poziomu prowadzi do odpowiedniej strony węzła.
Mam słownictwo dotyczące kategorii (wielopoziomowe) i muszę uzyskać te warunki taksonomii w podmenu pod pozycją „Kategorie”. Chciałbym uniknąć zakodowania elementów w menu głównym, ponieważ podmenu powinno rosnąć / kurczyć się wraz ze słownictwem.
W przeszłości napisałem zbyt skomplikowany kod, aby to osiągnąć, który przechwytuje operacje taksonomiczne i na tej podstawie zarządza poszczególnymi podmenu menu (bardzo podobne do tego, co robi menu taksonomii , ale bez konieczności posiadania innego menu dla każdego z nich) słownictwo).
Chociaż ta metoda działa, nie jest idealna i na pewno nie ogólna. Nie mogę po prostu podnieść tego kodu ze starego projektu do nowego, wymagałoby to rozsądnego dostosowania.
Nie mogę się oprzeć wrażeniu, że musi istnieć „standardowe” rozwiązanie modułowe.
Widziałem kilka sugestii, aby użyć kilku różnych modułów w połączeniu (nawet niektóre sugerują użycie modułów opartych na widokach, co dziwne). Jestem otwarty na wszelkie sugestie, ale jeśli wiąże się to z instalacją więcej niż 1 lub 2 modułów i mnóstwem zakodowanej konfiguracji kontekstowej, prawdopodobnie w tym przypadku nie pomoże.
źródło
Odpowiedzi:
Opcja a) O ile się nie mylę, czy nie możesz po prostu wybrać miejsce, w którym twoje menu taksonomii będzie rodzone (lokalizacja menu) podczas jego tworzenia? Myślę, że jedynym problemem, który możesz z tym zrobić, jest to , że wymaga to przebudowania menu za każdym razem, gdy taksonomia jest aktualizowana
Opcja b) Zrobiłem coś dość podobnego do tego na mojej stronie, użyłem modułu Widoki menu , aby umożliwić mi umieszczenie widoku w moim głównym menu.
Jeśli utworzysz nowy widok z listą wszystkich terminów taksonomii, jako wyświetlanie blokowe, w razie potrzeby zastosuj dodatkowe filtrowanie / modyfikację w widoku (możesz nie, ale w moim przykładzie chciałem). Następnie, gdy dodajesz nowy link do menu głównego, możesz wybrać widok zamiast łącza. Następnie wybierz widok, którego chcesz użyć, wybierz element menu „Kategoria” jako jego element nadrzędny i zapisz (po zapisaniu musisz włączyć go w menu, co wydaje się być błędem w samym module)
Nie mogę zagwarantować, że jest to najlepsze rozwiązanie dla ciebie, ale zadziałało, kiedy właśnie go przetestowałem
źródło
Menupoly posiada interfejs API dla niestandardowych „źródeł drzewa menu”. Nigdy tak naprawdę nie wykorzystałem tego do czegoś innego niż linki menu, więc mogą pojawić się problemy, które musimy rozwiązać po drodze. Ale istnieje podstawowa architektura.
Jeśli pójdziesz tą drogą, zrobiłbyś to
Więc w jakiś sposób musisz być w stanie wykryć, że link „Kategorie” jest związany z taksonomią.
Ta trasa byłaby trochę pracy, ale może być przydatna dla innych i jest prawdopodobnie bardziej elegancka i wielokrotnego użytku niż logika specyficzna dla witryny.
Obecnie nie istnieje nawet „źródło drzewa menu” oparte wyłącznie na taksonomii, więc być może byłby to rozsądny pierwszy krok przed uruchomieniem mieszanej wtyczki.
źródło
Menu Metro spełni twoje wymagania, a nawet ma wbudowane skórki i może tworzyć własne, które działają tak samo jak ładne menu. Za pomocą tego modułu możesz wybrać dowolne elementy podrzędne o dowolnej głębokości z menu lub systematyki i nie używam tego wcześniej.
Kompatybilność z ekranem dotykowym (iPad, iPhone itp.).
źródło
Do tego samego możesz użyć modułu menu Om Maxi . Pozwoli to administratorowi tworzyć menu z blokami, które chcesz jako załączniki, moduły, takie jak widoki, pokaz slajdów, menu, użytkownik, ładne menu, skrócone tabele i niestandardowe bloki z tabelami, listami, obrazami, wideo itp.
Możesz utworzyć osobne menu za pomocą menu taksonomii i możesz dołączyć to menu jako podlinki do menu generowanego przez menu om maxi.
Dzięki
źródło
Ostatnio zrobiłem coś podobnego dla menu kategorii produktów. Było to tylko dla głębokości 1 poziomu, ale można go łatwo zmodyfikować, aby wyświetlać kolejne poziomy.
Funkcja get_category_menu jest lepsza jako blok, ale dla wygody jest pokazana tutaj jako inna funkcja w template.php.
Mam nadzieję, że to pomaga lub jest przynajmniej krokiem w kierunku rozwiązania.
Paweł
źródło