|
Виталик
|
 |
« : 25.09.2008, 01:19:50 » |
|
Давно задумывался о шаблонах вывода содержимого модулей и компонентов, наконец-то дошел до этого. Читал тему Шаблонизация компонентов в Joomla1.5. Первый взгляд. - разобрался. Спасибо userxp. C модулями всё работает аналогично! Если вы хотите изменить отображение модуля, то в папке html шаблона нужно создать папку одноимённую модулю (например mod_syndicate) и файлы из этой папки заменят файлы из папки tmpl соответствующего модуля пути {root}/modules/mod_модуль/tmplсоотвествует путь в шаблоне {root}/templates/{template}/html/mod_модуль/categoryнапример файл {root}/modules/mod_syndicate/tmpl/default.php] заменит файл {root}/templates/{template}/html/mod_syndicate/default.php
|
|
|
|
« Последнее редактирование: 25.09.2008, 02:07:20 от Виталик »
|
Записан
|
|
|
|
|
Mitrich
|
 |
« Ответ #1 : 26.09.2008, 17:46:37 » |
|
Виталик +1 Сам недавно узнал о такой штуке, но что то руки не доходили написать 
|
|
|
|
|
Записан
|
|
|
|
|
GiBSON
Гость
|
 |
« Ответ #2 : 30.09.2008, 22:24:26 » |
|
Да подтверждаю есть такое особенно удобна подгонка модулей к определенному шаблону и при этом шаблон не привязывается именно к этой Joomla т.к. сами модули мы не меняем
|
|
|
|
|
Записан
|
|
|
|
|
mOOx
Гость
|
 |
« Ответ #3 : 10.02.2009, 02:36:09 » |
|
Приветствую. Об этом я и сам догадался. Правда не сразу  . Использую J1.5.9. Встала проблема: мне нужно вывести на страницу меню. Оно выводиться в ul/li. Однако внутри li идет a. Так вот фишка в том, что класс active прописывается именно для ссылки, а не для li. Мне же, чтобы задизайнить, нужно иметь active именно в классах li. Я так и не смог понять, как это реализовать. Вопрос: $node - это что за объект? Где можно глянуть описание его методов и свойств? Пока это все. Думаю, если проясните этот момент, то смогу дальше разобраться сам. Хотя если подскажете решение, буду благодарен вдвойне.
|
|
|
|
|
Записан
|
|
|
|
DioGen
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 27
|
 |
« Ответ #4 : 06.03.2009, 23:27:52 » |
|
mOOx, ты разобрался с Приветствую. Об этом я и сам догадался. Правда не сразу  . Использую J1.5.9. Встала проблема: мне нужно вывести на страницу меню. Оно выводиться в ul/li. Однако внутри li идет a. Так вот фишка в том, что класс active прописывается именно для ссылки, а не для li. Мне же, чтобы задизайнить, нужно иметь active именно в классах li. Я так и не смог понять, как это реализовать. Вопрос: $node - это что за объект? Где можно глянуть описание его методов и свойств? Пока это все. Думаю, если проясните этот момент, то смогу дальше разобраться сам. Хотя если подскажете решение, буду благодарен вдвойне. если да то как?
|
|
|
|
|
Записан
|
|
|
|
|
mOOx
Гость
|
 |
