Пример задачи для которой нужно переопределить файл 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 и другие).

 

Комментарии   

Nob
0 #16 Nob 25.10.2011 16:12
Спасибо за разъяснение, буду разбираться позже, покуда пойдем по пошлому принципу "работает, и ладно". Спасибо!

Цитирую Administrator:
Цитирую Nob:
в моем случае (dirname(__FILE__).DS.'helper.php') приводит в
localhost\prazdniksveta\modules\mod_mainmenu\tmpl\
я пока довольно слабый знаток, возможно, так "должно быть", решил тупо копированием модифицированного helper в эту папку. В любом случае - спасибо и решпект за.

dirname(__FILE__) - показывает текущую папку, то есть если вызов был из файла default.php внутри модуля - то результат выше, а если из шаблона - покажет папку в шаблоне
Administrator
0 #15 Administrator 25.10.2011 16:06
Цитирую Nob:
в моем случае (dirname(__FILE_ _).DS.'helper.php') приводит в
localhost\prazdniksveta\modules\mod_mainmenu\tmpl\
я пока довольно слабый знаток, возможно, так "должно быть", решил тупо копированием модифицированного helper в эту папку. В любом случае - спасибо и решпект за.

dirname(__FILE_ _) - показывает текущую папку, то есть если вызов был из файла default.php внутри модуля - то результат выше, а если из шаблона - покажет папку в шаблоне
Nob
0 #14 Nob 25.10.2011 15:57
в моем случае (dirname(__FILE __).DS.'helper. php') приводит в
localhost\prazdniksveta\modules\mod_mainmenu\tmpl\
я пока довольно слабый знаток, возможно, так "должно быть", решил тупо копированием модифицированно го helper в эту папку. В любом случае - спасибо и решпект за.
alex
-2 #13 alex 18.02.2011 00:04
Здравствуйте. Воникла проблема с одним из разделов сайта. Выводится сообщение:
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

Как можно исправить?
Administrator
+2 #12 Administrator 08.12.2010 01:31
Цитирую Girevik:
Подскажи как в твоем шаблоне поставить баннер над заголовком материала?

В каком моем? Все мои шаблоны под заказ и не раздаются
Girevik
+1 #11 Girevik 08.12.2010 00:57
Подскажи как в твоем шаблоне поставить баннер над заголовком материала?
Administrator
-1 #10 Administrator 07.11.2010 03:30
Цитирую MAXIM:
У меня не работает( скачал ваши файлики , заменил, но титлы не появились

В данном файле реализована система тайтлов через ::, то есть пункт меню в зазванием "Название::тайт л", если тайтл не указан - он совпадает с названием. Код рабочий - чистите кэш, проверяйте
MAXIM
-1 #9 MAXIM 07.11.2010 03:16
У меня не работает( скачал ваши файлики , заменил, но титлы не появились
Administrator
-1 #8 Administrator 28.09.2010 11:49
Цитирую jan_dax:
Долго искал статью эту... для модулей понятно... а вот можно ли переопределить файл например такой для галереи com_phocagallery/models/categories.php

Хм.. если речь о шаблонах вывода то те компоненты которые имеют правильную модель вывода MVC (обычно папка tmpl) могут быть переопределены, а вот с другими и с хелперами дело обстоит заметно сложнее. В частности указанная модель насколько я знаю переопределена быть не может
jan_dax
0 #7 jan_dax 28.09.2010 11:04
Долго искал статью эту... для модулей понятно... а вот можно ли переопределить файл например такой для галереи com_phocagaller y/models/catego ries.php
Administrator
+2 #6 Administrator 24.09.2010 04:28
Цитирую IPS:
речь о том что в шаблоне стиль есть. с уотступом от края, КРУПНЫЙ шрифт меню, при наведении на него цвет фона меняется на белый а сам шрифт становится темным. Я поставил себе шаблон, создал меню. Так вот у меня этот пункт меню выглядит как обычная гиперссылка по умолчанию - простым текстом с подчеркиванием, при наведении ничего не изменяется. Как сделать так чтобы отображение было такое же как в шаблоне?

Ну а мне теперь переквалифициро ваться в Кашпировского чтоб узнать о каком шаблоне речь?
IPS
+1 #5 IPS 24.09.2010 04:02
речь о том что в шаблоне стиль есть. с уотступом от края, КРУПНЫЙ шрифт меню, при наведении на него цвет фона меняется на белый а сам шрифт становится темным. Я поставил себе шаблон, создал меню. Так вот у меня этот пункт меню выглядит как обычная гиперссылка по умолчанию - простым текстом с подчеркиванием, при наведении ничего не изменяется. Как сделать так чтобы отображение было такое же как в шаблоне?
Administrator
+1 #4 Administrator 24.09.2010 02:07
Цитирую IPS:
Это онятно, там всего 4 варианта- список, Легаси горизонтальный, вертикальный и плоский список. Пробовал, не помогает. Только варианты отображения меню меняет - по горизонтали вертикали с маркерами и все. А выделения при наведении сам шрифт не меняется

О чем вообще речь?
IPS
+2 #3 IPS 24.09.2010 01:26
Это онятно, там всего 4 варианта- список, Легаси горизонтальный, вертикальный и плоский список. Пробовал, не помогает. Только варианты отображения меню меняет - по горизонтали вертикали с маркерами и все. А выделения при наведении сам шрифт не меняется
Administrator
+3 #2 Administrator 24.09.2010 01:14
Цитирую IPS:
Как найти стиль отображения меню в шаблоне??? НА сайте демо там один стиль (выделение при наведениии, крупный текст, отступы) а при установке и создании нового пункта меню - тупо в верхнем левом углу появляется стандартная ссылка (да еще с подчеркиванием) которая нивкакую не похожа на шаблонный стиль?

Стиль модуля меню задается в параметрах модуля в менеджере модулей
IPS
+1 #1 IPS 24.09.2010 00:00
Как найти стиль отображения меню в шаблоне??? НА сайте демо там один стиль (выделение при наведениии, крупный текст, отступы) а при установке и создании нового пункта меню - тупо в верхнем левом углу появляется стандартная ссылка (да еще с подчеркиванием) которая нивкакую не похожа на шаблонный стиль?

Добавить комментарий


Защитный код
Обновить

Последние комментарии

  • Hi, I do think this is a great blog. I stumbledupon it ;) I'm going to return once again since I book ...

    Подробнее...

     
  • В любом случае это будет инструкция, постараюсь конечно максимально полно, но инструкция как выявлять ...

    Подробнее...

     
  • Ок жду. у меня почти 120 сайтов из них 90 на джумле разных версий ) так что мне это важно поэтому ...

    Подробнее...

     
  • Да, это важная часть. Проблема в том что айболит видит не всё. То есть это мера необходимая, но ...

    Подробнее...

     
  • Короче, я обновил php пропатчил сайты и почистился от вирусов ай болитом на этом моя процедура защиты ...

    Подробнее...

Вы смотрели