Пример задачи для которой нужно переопределить файл 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 и другие).
Цитирую Administrator:
dirname(__FILE_ _) - показывает текущую папку, то есть если вызов был из файла default.php внутри модуля - то результат выше, а если из шаблона - покажет папку в шаблоне
localhost\prazdniksveta\modules\mod_mainmenu\tmpl\
я пока довольно слабый знаток, возможно, так "должно быть", решил тупо копированием модифицированно го helper в эту папку. В любом случае - спасибо и решпект за.
Warning: file_exists() [function.file- exists]: open_basedir restriction in effect. File(/home/h1u2 70/public_html/ data:image/jpg; base64,/9j/4AAQ SkZJRgABAQAAAQA BAAD/2wCEAAkGBh QSEBUQEBQUFRUVF xUVFRQXFhgUFRcW FBIVFxQUGBUXGyc eFxkjGhUUHy8gJi cpLCwsFR4xNTAqN SYrLSkBCQoKDQwO FA8PFCkYFBgpKSk pKSkpKSkpKSkpKS kpKSkp......... ............... ES6XQEREBERAREQ EREBEuiAiIgIiXQ EREBERBxdcrR7T4 tzDL3I6Lnabzly3 seHpKFDagHjMe+Q /+yuZU3VorguVcP r2hodIS24BAL3k2 I0vYrEl2ihHW7wv +JWFWkCl1VA2vDR aNhA6rho8guuTau Z5DI8rS64BN3/NJ GhPWE8lW3dcqj38 pzx0DNP0bizWRx7 jrqBddR5Qs28Tu+ tOR+FSFXoXDrXTJ XRt9J7B3uA9pVFH ahrnZjAwk/Te+Sw 6uGnGyyY9sHgktZ A29t0fULfOJV8lX K7HIBvmi/7jf919 UuLQyuLI5WPcBch rgTa9r2HBU6dtJ/ 8AEA+qxjfY1bfY3 ad76wCWRzt in /home/h1u270/pu blic_html/modul es/mod_janews/h elper.php on line 67
Как можно исправить?
В каком моем? Все мои шаблоны под заказ и не раздаются
В данном файле реализована система тайтлов через ::, то есть пункт меню в зазванием "Название::тайт л", если тайтл не указан - он совпадает с названием. Код рабочий - чистите кэш, проверяйте
Хм.. если речь о шаблонах вывода то те компоненты которые имеют правильную модель вывода MVC (обычно папка tmpl) могут быть переопределены, а вот с другими и с хелперами дело обстоит заметно сложнее. В частности указанная модель насколько я знаю переопределена быть не может
Ну а мне теперь переквалифициро ваться в Кашпировского чтоб узнать о каком шаблоне речь?
О чем вообще речь?
Стиль модуля меню задается в параметрах модуля в менеджере модулей
RSS лента комментариев этой записи