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

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

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

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

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

Сообщений: 180


« : 22.01.2016, 16:09:35 »

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

Репутация: +372/-4
Offline Offline

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



« Ответ #1 : 22.01.2016, 16:23:06 »

JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

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


« Ответ #2 : 22.01.2016, 20:11:24 »

JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );
Если в шаблоне есть параметры, они работать не будут.

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

Репутация: +372/-4
Offline Offline

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



« Ответ #3 : 22.01.2016, 21:33:13 »

Если в шаблоне есть параметры, они работать не будут.
Не все используют шаблонные параметры...
Записан
error648398
Осваиваюсь на форуме
***

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

Сообщений: 180


« Ответ #4 : 23.01.2016, 00:42:14 »

Всем спасибо, в шаблоне не использовались другие параметры, и вариант:

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

подошел
Записан
NeuroZ
Осваиваюсь на форуме
***

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

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


Разработка сайтов и J! расширений под ключ


« Ответ #5 : 25.01.2016, 18:11:33 »

JFactory::getApplication()->setTemplate( 'имя_нужного_шаблона' );
Круто! Работает.
Только странно, что в NetBeans (не знаю как в других редакторах) не появляется setTemplate в выпадающем списке методов для getApplication
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

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



« Ответ #6 : 25.01.2016, 18:45:02 »

Круто! Работает.
Только странно, что в NetBeans (не знаю как в других редакторах) не появляется setTemplate в выпадающем списке методов для getApplication
в других редакторах тоже не выдает этот метод )
Записан
NeuroZ
Осваиваюсь на форуме
***

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

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


Разработка сайтов и J! расширений под ключ


« Ответ #7 : 26.01.2016, 16:53:11 »

Столкнулся еще с такой проблемой. Не входит в админку.
Суть в том, что мне потребовалось цеплять разные шаблоны к разным доменным именам одного сайта. С целью, чтобы админка была общая, а отображения фронт-енд разное.
Но вот по первому сайту (с дефолтным шаблоном) админка открывается (сайт1.ру/administrator), а админка второго домена выдает 500 ошибку (сайт2.ру/administrator)
Файловая система одна. Как это можно исправить?
Записан
NeuroZ
Осваиваюсь на форуме
***

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

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


Разработка сайтов и J! расширений под ключ


« Ответ #8 : 26.01.2016, 17:04:28 »

Сам разобрался... не учел, что плагины отрабатывают как на фронт-енде, так и на бэк-енде. Добавил !$app->isAdmin() в условие, и всё заработало)
Цитировать
if ($sitename != 'сайт1') {
            if (!$app->isAdmin())
                $app->setTemplate('шаблон2');
        }
Записан
Страниц: [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