Joomla 1.5 Верстка Рецепты Переопределение helper.php в шаблоне Joomla 1.5
set3-24

Переопределение helper.php в шаблоне Joomla 1.5

Рейтинг пользователей: / 10
ХудшийЛучший 

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

 

 
Интересная статья? Поделись ей с другими:

Комментарии  

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

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

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

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

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

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

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

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

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

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

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

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


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

Войти на сайт

Ваше мнение

А если бы плагин rusbuttons стал платным?