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
- Erstellen Sie eine Überschreibung in Ihrem Vorlagenordner
\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.
- Kopieren Sie den folgenden Inhalt in die Datei:
default_url.php
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
*
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="' . $item->anchor_css . '" ' : '';
$title = $item->anchor_title ? 'title="' . $item->anchor_title . '" ' : '';
if ($item->menu_image)
{
$item->params->get('menu_text', 1) ?
$linktype = '<img src="' . $item->menu_image . '" alt="' . $item->title . '" /><span class="image-title">' . $item->title . '</span> ' :
$linktype = '<img src="' . $item->menu_image . '" alt="' . $item->title . '" />';
}
else
{
$linktype = $item->title;
}
$flink = $item->flink;
$flink = JFilterOutput::ampReplace(htmlspecialchars($flink));
if ($linktype == "CustomSearchBox"){
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style' => 'xhtml');
$position = 'CustomSearchBox';
echo $renderer->render($position, $options, null);
}
else {
switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// window.open
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$params->get('window_open');
?><a <?php echo $class; ?>href="<?php echo $flink; ?>" onclick="window.open(this.href,'targetWindow','<?php echo $options;?>');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
endswitch;
}
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.
jQuery
Funktionen wieappend()
oderprepend()
die nicht auf JavaScript-fähigen Browser arbeiten.