все форумы все темы добавить тему
Динамическая подмена шаблона?
Добрый день!
 
Интересует смена шаблона модуля в зависимости от запроса.
 
Т.е. при запросе:
 
site.com/news - показывать модуль в шаблоне default
 
a при запросе:
 
site.com/blank/news - показывать модуль в шаблоне blank
 

Скажите пожалуйста, если подобное возможно сделать, то каким образом?
 
Спасибо!
Конечно, построение url может быть другим, я просто привёл пример.
 
Основная задача - менять шаблон одного и того же модуля, используя запрос.
Ну вообще говоря делается это довольно просто:
В структуре сайта выбираем ветку /news и в пункте "шаблон" выбираем для нее значение default, а для ветки /blank/news - пункт blank.
Если я правильно понял идею структуры, то значение blank можно установить и для родителя /blank/news, тогда оно будет распространятся и на всех его потомков.
mushtat
Основная задача - менять шаблон одного и того же модуля, используя запрос.

Именно запрос или структуру? Если непосредственно URL, то тут надо будет зайти немного с другой стороны.
В идеале было бы хорошо именно запросом, что бы однажды создав структуру сайта, можно было динамически менять вид без необходимости дальнейших правок структуры.
Ну тогда можно пойти двумя путями:
1. делаем простейший статичный модуль-переключалку вида:
PHP
 
if ('/blank'==substr($_GET['url'], 0, 6)) LabVars::$template='blank.tpl';
 

 
2. Используем для тех же целей хуки.
К сожалению, пока набор хуков невелик, так что отдельного хука для подобного события не подобрать, но можно привязаться к какому-нибудь модулю, который присутствует на всех страницах (например, модуль меню) и сделать что-то вроде:
PHP
 
Hook::add('menu_level_before', 'template_switcher');
function template_switcher($tag)
{
  if ('/blank'==substr($_GET['url'], 0, 6)) LabVars::$template='blank.tpl';
}
 
Окей, спасибо!
Будем пробовать )