Вот одна альтернатива, чтобы загрузить модуль поиска в вашем меню. Требуется пара простых шагов:
1. Переопределите ваш mod_menu
модуль
- Создайте переопределение в вашей папке шаблонов
\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.
- Скопируйте следующее содержимое в файл:
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;
}
Я добавил if-else
оператор, начинающийся со строки № 29, который проверяет, является ли заголовок пункта меню «CustomSearchBox». Если это так, позиция модуля "CustomSearchBox" загружается. Если нет, то возвращается обычный пункт меню. Вы можете изменить «CustomSearchBox» на что угодно, но если вы не забыли использовать то же значение в следующих шагах.
2. Создайте новый поисковый модуль
Создайте модуль поиска и установите необходимые параметры (я предлагаю скрыть название модуля).
Опубликуйте модуль в пользовательскую позицию «CustomSearchBox»
3. Создайте новый пункт меню
Пункт меню может быть любого типа, я предлагаю «Внешний URL», и имя ДОЛЖНО быть «CustomSearchBox».
Сохраните ваш пункт меню, и весь пункт меню будет заменен на окно поиска!
Дайте мне знать, если что-то неясно.
jQuery
функции, подобныеappend()
илиprepend()
не работающие в браузерах с отключенным JavaScript.