LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
04.02.2012, 10:39:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Шаблонизация модулей  (Прочитано 9586 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Виталик
Группа развития
*****

Репутация: +75/-0
Offline Offline

Пол: Мужской
Сообщений: 1310



« : 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
Администратор
*******

Репутация: +519/-13
Offline Offline

Пол: Мужской
Сообщений: 3274


Все можно. Но сначала учиться, учиться и учиться.


« Ответ #1 : 26.09.2008, 17:46:37 »

Виталик +1
Сам недавно узнал о такой штуке, но что то руки не доходили написать  Smiley
Записан
GiBSON
Гость
« Ответ #2 : 30.09.2008, 22:24:26 »

Да подтверждаю есть такое особенно удобна подгонка модулей к определенному шаблону и при этом шаблон не привязывается именно к этой Joomla т.к. сами модули мы не меняем
Записан
mOOx
Гость
« Ответ #3 : 10.02.2009, 02:36:09 »

Приветствую.
Об этом я и сам догадался. Правда не сразу Azn. Использую J1.5.9. Встала проблема:
мне нужно вывести на страницу меню. Оно выводиться в ul/li. Однако внутри li идет a. Так вот фишка в том, что класс active прописывается именно для ссылки, а не для li. Мне же, чтобы задизайнить, нужно иметь active именно в классах li.

Я так и не смог понять, как это реализовать. Вопрос: $node - это что за объект? Где можно глянуть описание его методов и свойств?
Пока это все. Думаю, если проясните этот момент, то смогу дальше разобраться сам. Хотя если подскажете решение, буду благодарен вдвойне.
Записан
DioGen
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 26


« Ответ #4 : 06.03.2009, 23:27:52 »

mOOx, ты разобрался с
Приветствую.
Об этом я и сам догадался. Правда не сразу Azn. Использую 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 Offline

Сообщений: 28


« Ответ #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;
}

Все получилось как надо, кроме нижнего узора. Как его воткнуть, я не знаю.


* модуль.jpg (59.54 Кб, 236x398 - просмотрено 293 раз.)
Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #7 : 31.03.2009, 15:00:34 »

в 1.0 только оборачивать див с модулем в еще два (или лепить выше\ниже) с картинками 1 и 3
Записан
Aquarius
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 28


« Ответ #8 : 05.04.2009, 04:10:10 »

beliyadm, подскажите пожалуйста, а это нужно делать для каждого модуля или где-то можно указать единый стиль для всех модулей (системных и самодельных)?
Еще есть немаловажная для меня тема. Некоторые модули в моем будущем сайте будут без заголовка, то есть верхнего узора не будет, так как он прописан, как background, а этого очень не хотелось бы.
Как лучше поступить в такой ситуации?

Заранее спасибо!
Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #9 : 05.04.2009, 10:31:32 »

beliyadm, подскажите пожалуйста, а это нужно делать для каждого модуля или где-то можно указать единый стиль для всех модулей (системных и самодельных)?
можно конечно влезть в ядро, но если модулей не 100 штук, то в шаблоне оборачивать каждую позицию и для каждой позиции делать только один модуль.
Потому все-таки пока не поздно рекомендовал бы перейти на 1.5 Azn
Записан
Aquarius
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 28


« Ответ #10 : 05.04.2009, 11:17:36 »

Да попытался я перейти, мне 1.5 очень нравится но, к сожалению столкнулся с проблемой белого экрана.
Появляется при публикации модулей. Нигде не смог найти решения =(
Ткните меня носом, если можете  Huh
Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #11 : 05.04.2009, 11:54:23 »

Да попытался я перейти, мне 1.5 очень нравится но, к сожалению столкнулся с проблемой белого экрана.
Появляется при публикации модулей. Нигде не смог найти решения =(
Ткните меня носом, если можете  Huh
давайте вопросы не связанные с шаблонизацией модулей в 1.5 обсуждать в другой теме, где подробно опишите конфигурацию хоста, что делали, на каком этапе с какой ошибкой сталкивались, что в error.log сервера (при белом экране)
Записан
Арчик
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 383



« Ответ #12 : 08.04.2009, 12:27:15 »

Aquarius  - Возможно дело в legacy - попробуй включить плугин )))
Записан
COF
Захожу иногда
**

Репутация: +0/-0
Offline 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
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #14 : 11.05.2009, 14:41:21 »

А как быть если нужно более одного шаблона, если закидывать файл с названием отличным от default.php, как его подключить?
я так думаю что либо дублировать в каждом шаблоне либо закинуть в основной каталог modules
Записан
COF
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 10


« Ответ #15 : 11.05.2009, 15:15:15 »

я так думаю что либо дублировать в каждом шаблоне либо закинуть в основной каталог modules

