Мне нужно вставить поисковый модуль как пункт меню (модуль меню по умолчанию).
Мне нужен этот вывод:
<ul>
<li>menu item</li>
<li>menu item</li>
<li>SEARCH MODULE</li>
<li>menu item</li>
...
</ul>
Моими первыми мыслями было бы дублировать модуль меню по умолчанию дважды:
- Один для отображения пунктов меню перед модулем поиска без закрывающего
</ul>
тега - Другой для отображения пунктов меню после модуля поиска без открывающего
<ul>
тега
И вставьте поисковый модуль между ними. Это не самый простой и понятный способ достижения моей цели, так как требует:
- 3 позиции модуля для меню
- 2 разных меню в менеджере меню
Я знаю, что мог бы использовать некоторые из модулей мегаменю для этого, но я бы хотел избежать сторонних расширений и использовать собственный код, которым я могу управлять.
Как добавить модуль в качестве пункта меню в меню по умолчанию?
joomla-3.x
menu-item
menu
веб-Тики
источник
источник
jQuery
функции, подобныеappend()
илиprepend()
не работающие в браузерах с отключенным JavaScript.Ответы:
Вот одна альтернатива, чтобы загрузить модуль поиска в вашем меню. Требуется пара простых шагов:
1. Переопределите ваш
mod_menu
модуль\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.default_url.php
Я добавил
if-else
оператор, начинающийся со строки № 29, который проверяет, является ли заголовок пункта меню «CustomSearchBox». Если это так, позиция модуля "CustomSearchBox" загружается. Если нет, то возвращается обычный пункт меню. Вы можете изменить «CustomSearchBox» на что угодно, но если вы не забыли использовать то же значение в следующих шагах.2. Создайте новый поисковый модуль
Создайте модуль поиска и установите необходимые параметры (я предлагаю скрыть название модуля).
Опубликуйте модуль в пользовательскую позицию «CustomSearchBox»
3. Создайте новый пункт меню
Пункт меню может быть любого типа, я предлагаю «Внешний URL», и имя ДОЛЖНО быть «CustomSearchBox».
Сохраните ваш пункт меню, и весь пункт меню будет заменен на окно поиска!
Дайте мне знать, если что-то неясно.
источник
$linktype == "CustomSearchBox"
и здесь$position = 'CustomSearchBox';
CustomSearchBox
в поле позиции модуля и нажмите ввод.$document = JFactory::getDocument();
. Теперь это работает, но мне нужно будет найти способ добавить мое изображение снова.$linktype
функцию echo. Код виден здесь: phpad.org/1645824385 . Спасибо, что указали мне правильное направление, это то, чего я хотел достичь в течение некоторого времени, это потрясающе! :)Хотя вы говорите, что не хотите использовать сторонние расширения, у меня есть решение, которое использует RokCandy от RocketTheme . Это небольшой фрагмент кода, который позволяет очень просто добавить поле поиска в меню. Просто установите плагин и создайте новый макрос следующим образом:
макрос
HTML
Сохрани и закрой.
Теперь создайте пункт меню для поля поиска (я предлагаю
External URL
как тип, но подойдет любой тип пункта меню), и в поле Название добавьте[searchfield][/searchfield]
:RokCandy заменит заголовок на код в макросе, и вы получите поле поиска в меню:
источник