Muszę wstawić moduł wyszukiwania jako element menu (domyślny moduł menu).
Potrzebuję tego wyjścia:
<ul>
<li>menu item</li>
<li>menu item</li>
<li>SEARCH MODULE</li>
<li>menu item</li>
...
</ul>
Moje pierwsze myśli to dwukrotne skopiowanie domyślnego modułu menu:
- Jeden do wyświetlania pozycji menu przed modułem wyszukiwania bez
</ul>
tagu zamykającego - Inny do wyświetlenia pozycji menu po module wyszukiwania bez
<ul>
znacznika otwierającego
I wstaw moduł wyszukiwania między nimi. Nie wydaje się to najłatwiejszym i najłatwiejszym w utrzymaniu sposobem na osiągnięcie mojego celu, ponieważ wymaga:
- 3 pozycje modułu dla menu
- 2 różne menu w menedżerze menu
Wiem, że mogłem do tego użyć niektórych modułów mega menu, ale chciałbym unikać rozszerzeń innych firm i używać niestandardowego kodu, którym mogę sterować.
Jak mogę dodać moduł jako pozycję menu w menu domyślnym?
joomla-3.x
menu-item
menu
web-tiki
źródło
źródło
jQuery
funkcje takie jakappend()
lub,prepend()
które nie będą działać w przeglądarkach z wyłączoną obsługą javascript.Odpowiedzi:
Oto jedna alternatywa, aby załadować moduł wyszukiwania do swojego menu. Wymaga kilku prostych kroków:
1. Zastąp
mod_menu
moduł\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.default_url.php
Dodałem
if-else
instrukcję rozpoczynającą się od wiersza # 29, która sprawdza, czy tytuł pozycji menu to „CustomSearchBox”. W takim przypadku pozycja modułu „CustomSearchBox” jest ładowana. Jeśli nie, zwracana jest normalna pozycja menu. Możesz zmienić „CustomSearchBox” na dowolne, ale jeśli pamiętasz, aby użyć tej samej wartości w poniższych krokach.2. Utwórz nowy moduł wyszukiwania
Utwórz moduł wyszukiwania i ustaw odpowiednie parametry (sugeruję, aby ukryć tytuł modułu).
Opublikuj moduł w niestandardowej pozycji „CustomSearchBox”
3. Utwórz nowy element menu
Element menu może być dowolnego typu, sugeruję „Zewnętrzny adres URL”, a nazwa MUSI być „CustomSearchBox”.
Zapisz swój element menu, a cały element menu zostanie zastąpiony polem wyszukiwania!
Daj mi znać, jeśli coś jest niejasne.
źródło
$linktype == "CustomSearchBox"
a tutaj$position = 'CustomSearchBox';
CustomSearchBox
w polu pozycji modułu i naciśnij enter.$document = JFactory::getDocument();
. Teraz działa, ale będę musiał znaleźć sposób, aby ponownie dodać mój obraz.$linktype
funkcję echa. Kod jest widoczny tutaj: phpad.org/1645824385 . Dzięki, że skierowałeś mnie w dobrym kierunku. To było coś, co chciałem osiągnąć przez jakiś czas, teraz jest niesamowite! :)Chociaż mówisz, że nie chcesz używać rozszerzeń stron trzecich, mam rozwiązanie, które korzysta z RokCandy od RocketTheme . To mały komponent fragmentu, który bardzo ułatwia dodanie pola wyszukiwania w menu. Po prostu zainstaluj wtyczkę i utwórz nowe makro:
Makro
HTML
Zapisz i zamknij.
Teraz utwórz element menu dla pola wyszukiwania (proponuję
External URL
jako typ, ale zrobi to dowolny typ elementu menu), aw polu Tytuł dodaj[searchfield][/searchfield]
:RokCandy zastąpi tytuł kodem w makrze, aw menu pojawi się pole wyszukiwania:
źródło