0 Пользователей и 1 Гость просматривают эту тему.
  • 27 Ответов
  • 14417 Просмотров
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Шаблонизация модулей
« : 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

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Re: Шаблонизация модулей
« Ответ #1 : 26.09.2008, 17:46:37 »
Виталик +1
Сам недавно узнал о такой штуке, но что то руки не доходили написать  ^-^

Re: Шаблонизация модулей
« Ответ #2 : 30.09.2008, 22:24:26 »
Да подтверждаю есть такое особенно удобна подгонка модулей к определенному шаблону и при этом шаблон не привязывается именно к этой Joomla т.к. сами модули мы не меняем

Re: Шаблонизация модулей
« Ответ #3 : 10.02.2009, 01:36:09 »
Приветствую.
Об этом я и сам догадался. Правда не сразу :). Использую J1.5.9. Встала проблема:
мне нужно вывести на страницу меню. Оно выводиться в ul/li. Однако внутри li идет a. Так вот фишка в том, что класс active прописывается именно для ссылки, а не для li. Мне же, чтобы задизайнить, нужно иметь active именно в классах li.

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

DioGen

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Re: Шаблонизация модулей
« Ответ #4 : 06.03.2009, 22:27:52 »
mOOx, ты разобрался с
Приветствую.
Об этом я и сам догадался. Правда не сразу :). Использую J1.5.9. Встала проблема:
мне нужно вывести на страницу меню. Оно выводиться в ul/li. Однако внутри li идет a. Так вот фишка в том, что класс active прописывается именно для ссылки, а не для li. Мне же, чтобы задизайнить, нужно иметь active именно в классах li.

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



если да то как?

Re: Шаблонизация модулей
« Ответ #5 : 08.03.2009, 14: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

  • Осваиваюсь на форуме
  • 26
  • 3 / 0
Re: Шаблонизация модулей
« Ответ #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

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Шаблонизация модулей
« Ответ #7 : 31.03.2009, 15:00:34 »
в 1.0 только оборачивать див с модулем в еще два (или лепить выше\ниже) с картинками 1 и 3
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aquarius

  • Осваиваюсь на форуме
  • 26
  • 3 / 0
Re: Шаблонизация модулей
« Ответ #8 : 05.04.2009, 04:10:10 »
beliyadm, подскажите пожалуйста, а это нужно делать для каждого модуля или где-то можно указать единый стиль для всех модулей (системных и самодельных)?
Еще есть немаловажная для меня тема. Некоторые модули в моем будущем сайте будут без заголовка, то есть верхнего узора не будет, так как он прописан, как background, а этого очень не хотелось бы.
Как лучше поступить в такой ситуации?

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Шаблонизация модулей
« Ответ #9 : 05.04.2009, 10:31:32 »
beliyadm, подскажите пожалуйста, а это нужно делать для каждого модуля или где-то можно указать единый стиль для всех модулей (системных и самодельных)?
можно конечно влезть в ядро, но если модулей не 100 штук, то в шаблоне оборачивать каждую позицию и для каждой позиции делать только один модуль.
Потому все-таки пока не поздно рекомендовал бы перейти на 1.5 :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aquarius

  • Осваиваюсь на форуме
  • 26
  • 3 / 0
Re: Шаблонизация модулей
« Ответ #10 : 05.04.2009, 11:17:36 »
Да попытался я перейти, мне 1.5 очень нравится но, к сожалению столкнулся с проблемой белого экрана.
Появляется при публикации модулей. Нигде не смог найти решения =(
Ткните меня носом, если можете  !!!???!!!
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Шаблонизация модулей
« Ответ #11 : 05.04.2009, 11:54:23 »
Да попытался я перейти, мне 1.5 очень нравится но, к сожалению столкнулся с проблемой белого экрана.
Появляется при публикации модулей. Нигде не смог найти решения =(
Ткните меня носом, если можете  !!!???!!!
давайте вопросы не связанные с шаблонизацией модулей в 1.5 обсуждать в другой теме, где подробно опишите конфигурацию хоста, что делали, на каком этапе с какой ошибкой сталкивались, что в error.log сервера (при белом экране)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Арчик

  • Захожу иногда
  • 281
  • 32 / 0
Re: Шаблонизация модулей
« Ответ #12 : 08.04.2009, 12:27:15 »
Aquarius  - Возможно дело в legacy - попробуй включить плугин )))
Компьютер-это вещь для решения проблем, которых у вас не было до его появления...
*

COF

  • Новичок
  • 8
  • 0 / 0
Re: Шаблонизация модулей
« Ответ #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

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Шаблонизация модулей
« Ответ #14 : 11.05.2009, 14:41:21 »
А как быть если нужно более одного шаблона, если закидывать файл с названием отличным от default.php, как его подключить?
я так думаю что либо дублировать в каждом шаблоне либо закинуть в основной каталог modules
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