Возможно я не до понял, имел ввиду несколько шаблонов именно модуля, а не сайта. А вот по поводу закинуть в каталог modules нужно попробовать, должно получиться, спасибо.
Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #16 : 11.05.2009, 15:21:51 »

Возможно я не до понял, имел ввиду несколько шаблонов именно модуля, а не сайта. А вот по поводу закинуть в каталог modules нужно попробовать, должно получиться, спасибо.
тогда я неправильно понял. В таком случае я бы делал так - в XML модуля добавил бы дополнительный параметр, к примеру type1\typ1\type3
в хелпере модуля добавить их отлов и в шаблоне (одном файле default.php) прописывал бы различные условия вывода в зависимости от данного параметра
Записан
COF
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 10


« Ответ #17 : 11.05.2009, 15:38:36 »

Извините, не так давно серьезно взялся за Joomla, не могли бы вы поподробнее написать, или ссылку дать на более-менее внятную документация для разработчиков, на русском, если такая имеется.

Потому что я пробовал, клонировать папку с модулем и дать другое названием всем дочерним файлам и т.д. Но в админке модуль воспринимается все равно только один.
« Последнее редактирование: 11.05.2009, 15:41:46 от COF » Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #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 Offline

Пол: Мужской
Сообщений: 10


« Ответ #19 : 11.05.2009, 16:02:22 »

Получилось. Спасибо огромное.
Записан
vik
Захожу иногда
**

Репутация: +0/-0
Offline 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/, но безуспешно.
или лучше тыкните на исходник, где тот кусок, который выбирает файлы представления для модулей фронт/бек енда, так и не нашёл его...
Записан
Виталик
Группа развития
*****

Репутация: +75/-0
Offline Offline

Пол: Мужской
Сообщений: 1310



« Ответ #21 : 06.06.2009, 13:26:54 »

пробовал вариации на тему html/administrator/mod_name/, но безуспешно.
у админки свой шаблон в папке /administrator/templates/
Записан
vik
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #22 : 07.06.2009, 14:00:46 »

у админки свой шаблон в папке /administrator/templates/

логично Azn спс

а если более глобально - как можно пропатчить отдельные файлы? а то очень хотелось не трогать исходники, чтобы все мои модификации ставились поверху, но так и не понял можно ли это сделать...

з.ы. например helper.php для модуля
« Последнее редактирование: 07.06.2009, 17:32:04 от vik » Записан
Виталик
Группа развития
*****

Репутация: +75/-0
Offline Offline

Пол: Мужской
Сообщений: 1310



« Ответ #23 : 27.06.2009, 12:39:25 »

Возможно об этом уже писалось на форуме, но напишу в этой теме:

Вывод позиции модулей можно делать не только в шаблоне сайта, но и в шаблоне модулей:

вставляете следующий код:

<jdoc:include type="modules" name="position_name" style="0" />

и будут модули внутри модуля

P. S. Бесконечную вложенность (выводить в модуле позицию, в которой он сам находится, не получилость) не выводится ни разу.
Записан
ZlyddeN
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 71


« Ответ #24 : 20.08.2010, 00:17:07 »

вопрос - можно ли сделать хелпер для модуля НО для текущего шаблона? и куда его забросить?
т.е. есть у меня шаблон _MY_TEMPLATE, есть модуль mod_MY_MODULE
я хочу чтобы в шаблоне _MY_TEMPLATE были свои собственные запросы к БД для mod_MY_MODULE
Записан
Виталик
Группа развития
*****

Репутация: +75/-0
Offline Offline

Пол: Мужской
Сообщений: 1310



« Ответ #25 : 20.08.2010, 00:21:38 »

helper.php заменить в шаблоне нельзя
но в шаблоне можно делать свои запросы и выводить их результаты
Записан
ZlyddeN
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 71


« Ответ #26 : 20.08.2010, 00:24:44 »

helper.php заменить в шаблоне нельзя
но в шаблоне можно делать свои запросы и выводить их результаты
хм... т.е. мне надо в файле /tempates/_MY_TEMPLATE_/html/_mod_MY_MODULE/default.php
переопределить (унаследовать) класс от родного хелпера mod_MY_MODULE и настроить по своему?

но тогда будут лишние запросы к БД... т.е. сначал родной хелпер модуля отработает, потом я со своими запросами Azn
Записан
Виталик
Группа развития
*****

Репутация: +75/-0
Offline Offline

Пол: Мужской
Сообщений: 1310



« Ответ #27 : 20.08.2010, 00:36:14 »

но тогда будут лишние запросы к БД... т.е. сначал родной хелпер модуля отработает, потом я со своими запросами Azn
поэтому лучше переделать сам модуль
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet