Как сделать дополнительный параметр для ссылки меню в Joomla?
Собственно, столкнулся я с такой нетривиальной задачей. А именно, мне понадобилось сделать дополнительный параметр для ссылки в меню Joomla.
На макете нарисовано так:

Видно, что ссылка идет с очень интересным дополнительным текстом. Будем пробовать решить эту проблему.
Решать будем путем создания дополнительного параметра в меню Джумлы. Причем, сделаем так, чтобы этот параметр появился в админке. Классно будет, правда? Это вам не цветы по оптовой цене покупать и перепродавать втридорого! Тогда начнем…
Для начала введем этот доп.параметр sptext. Для этого добавим в файл administrator/components/com_menus/models/metadata/component.xml описание параметра после тега
Теперь обновляем нашу админку и вуаля! Параметр появился.

Но ликовать ещё рано! Нужно ещё из него получить данные. Для этого будем ломать файл модуля главного меню. modules/mod_mainmenu/helper.php
Сначала сделаем вывод ссылки в том формате, который нам нужен. Для моей задачи он выглядит так (это примерно 363 строка в указанном файле).
1 | $data = '<div class="link"><a href="'.$tmp->url.'">'.$image.$tmp->name.'</a><br /><span>'.$text.'</span></div>'; |
Нетрудно догадаться, что именно в переменной $text и будет спрятано наше дополнительное описание. Осталось только получить к нему доступ. Я придумал, наверное, не оптимальный вариант. Может быть, вы меня поправите. Итак, вот кусок кода, который нужно вставить ПЕРЕД выводом переменной $data.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $db =& JFactory::getDBO(); $tableName = $db->nameQuote('jos_menu'); $columnName = $db->nameQuote('params'); $sql = "SELECT $columnName FROM $tableName WHERE id = $tmp->id"; $db->setQuery($sql); if ($db->query()) { $ids = $db->loadResultArray(); $z = implode(',',$ids); //echo $z; $begin=strpos($z, "sptext")+7; $end = strpos($z, "show_page_title"); $text = substr ($z, $begin, $end-$begin); } else { echo "FALSE"; } |
Это не что иное, как создание запроса к базе данных с выуживанием нужного поля (функции strpos и substr). Фишка в том, что доп. параметры записываются в одно поле базы данных, и чтобы получить доступ к нужным данным приходится работать со строками. Вот, в принципе, и всё на сегодня! А теперь предлагаю почитать как реальный пацан трёт на тему как вымучивать лаве в интернете и немного посмеяться!
1 комментарий к записи “Как сделать дополнительный параметр для ссылки меню в Joomla?”
Прокомментировать
Рубрики
- javascript
- SEO
- Smarty
- UIPI
- Боремся со СПАМом
- Верстка
- Движки форумов
- Железо
- Забавно
- Интернет в лицах
- Интернет-магазины
- Новости
- Обзоры сайтов
- Обо всем
- Полезные скрипты
- Работа с CMS
- Создание сайтов
- Уроки рекламы
- Шаблоны

Когда параметр уже записан в поле params, то обращайтесь к нему через JParameter.
А вот как добавить дополнительный параметр не изменяя administrator/components/com_menus/models/metadata/component.xml – вот вопрос…