« Ответ #5 : 08.03.2009, 15:29:29 » |
|
В общем-то все оказалось не так сложно, как казалось. "Стиль меню: список" более чем подошел. Вот с такими стилями я получил желаемый результат div.moduletable_menu > ul { list-style-image: url('../images/topnav_marker.png'); list-style-type: none; list-style-position: inside; } div.moduletable_menu > ul > li { width: 40%; padding: 5px 0px; } div.moduletable_menu > ul > li > a { color: white; font-size: 18px; text-decoration: underline; } div.moduletable_menu > ul > li.active { background-color: #536d0f; color: #cad17d; Хотя и с меню разобраться получилось. Если в папке шаблона создать папку "html", а в ней папку "mod_mainmenu", а в ней файл default.php с содержимым $menu = &JSite::getMenu(); $active = $menu->getActive(); $path = isset($active) ? array_reverse($active->tree) : null; print_r($menu); print_r($params); то из этого можно узнать много чего интересного.
|
|
|
|
|
Записан
|
|
|
|
Aquarius
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 27
|
 |
« Ответ #6 : 31.03.2009, 14:53:10 » |
|
Уважаемые, а каким образом создать подобный стиль для Joomla 1.0.15? На 1.5.9 добился положительного результата описанным выше способом, но на 1.0.15 я в ступоре. В стилях прописал: table.moduletable { background:url(../images/mod_background.gif);
}
table.moduletable th { padding-top :70px; background-image: url(../images/mod_venz_top.gif); width : 188px; height : 105px; } table.moduletable td { padding-left : 10px; padding-right : 0px; } Все получилось как надо, кроме нижнего узора. Как его воткнуть, я не знаю.
|
|
|
|
|
|
beliyadm
|
 |
« Ответ #7 : 31.03.2009, 15:00:34 » |
|
в 1.0 только оборачивать див с модулем в еще два (или лепить выше\ниже) с картинками 1 и 3
|
|
|
|
|
Записан
|
|
|
|
Aquarius
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 27
|
 |
« Ответ #8 : 05.04.2009, 04:10:10 » |
|
beliyadm, подскажите пожалуйста, а это нужно делать для каждого модуля или где-то можно указать единый стиль для всех модулей (системных и самодельных)? Еще есть немаловажная для меня тема. Некоторые модули в моем будущем сайте будут без заголовка, то есть верхнего узора не будет, так как он прописан, как background, а этого очень не хотелось бы. Как лучше поступить в такой ситуации?
Заранее спасибо!
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #9 : 05.04.2009, 10:31:32 » |
|
beliyadm, подскажите пожалуйста, а это нужно делать для каждого модуля или где-то можно указать единый стиль для всех модулей (системных и самодельных)?
можно конечно влезть в ядро, но если модулей не 100 штук, то в шаблоне оборачивать каждую позицию и для каждой позиции делать только один модуль. Потому все-таки пока не поздно рекомендовал бы перейти на 1.5 
|
|
|
|
|
Записан
|
|
|
|
Aquarius
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 27
|
 |
« Ответ #10 : 05.04.2009, 11:17:36 » |
|
Да попытался я перейти, мне 1.5 очень нравится но, к сожалению столкнулся с проблемой белого экрана. Появляется при публикации модулей. Нигде не смог найти решения =( Ткните меня носом, если можете 
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #11 : 05.04.2009, 11:54:23 » |
|
Да попытался я перейти, мне 1.5 очень нравится но, к сожалению столкнулся с проблемой белого экрана. Появляется при публикации модулей. Нигде не смог найти решения =( Ткните меня носом, если можете  давайте вопросы не связанные с шаблонизацией модулей в 1.5 обсуждать в другой теме, где подробно опишите конфигурацию хоста, что делали, на каком этапе с какой ошибкой сталкивались, что в error.log сервера (при белом экране)
|
|
|
|
|
Записан
|
|
|
|
Арчик
Давно я тут
  
Репутация: +32/-0
Offline
Пол: 
Сообщений: 378
|
 |
« Ответ #12 : 08.04.2009, 12:27:15 » |
|
Aquarius - Возможно дело в legacy - попробуй включить плугин )))
|
|
|
|
|
Записан
|
|
|
|
COF
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 10
|
 |
« Ответ #13 : 11.05.2009, 12:15:49 » |
|
например файл {root}/modules/mod_syndicate/tmpl/default.php] заменит файл {root}/templates/{template}/html/mod_syndicate/default.php
А как быть если нужно более одного шаблона, если закидывать файл с названием отличным от default.php, как его подключить?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #14 : 11.05.2009, 14:41:21 » |
|
А как быть если нужно более одного шаблона, если закидывать файл с названием отличным от default.php, как его подключить?
я так думаю что либо дублировать в каждом шаблоне либо закинуть в основной каталог modules
|
|
|
|
|
Записан
|
|
|
|
COF
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 10
|
 |
« Ответ #15 : 11.05.2009, 15:15:15 » |
|
я так думаю что либо дублировать в каждом шаблоне либо закинуть в основной каталог modules
Возможно я не до понял, имел ввиду несколько шаблонов именно модуля, а не сайта. А вот по поводу закинуть в каталог modules нужно попробовать, должно получиться, спасибо.
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #16 : 11.05.2009, 15:21:51 » |
|
Возможно я не до понял, имел ввиду несколько шаблонов именно модуля, а не сайта. А вот по поводу закинуть в каталог modules нужно попробовать, должно получиться, спасибо.
тогда я неправильно понял. В таком случае я бы делал так - в XML модуля добавил бы дополнительный параметр, к примеру type1\typ1\type3 в хелпере модуля добавить их отлов и в шаблоне (одном файле default.php) прописывал бы различные условия вывода в зависимости от данного параметра
|
|
|
|
|
Записан
|
|
|
|
COF
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 10
|
 |