COF

  • Новичок
  • 8
  • 0 / 0
Re: Шаблонизация модулей
« Ответ #15 : 11.05.2009, 15:15:15 »
я так думаю что либо дублировать в каждом шаблоне либо закинуть в основной каталог modules

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Шаблонизация модулей
« Ответ #16 : 11.05.2009, 15:21:51 »
Возможно я не до понял, имел ввиду несколько шаблонов именно модуля, а не сайта. А вот по поводу закинуть в каталог modules нужно попробовать, должно получиться, спасибо.
тогда я неправильно понял. В таком случае я бы делал так - в XML модуля добавил бы дополнительный параметр, к примеру type1\typ1\type3
в хелпере модуля добавить их отлов и в шаблоне (одном файле default.php) прописывал бы различные условия вывода в зависимости от данного параметра
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

COF

  • Новичок
  • 8
  • 0 / 0
Re: Шаблонизация модулей
« Ответ #17 : 11.05.2009, 15:38:36 »
Извините, не так давно серьезно взялся за Joomla, не могли бы вы поподробнее написать, или ссылку дать на более-менее внятную документация для разработчиков, на русском, если такая имеется.

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Шаблонизация модулей
« Ответ #18 : 11.05.2009, 15:44:27 »
В XML файл модуля добавляем строку в блок PARAMS
Код: xml
<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 } {}
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

COF

  • Новичок
  • 8
  • 0 / 0
Re: Шаблонизация модулей
« Ответ #19 : 11.05.2009, 16:02:22 »
Получилось. Спасибо огромное.
*

vik

  • Новичок
  • 2
  • 0 / 0
Re: Шаблонизация модулей
« Ответ #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/, но безуспешно.
или лучше тыкните на исходник, где тот кусок, который выбирает файлы представления для модулей фронт/бек енда, так и не нашёл его...
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Re: Шаблонизация модулей
« Ответ #21 : 06.06.2009, 13:26:54 »
пробовал вариации на тему html/administrator/mod_name/, но безуспешно.
у админки свой шаблон в папке /administrator/templates/
*

vik

  • Новичок
  • 2
  • 0 / 0
Re: Шаблонизация модулей
« Ответ #22 : 07.06.2009, 14:00:46 »
у админки свой шаблон в папке /administrator/templates/

логично :) спс

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

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

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Re: Шаблонизация модулей
« Ответ #23 : 27.06.2009, 12:39:25 »
Возможно об этом уже писалось на форуме, но напишу в этой теме:

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

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

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

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

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

ZlyddeN

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Шаблонизация модулей
« Ответ #24 : 20.08.2010, 00:17:07 »
вопрос - можно ли сделать хелпер для модуля НО для текущего шаблона? и куда его забросить?
т.е. есть у меня шаблон _MY_TEMPLATE, есть модуль mod_MY_MODULE
я хочу чтобы в шаблоне _MY_TEMPLATE были свои собственные запросы к БД для mod_MY_MODULE
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Re: Шаблонизация модулей
« Ответ #25 : 20.08.2010, 00:21:38 »
helper.php заменить в шаблоне нельзя
но в шаблоне можно делать свои запросы и выводить их результаты
*

ZlyddeN

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Шаблонизация модулей
« Ответ #26 : 20.08.2010, 00:24:44 »
helper.php заменить в шаблоне нельзя
но в шаблоне можно делать свои запросы и выводить их результаты
хм... т.е. мне надо в файле /tempates/_MY_TEMPLATE_/html/_mod_MY_MODULE/default.php
переопределить (унаследовать) класс от родного хелпера mod_MY_MODULE и настроить по своему?

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

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Re: Шаблонизация модулей
« Ответ #27 : 20.08.2010, 00:36:14 »
но тогда будут лишние запросы к БД... т.е. сначал родной хелпер модуля отработает, потом я со своими запросами :)
поэтому лучше переделать сам модуль
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать вывод позиции модулей внутри компонента?

Автор Виталик

Ответов: 11
Просмотров: 9992
Последний ответ 11.08.2014, 05:16:59
от GapArchi
[howto] Создание новой позиции модулей в Joomla 1.5 .

Автор Blinp

Ответов: 221
Просмотров: 242878
Последний ответ 25.11.2013, 16:17:06
от milk101
Как правильно переопределять вывод компонентов, модулей и т.д. в сосбвенном шаблоне

Автор Dr_Satyr

Ответов: 2
Просмотров: 6589
Последний ответ 14.07.2011, 20:55:56
от Matvey
Шаблоны модулей

Автор eternal2000

Ответов: 9
Просмотров: 2907
Последний ответ 19.08.2010, 23:59:35
от ZlyddeN
Проблема с отображением модулей и компонентов.

Автор draco117

Ответов: 1
Просмотров: 1958
Последний ответ 28.03.2010, 16:46:15
от draco117