Smarty->template_dir, возможно ли указать несколько разных путей?

  • Автор темы Pups The RAPtor
  • Дата начала

Pups The RAPtor

Guest
Smarty->template_dir, возможно ли указать несколько разных путей?

Добрый день!

Собственно хочется странного, использовать один движок для двух сайтов очень похожего дизайна.

Грубо - разница только в шаблоне хидера и футера.
Вот и хочется использовать что то вроде

$Smarty->template_dir = '/home/templates_1/:/home/templates_2/';

Т.е. если есть шаблон в /home/templates_1/, то показать его, если нет, то искать в /home/templates_2/.

Это возможно? В поиске был, документацию читал :).

$security, $secure_dir, $security_settings и $trusted_dir меня спасут или нет?

Спасибо :).
 

tony2001

TeaM PHPClub
после создания инстанса Смарти меняй его атрибут:
PHP:
$smarty = new Smarty;
$smarty->template_dir = '/tpl/dir/of/current/project';
 

Pups The RAPtor

Guest
Автор оригинала: tony2001
после создания инстанса Смарти меняй его атрибут:
PHP:
$smarty = new Smarty;
$smarty->template_dir = '/tpl/dir/of/current/project';
Спасибо.

Сейчас именно так и делаю, но похоже я невнятно объяснил :).

Суть задачи - уйти от поддержки ДВУХ наборов шаблонов, из которых большинство шаблонов одинаковые.

Ну если грубо есть index.tpl, в нем используются footer.tpl и header.tpl. Плюс в индексе есть дизайн который идентичен для обеих сайтов.

Так вот хочется использовать index.tpl и в сайте_1 и в сайте_2.
А соответственно подключаемые footer.tpl и header.tpl должны быть разные, т.е. состав директории шаблонов сайта_1 -

index.tpl
footer.tpl
header.tpl

А для сайта_2 только два шаблона -

footer.tpl
header.tpl

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

Думал что в смарти можно сделать для поиска шаблонов аналог ini_set ('include_path', '.:/path_1/:/path_2');

Такая вот мысль была.

Вобщем пока все это писал, придумал еще одно решение, неуклюжее и громоздкое, но похоже верное.
Заменить во всех {include} уникальных шаблонов путь к файлу на абсолютный. Естественно с указанием собственно пути через переменную, определяемую в зависимости от сайта.

Другого пути нет :)?
 

tony2001

TeaM PHPClub
нет, так сделать нельзя.
пропатчь код сам, если уж очень надо.
 

Pups The RAPtor

Guest
Ок, спасибо, вопрос исчерпан :).

Насчет пропачивания - попробую в свободное время. Как обычно заказчик хочет проект "еще вчера" :).

Еще есть один вариант - с использованием хранения шаблонов в БД или в прочих ресурсах. Надо покопать в этом направлениии. Хотя и в этом случае мне не удастся избежать правки кучки шаблонов :).

Еще раз спасибо.
 
Сверху