Отдельный шаблон для компонента

  • 8 Ответов
  • 584 Просмотров

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

*

Оффлайн error648398

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

*

Оффлайн Aleks.Denezh

Re: Отдельный шаблон для компонента
« Ответ #1 : 22.01.2016, 17:23:06 »
JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );

*

Оффлайн fsv

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

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

*

Оффлайн Aleks.Denezh

Re: Отдельный шаблон для компонента
« Ответ #3 : 22.01.2016, 22:33:13 »
Если в шаблоне есть параметры, они работать не будут.
Не все используют шаблонные параметры...

*

Оффлайн error648398

Re: Отдельный шаблон для компонента
« Ответ #4 : 23.01.2016, 01:42:14 »
Всем спасибо, в шаблоне не использовались другие параметры, и вариант:

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

подошел

*

Оффлайн NeuroZ

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

*

Оффлайн Aleks.Denezh

Re: Отдельный шаблон для компонента
« Ответ #6 : 25.01.2016, 19:45:02 »
Круто! Работает.
Только странно, что в NetBeans (не знаю как в других редакторах) не появляется setTemplate в выпадающем списке методов для getApplication
в других редакторах тоже не выдает этот метод )

*

Оффлайн NeuroZ

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

*

Оффлайн NeuroZ

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