Ecco un'alternativa per caricare il modulo di ricerca nel tuo menu. Richiede un paio di semplici passaggi:
1. Sostituisci il tuo mod_menu
modulo
- Crea una sostituzione nella cartella dei modelli
\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.
- Copia i seguenti contenuti nel file:
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;
}
Ho aggiunto una if-else
dichiarazione a partire dalla riga 29, che verifica se il titolo della voce di menu è "CustomSearchBox". In tal caso, viene caricata la posizione del modulo "CustomSearchBox". In caso contrario, viene restituita la normale voce di menu. Puoi modificare "CustomSearchBox" in qualsiasi cosa ti piaccia, ma se ricordi di utilizzare lo stesso valore nei seguenti passaggi.
2. Creare un nuovo modulo di ricerca
Crea il modulo di ricerca e imposta i parametri secondo necessità (suggerisco di nascondere il titolo del modulo).
Pubblica il modulo nella posizione personalizzata "CustomSearchBox"
3. Creare una nuova voce di menu
La voce di menu può essere di qualsiasi tipo, suggerisco "URL esterno" e il nome DEVE essere "CustomSearchBox".
Salva la tua voce di menu e l'intera voce di menu verrà sostituita con la casella di ricerca!
Fammi sapere se qualcosa non è chiaro.
jQuery
funzioni similiappend()
oprepend()
che non funzioneranno su browser disabilitati a JavaScript.