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

error648398

  • Осваиваюсь на форуме
  • 168
  • 21
Не подскажите решение вывода отдельного шаблона сайта для конкретного компонента, можно конечно переопределять шаблон для пункта меню, но хотелось бы этого избежать, и программно указать компоненту какой шаблон использовать.
Как то в инете ничего похожего не нашел.
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Отдельный шаблон для компонента
« Ответ #1 : 22.01.2016, 15:23:06 »
JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

fsv

  • Практически профи
  • 2524
  • 367
Re: Отдельный шаблон для компонента
« Ответ #2 : 22.01.2016, 19:11:24 »
JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );
Если в шаблоне есть параметры, они работать не будут.

Из одного плагина (JED) по смене шаблонов (с/на мобильный):
Спойлер
[свернуть]
При каждой загрузке страницы - запрос на получение параметров этого НЕ основного шаблона.
Не понравилось. Сделал получение параметров 1 раз - при выборе мобильного шаблона в настройках плагина - с сохранением этих данных в поле (параметрах) плагина. Вы для своего компонента, если планируете указывать новый шаблон в его настройках, можете также сделать.
Тогда потом как-то похоже:
Код: php
$app->setTemplate( $mobiletemplate_name, (new JRegistry($mobiletemplate_params)) );
   
, только переменные ваши будут.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Отдельный шаблон для компонента
« Ответ #3 : 22.01.2016, 20:33:13 »
Если в шаблоне есть параметры, они работать не будут.
Не все используют шаблонные параметры...
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

error648398

  • Осваиваюсь на форуме
  • 168
  • 21
Re: Отдельный шаблон для компонента
« Ответ #4 : 22.01.2016, 23:42:14 »
Всем спасибо, в шаблоне не использовались другие параметры, и вариант:

JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );

подошел
*

NeuroZ

  • Осваиваюсь на форуме
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Re: Отдельный шаблон для компонента
« Ответ #5 : 25.01.2016, 17:11:33 »
JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );
Круто! Работает.
Только странно, что в NetBeans (не знаю как в других редакторах) не появляется setTemplate в выпадающем списке методов для getApplication
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Re: Отдельный шаблон для компонента
« Ответ #6 : 25.01.2016, 17:45:02 »
Круто! Работает.
Только странно, что в NetBeans (не знаю как в других редакторах) не появляется setTemplate в выпадающем списке методов для getApplication
в других редакторах тоже не выдает этот метод )
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

NeuroZ

  • Осваиваюсь на форуме
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Re: Отдельный шаблон для компонента
« Ответ #7 : 26.01.2016, 15:53:11 »
Столкнулся еще с такой проблемой. Не входит в админку.
Суть в том, что мне потребовалось цеплять разные шаблоны к разным доменным именам одного сайта. С целью, чтобы админка была общая, а отображения фронт-енд разное.
Но вот по первому сайту (с дефолтным шаблоном) админка открывается (сайт1.ру/administrator), а админка второго домена выдает 500 ошибку (сайт2.ру/administrator)
Файловая система одна. Как это можно исправить?
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть
*

NeuroZ

  • Осваиваюсь на форуме
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Re: Отдельный шаблон для компонента
« Ответ #8 : 26.01.2016, 16:04:28 »
Сам разобрался... не учел, что плагины отрабатывают как на фронт-енде, так и на бэк-енде. Добавил !$app->isAdmin() в условие, и всё заработало)
Цитировать
if ($sitename != 'сайт1') {
            if (!$app->isAdmin())
                $app->setTemplate('шаблон2');
        }
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться