Ось одна з альтернатив для завантаження пошукового модуля у своє меню. Для цього потрібно кілька простих кроків:
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.