Ich muss das Suchmodul als Menüelement einfügen (Standardmenümodul).
Ich brauche diese Ausgabe:
<ul>
<li>menu item</li>
<li>menu item</li>
<li>SEARCH MODULE</li>
<li>menu item</li>
...
</ul>
Meine ersten Gedanken wären, das Standardmenü-Modul zweimal zu duplizieren:
- Eine, um Menüelemente vor dem Suchmodul ohne das schließende
</ul>
Tag anzuzeigen - Eine andere, um Menüelemente nach dem Suchmodul ohne das öffnende
<ul>
Tag anzuzeigen
Und fügen Sie das Suchmodul dazwischen ein. Dies scheint nicht der einfachste und am besten zu wartende Weg zu sein, um mein Ziel zu erreichen, da es Folgendes erfordert:
- 3 Modulpositionen für das Menü
- 2 verschiedene Menüs im Menü-Manager
Ich weiß, dass ich einige der Mega-Menümodule verwenden könnte, um dies zu tun, aber ich möchte Erweiterungen von Drittanbietern vermeiden und benutzerdefinierten Code verwenden, den ich steuern kann.
Wie kann ich ein Modul als Menüelement im Standardmenü hinzufügen?
joomla-3.x
menu-item
menu
Web-Tiki
quelle
quelle
jQuery
Funktionen wieappend()
oderprepend()
die nicht auf JavaScript-fähigen Browser arbeiten.Antworten:
Hier ist eine Alternative, um das Suchmodul in Ihr Menü zu laden. Es erfordert ein paar einfache Schritte:
1. Überschreiben Sie Ihr
mod_menu
Modul\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.default_url.php
Ich habe eine
if-else
Anweisung ab Zeile 29 hinzugefügt , die prüft, ob der Titel des Menüelements "CustomSearchBox" lautet. In diesem Fall wird die Modulposition "CustomSearchBox" geladen. Wenn nicht, wird der normale Menüpunkt zurückgegeben. Sie können "CustomSearchBox" nach Belieben ändern. Wenn Sie jedoch daran denken, in den folgenden Schritten denselben Wert zu verwenden.2. Erstellen Sie ein neues Suchmodul
Erstellen Sie das Suchmodul und stellen Sie die Parameter nach Bedarf ein (ich empfehle, den Modultitel auszublenden).
Veröffentlichen Sie das Modul an der benutzerdefinierten Position "CustomSearchBox".
3. Erstellen Sie einen neuen Menüpunkt
Der Menüpunkt kann ein beliebiger Typ sein, ich schlage "Externe URL" vor und der Name MUSS "CustomSearchBox" sein.
Speichern Sie Ihren Menüpunkt und der gesamte Menüpunkt wird durch das Suchfeld ersetzt!
Lassen Sie mich wissen, wenn etwas unklar ist.
quelle
$linktype == "CustomSearchBox"
und hier$position = 'CustomSearchBox';
CustomSearchBox
in das Feld für die Modulposition und drücken Sie die Eingabetaste.$document = JFactory::getDocument();
. Jetzt funktioniert es, aber ich muss einen Weg finden, mein Bild wieder hinzuzufügen.$linktype
in der Echo-Funktion hinzugefügt . Der Code ist hier sichtbar: phpad.org/1645824385 . Danke, dass du mich in die richtige Richtung gelenkt hast. Das ist etwas, was ich schon seit einiger Zeit erreichen wollte. Es ist großartig! :)Obwohl Sie sagen, dass Sie keine Erweiterungen von Drittanbietern verwenden möchten , habe ich eine Lösung, die RokCandy von RocketTheme verwendet . Es ist eine kleine Snippet-Komponente, die es sehr einfach macht, das Suchfeld im Menü hinzuzufügen. Installieren Sie einfach das Plugin und erstellen Sie ein neues Makro wie folgt:
Makro
HTML
Speichern und schließen.
Erstellen Sie nun ein Menüelement für das Suchfeld (ich schlage
External URL
als Typ vor, aber jeder Menüelementtyp reicht aus) und fügen Sie im Feld Titel Folgendes hinzu[searchfield][/searchfield]
:RokCandy ersetzt den Titel durch den Code im Makro und Sie erhalten ein Suchfeld im Menü:
quelle