« Ответ #17 : 11.05.2009, 15:38:36 » |
|
Извините, не так давно серьезно взялся за Joomla, не могли бы вы поподробнее написать, или ссылку дать на более-менее внятную документация для разработчиков, на русском, если такая имеется.
Потому что я пробовал, клонировать папку с модулем и дать другое названием всем дочерним файлам и т.д. Но в админке модуль воспринимается все равно только один.
|
|
|
|
« Последнее редактирование: 11.05.2009, 15:41:46 от COF »
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #18 : 11.05.2009, 15:44:27 » |
|
В XML файл модуля добавляем строку в блок PARAMS <param name="modtype" type="text" default="" label="Custom type module" description="Custom type module" /> В helper.php $modtype = $params->get('modtype'); И после в шаблоне default.php устраиваем проверку от этого параметра if ($modtype == '111') { else } {}
|
|
|
|
|
Записан
|
|
|
|
COF
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 10
|
 |
« Ответ #19 : 11.05.2009, 16:02:22 » |
|
Получилось. Спасибо огромное.
|
|
|
|
|
Записан
|
|
|
|
vik
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #20 : 06.06.2009, 12:37:34 » |
|
Если вы хотите изменить отображение модуля, то в папке html шаблона нужно создать папку одноимённую модулю (например mod_syndicate) и файлы из этой папки заменят файлы из папки tmpl соответствующего модуля пути {root}/modules/mod_модуль/tmpl соотвествует путь в шаблоне {root}/templates/{template}/html/mod_модуль/category
подскажите граждане, а можно ли таким макаром подменять файлы вывода модулей админки? если конкретно, то com_content/admin.content.html.php, хочу немного изменить форму редактирования статьи. пробовал вариации на тему html/administrator/mod_name/, но безуспешно. или лучше тыкните на исходник, где тот кусок, который выбирает файлы представления для модулей фронт/бек енда, так и не нашёл его...
|
|
|
|
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #21 : 06.06.2009, 13:26:54 » |
|
пробовал вариации на тему html/administrator/mod_name/, но безуспешно.
у админки свой шаблон в папке /administrator/templates/
|
|
|
|
|
Записан
|
|
|
|
vik
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #22 : 07.06.2009, 14:00:46 » |
|
у админки свой шаблон в папке /administrator/templates/
логично  спс а если более глобально - как можно пропатчить отдельные файлы? а то очень хотелось не трогать исходники, чтобы все мои модификации ставились поверху, но так и не понял можно ли это сделать... з.ы. например helper.php для модуля
|
|
|
|
« Последнее редактирование: 07.06.2009, 17:32:04 от vik »
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #23 : 27.06.2009, 12:39:25 » |
|
Возможно об этом уже писалось на форуме, но напишу в этой теме: Вывод позиции модулей можно делать не только в шаблоне сайта, но и в шаблоне модулей:вставляете следующий код: <jdoc:include type="modules" name="position_name" style="0" /> и будут модули внутри модуля P. S. Бесконечную вложенность (выводить в модуле позицию, в которой он сам находится, не получилость) не выводится ни разу.
|
|
|
|
|
Записан
|
|
|
|
ZlyddeN
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 66
|
 |
« Ответ #24 : 20.08.2010, 00:17:07 » |
|
вопрос - можно ли сделать хелпер для модуля НО для текущего шаблона? и куда его забросить? т.е. есть у меня шаблон _MY_TEMPLATE, есть модуль mod_MY_MODULE я хочу чтобы в шаблоне _MY_TEMPLATE были свои собственные запросы к БД для mod_MY_MODULE
|
|
|
|
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #25 : 20.08.2010, 00:21:38 » |
|
helper.php заменить в шаблоне нельзя но в шаблоне можно делать свои запросы и выводить их результаты
|
|
|
|
|
Записан
|
|
|
|
ZlyddeN
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 66
|
 |
« Ответ #26 : 20.08.2010, 00:24:44 » |
|
helper.php заменить в шаблоне нельзя но в шаблоне можно делать свои запросы и выводить их результаты
хм... т.е. мне надо в файле /tempates/_MY_TEMPLATE_/html/_mod_MY_MODULE/default.php переопределить (унаследовать) класс от родного хелпера mod_MY_MODULE и настроить по своему? но тогда будут лишние запросы к БД... т.е. сначал родной хелпер модуля отработает, потом я со своими запросами 
|
|
|
|
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #27 : 20.08.2010, 00:36:14 » |
|
но тогда будут лишние запросы к БД... т.е. сначал родной хелпер модуля отработает, потом я со своими запросами  поэтому лучше переделать сам модуль
|
|
|
|
|
Записан
|
|
|
|
|