Aquí hay una alternativa para cargar el módulo de búsqueda en su menú. Requiere un par de pasos simples:
1. Anula tu mod_menu
módulo
- Cree una anulación en su carpeta de plantillas
\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.
- Copie los siguientes contenidos al archivo:
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;
}
He agregado una if-else
declaración que comienza en la línea 29, que verifica si el título del elemento del menú es "CustomSearchBox". Si ese es el caso, se carga la posición del módulo "CustomSearchBox". Si no, se devuelve el elemento de menú normal. Puede cambiar "CustomSearchBox" a lo que quiera, pero si recuerda usar el mismo valor en los siguientes pasos.
2. Crear un nuevo módulo de búsqueda
Cree el módulo de búsqueda y configure los parámetros según sea necesario (sugiero ocultar el título del módulo).
Publique el módulo en la posición personalizada "CustomSearchBox"
3. Crear un nuevo elemento de menú
El elemento del menú puede ser de cualquier tipo, sugiero "URL externa" y el nombre DEBE ser "CustomSearchBox".
¡Guarde su elemento de menú, y todo el elemento de menú será reemplazado por el cuadro de búsqueda!
Avísame si algo no está claro.
jQuery
funciones comoappend()
oprepend()
que no funcionarán en los navegadores con JavaScript deshabilitado.