все форумы все темы добавить тему
Долгожданный Smarty 3.1
Мда... зато с путями ребята наворотили такого, что в пору за голову хвататься
Прежде всего, запретили при использовании методов fetch и display указывать пути начинающиеся с точки.
То есть вот так нельзя:
 
PHP
$smarty->fetch('../some.tpl');

 
при том, что вот так можно:
 
PHP
$smarty->fetch('sub/../../some.tpl');

 
Логику этого они пытались донести до меня на форуме, но либо я слишком глуп, либо сильно мешал языковой барьер, либо и то и другое сразу. В любом случае их увещевания про "неочевидность" и "небезопасность" на меня действия не возымели.
 
Это еще полбеды - перейти на абсолютные пути в коде не проблема... но что они удумали с с путями в шаблонах!
Как вы думаете, что сделает нижеприведенный код?
 
Smarty
{include file="../foo.tpl"}
{include file="bar.tpl"}
 

 
Ну очевидно вроде: первая строчка подключит файл foo.tpl, лежащий в родительском каталоге текущего каталога шаблонов ($template_dir), а вторая строчка подключит шаблон bar.tpl лежащий в $template_dir... Во всяком случае так было в прежних версиях.
 
Теперь же во главу угла поставлен каталог текущего шаблона. Думаете, пути будут отсчитываться от текущего шаблона? Ничего подобного!
 
Первая строчка будет отсчитываться от текущего шаблона, а вторая - от $template_dir. Все то начинается с точек отсчитывается от текущего, все что не с точек (ну за исключением абсолютных путей) - отсчитывается от $template_dir. Решение окончательное и обжалованию не подлежит
 
Будем с этим жить...