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

tomclancys

  • Осваиваюсь на форуме
  • 122
  • 3
Здравствуйте.

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

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

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

robert

  • Профи
  • 4075
  • 376
как можно присвоить альтернативный макет модулю/компоненту через сам шаблон.
у нас 2 шаблона и для каждого шаблона свои альтернативные макеты модулей/компонентов
Разве вы не ответили на свой вопрос? Или у вас слово "шаблон" еще имеет другое значение?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

tomclancys

  • Осваиваюсь на форуме
  • 122
  • 3
Нет, не ответил.

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

Шаблон - /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

  • Профи
  • 4075
  • 376
А разве копия модуля со своим макетом не дает такого результата?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

Shustry

  • Moderator
  • 6430
  • 735
  • Рисую дизайны
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

tomclancys

  • Осваиваюсь на форуме
  • 122
  • 3
Можно так.
Спасибо. Это уже ближе к ответу. Но всё равно не ясно как задать макет модуля. Таким образом не работает:
Код
$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

  • Профи
  • 4075
  • 376
Код: php-brief
$module->params = '{"layout":"new1"}';
Но я так и не понял, зачем вы делаете это в шаблоне?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

fbr

  • Живу я здесь
  • 1283
  • 142
Если правильно вас понял, то наверное можно проще

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

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

tomclancys

  • Осваиваюсь на форуме
  • 122
  • 3
Если правильно вас понял, то наверное можно проще

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

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

tomclancys

  • Осваиваюсь на форуме
  • 122
  • 3
Код: php-brief
$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

  • Осваиваюсь на форуме
  • 122
  • 3
Всё, разобрался. Заработало так:
Код
      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

  • Профи
  • 4075
  • 376
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

tomclancys

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

robert

  • Профи
  • 4075
  • 376
Я понимаю, что вас не переубедить, но все равно напишу для других посетителей.
1. Ваш способ может быть оправдан где угодно, кроме в шаблоне: механизм вывода модулей в нем - как раз большой плюс CMS, к которому прилагали немало усилий.
2. Модуль будет выводиться даже тогда, когда он не опубликован.
3. 2 строки в панели управления, IMHO, не мусор, в отличие от ваших повторяющихся врезок в шаблонном индексе. Вы сами рискуете путаться в них, не говоря о ваших возможных "преемниках", которые будут проклинать вас до седьмого колена.
« Последнее редактирование: 28.06.2017, 11:10:04 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Табы в шаблон

Автор мираж

Ответов: 0
Просмотров: 28
Последний ответ 18.09.2017, 11:57:43
от мираж
Вывод материалов нескольких категорий на одной странице \?

Автор quake3

Ответов: 3
Просмотров: 120
Последний ответ 12.09.2017, 20:58:07
от fireman
Joomla видит только шаблон по-умолчанию

Автор dmmur

Ответов: 1
Просмотров: 103
Последний ответ 11.09.2017, 18:43:54
от kotstantin
Копирование папок components/com_content/ в шаблон

Автор Mnojitell

Ответов: 3
Просмотров: 118
Последний ответ 07.09.2017, 11:34:57
от Mnojitell
Вывод - Блог категории. Помогите советом

Автор denis174

Ответов: 7
Просмотров: 449
Последний ответ 31.08.2017, 16:06:18
от CastorTroy