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

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывод другого альтернативного макета модуля/компонента через шаблон

 (Прочитано 250 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tomclancys
Осваиваюсь на форуме
***

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

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



« : 26.06.2017, 19:21:58 »

Здравствуйте.

Возник вопрос, как можно присвоить альтернативный макет модулю/компоненту через сам шаблон.
Пример - у нас 2 шаблона и для каждого шаблона свои альтернативные макеты модулей/компонентов, получается мы их дублируем в панели управления но по сути они выводят одно и тоже но в разных стилях.

В каждом модуле/компоненте есть параметр отвечающий за макет по умолчанию:
Код:
$params->get('layout', 'default');

Буду благодарен за ответы. Погуглил, ничего подобного не нашёл.
Записан
robert
Профи
********

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

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


« Ответ #1 : 26.06.2017, 19:27:28 »

как можно присвоить альтернативный макет модулю/компоненту через сам шаблон.
у нас 2 шаблона и для каждого шаблона свои альтернативные макеты модулей/компонентов
Разве вы не ответили на свой вопрос? Или у вас слово "шаблон" еще имеет другое значение?
Записан
tomclancys
Осваиваюсь на форуме
***

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

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



« Ответ #2 : 26.06.2017, 19:32:17 »

Нет, не ответил.

В самом шаблоне нам нужно например один и тот же модуль вывести два раза с разными альтернативными макетами. Вот ещё пример:

Шаблон - /tamplate/name/
Альтернативный макет №1 - /tamplate/name/html/module1/new1.php
Альтернативный макет №2 - /tamplate/name/html/module1/new2.php

В идеале было бы конечно как то так но в документации такого нету:
<jdoc:include type="modules" name="module1" style="none" layout="new1" />
<jdoc:include type="modules" name="module2" style="none" layout="new2" />
Записан
robert
Профи
********

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

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


« Ответ #3 : 26.06.2017, 20:13:17 »

А разве копия модуля со своим макетом не дает такого результата?
Записан
Shustry
Moderator
*****

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

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


Рисую дизайны


« Ответ #4 : 27.06.2017, 01:05:06 »

Можно так.
Записан
tomclancys
Осваиваюсь на форуме
***

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

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



« Ответ #5 : 27.06.2017, 11:04:43 »

Спасибо. Это уже ближе к ответу. Но всё равно не ясно как задать макет модуля. Таким образом не работает:
Код:
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'none');
$module     = JModuleHelper::getModule('mod_menu');
$module->params    = "layout=new1";
echo $renderer->render($module, $options);
Записан
robert
Профи
********

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

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


« Ответ #6 : 27.06.2017, 11:56:23 »

Код
$module->params = '{"layout":"new1"}';
Но я так и не понял, зачем вы делаете это в шаблоне?
Записан
fbr
Живу я здесь
******

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

Сообщений: 1321


« Ответ #7 : 27.06.2017, 12:01:06 »

Если правильно вас понял, то наверное можно проще

Шаблон 1: просто переименуйте назад new1 -> default
Шаблон 2: new2 -> default

Теперь в шаблонах по умолчанию будет выводить разные макеты под одним именем
Записан
tomclancys
Осваиваюсь на форуме
***

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

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



« Ответ #8 : 27.06.2017, 12:58:09 »

Если правильно вас понял, то наверное можно проще

Шаблон 1: просто переименуйте назад new1 -> default
Шаблон 2: new2 -> default

Теперь в шаблонах по умолчанию будет выводить разные макеты под одним именем
new1 и new2 в каждом шаблоне есть.
Записан
tomclancys
Осваиваюсь на форуме
***

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

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



« Ответ #9 : 27.06.2017, 13:00:45 »

Код
$module->params = '{"layout":"new1"}';
Но я так и не понял, зачем вы делаете это в шаблоне?
Модуль так даже не выводится.
Код:
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'none');
$module     = JModuleHelper::getModule('mod_menu');
$module->params = '{"layout":"default"}';
echo $renderer->render($module, $options);       

Записан
tomclancys
Осваиваюсь на форуме
***

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

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



« Ответ #10 : 27.06.2017, 13:29:32 »

Всё, разобрался. Заработало так:
Код:
      jimport( 'joomla.application.module.helper' );
      $module = JModuleHelper::getModule( 'mod_menu' );
      $attribs = array('style' => 'none');
      $module->params = "menutype=mainmenu\nlayout=default\nshowAllChildren=1";
      echo JModuleHelper::renderModule($module, $attribs);

В зависимости от модуля меняются параметры "$module->params ="
Записан
robert
Профи
********

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

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


« Ответ #11 : 27.06.2017, 22:58:19 »

J!1.5, что ли?
Записан
tomclancys
Осваиваюсь на форуме
***

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

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



« Ответ #12 : 28.06.2017, 08:15:07 »

J!1.5, что ли?
Нет. Joomla 3.6.
Это нужно было для следующего:
- Есть 3 шаблона. Каждый шаблон для конкретной цели.
- В каждом шаблоне по 2-3 одинаковых модуля которые выводят какую то информацию.
- Чтобы не дублировать в панели управления для каждого шаблона один и тот же модуль по несколько раз.
- Сейчас мы добавляем 1 модуль в панели управления и выводим его как нам надо в разных шаблонах.
- Меньше мусора и дублей в панели управления.
Записан
robert
Профи
********

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

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


« Ответ #13 : 28.06.2017, 12:02:31 »

Я понимаю, что вас не переубедить, но все равно напишу для других посетителей.
1. Ваш способ может быть оправдан где угодно, кроме в шаблоне: механизм вывода модулей в нем - как раз большой плюс CMS, к которому прилагали немало усилий.
2. Модуль будет выводиться даже тогда, когда он не опубликован.
3. 2 строки в панели управления, IMHO, не мусор, в отличие от ваших повторяющихся врезок в шаблонном индексе. Вы сами рискуете путаться в них, не говоря о ваших возможных "преемниках", которые будут проклинать вас до седьмого колена.
« Последнее редактирование: 28.06.2017, 12:10:04 от robert » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | 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