2014-02-10 5 views
3

У меня есть следующий код, который я хотел бы включить в шаблон, если он существует, в противном случае это будет отказ от вывода содержимого.Smarty + Prestashop: Включить шаблон, если он существует

{if $smarty->template_exists("$tpl_dir./cms.tpl")} 
    {include file="$tpl_dir/$cms->link_rewrite.tpl"} 
{ else } 
    {$cms->content} 
{ /if } 

Насколько я понимаю, мой синтаксис верен, но я могу ошибаться, поскольку я новичок в этом. Любая идея, что я делаю неправильно (я думаю, может быть, конкатенация)?

ответ

0

Похоже, проблема конкатенации. Используйте «кавычку», чтобы оценить переменную Smarty:

$smarty->template_exists("`$tpl_dir`/cms.tpl") 

Для получения дополнительной информации см Embedding Vars in Double Quotes

+0

Используйте тот же подход на '{включают файл = ....} ' – klimpond

0

Попробуйте это, если ваш файл находится в той же папке:

{assign var="file" value="`$smarty.current_dir`/file_name.tpl"} 
{if $file|file_exists} 
{include file=$file} 
{/if} 
Смежные вопросы