Пример задачи для которой нужно переопределить файл helper.php в шаблоне Joomla 1.5 - это добавление title (тайтла) к пунктам меню.
Стандартно такой функционал не предусмотрен, хотя это очень полезно как для seo-продвижения сайта, так и для юзабилити сайта.
Итак, рассмотрим как решить эту проблему конкретно для модуля меню (mod_mainmenu).
Особенность данного модуля в том, что собственно вывод конкретного пункта меню скрывается в helper.php и стандартно мы не можем как то существенно повлиять через default.php (только добавить оберток, но добавить title в ссылку - не получится).
Берем /modules/mod_mainmenu/helper.php и копируем его в /templates/название шаблона/html/mod_mainmenu.
Пока он у нас не работает - для его подключения необходимо добавить строчку
require_once (dirname(__FILE__).DS.'helper.php');
в default.php.
Далее в helper.php переименовываем классы
- modMainMenuHelper -> WebmodMainMenuHelper
- JMenuTree -> WebJMenuTree
и функции
- buildXML -> WebbuildXML.
В файле default.php переименовываем callback-функцию
modMainMenuXMLCallback в WebmodMainMenuXMLCallback.
Теперь осталось поправить вызовы функций в default.php и в helper.php и готово, можно добавлять новый функционал в helper.php.
Я, в частности, добавил генерацию тайтла по принципу - из названия пункта меню в названии остается часть до "::", а то, что дальше - становится тайтлом. Если же символов "::" в названии нет, то тайтл совпадает с названием пункта меню.
Чтобы воспользоваться данным методом достаточно скачать файл и распаковать его содержимое в папку /templates/название шаблона/html/mod_mainmenu.
Внимание!!! Если в Вашем шаблоне эта папка ну пуста и там реализован другой функционал, то он потеряется (а именно шаблоны от yootheme, joomlart, icetheme и другие).
| Вариант верстки меню для Joomla 1.5 с использованием CSS 2.1 &rarr |
|---|





Комментарии
Цитирую Administrator: Цитировать
dirname(__FILE_ _) - показывает текущую папку, то есть если вызов был из файла default.php внутри модуля - то результат выше, а если из шаблона - покажет папку в шаблоне Цитировать
localhost\prazdniksve ta\modules\mod_mainmen u\tmpl\
я пока довольно слабый знаток, возможно, так "должно быть", решил тупо копированием модифицированно го helper в эту папку. В любом случае - спасибо и решпект за. Цитировать
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/home/h1u270/public_html/data:image/jpg;base64,/9j/4AAQSkZJRgABAQA AAQABAAD/2wCEAAkGBhQSEBU QEBQUFRUVFxUVFR QXFhgUFRcWFBIVF xQUGBUXGyceFxkj GhUUHy8gJicpLCw sFR4xNTAqNSYrLS kBCQoKDQwOFA8PF CkYFBgpKSkpKSkp KSkpKSkpKSkpKSk p…ES6XQERE BERAREQEREBEuiA iIgIiXQEREBERBx dcrR7T4tzDL3I6Lnabzly3seHpKFDagHjMe+Q /+yuZU3VorguVcPr2hodIS 24BAL3k2I0vYrEl2ihHW7 wv+JWFWkCl1VA2vDRaNhA6rho8 guuTauZ5DI8rS64 BN3/NJGhPWE8lW3dcqj38pzx0DNP0bizWRx 7jrqBddR5Qs28Tu +tOR+FSFXoXDrXT JXRt9J7B3uA9pVFHahrnZjAw k/Te+Sw6uGnGyyY9s HgktZA29t0fULfO JV8lXK7HIBvmi/7jf919UuLQyuLI5WPcBc hrgTa9r2HBU6dtJ /8AEA+qxjfY1bfY3ad76wCWRzt in /home/h1u270/public_html/modules/mod_janews/helper.php on line 67
Как можно исправить? Цитировать
В каком моем? Все мои шаблоны под заказ и не раздаются Цитировать
В данном файле реализована система тайтлов через ::, то есть пункт меню в зазванием "Название::тайтл ", если тайтл не указан - он совпадает с названием. Код рабочий - чистите кэш, проверяйте Цитировать
Хм.. если речь о шаблонах вывода то те компоненты которые имеют правильную модель вывода MVC (обычно папка tmpl) могут быть переопределены, а вот с другими и с хелперами дело обстоит заметно сложнее. В частности указанная модель насколько я знаю переопределена быть не может Цитировать
Ну а мне теперь переквалифициро ваться в Кашпировского чтоб узнать о каком шаблоне речь? Цитировать
О чем вообще речь? Цитировать
Стиль модуля меню задается в параметрах модуля в менеджере модулей Цитировать
RSS лента комментариев этой записи.