2014-01-03 2 views
0

Я использую автоматическую загрузку файлов .tpl по параметру get.Smarty - ловить ошибку «Не удалось загрузить шаблон»

Параметр может быть неправильным и при следующем перемещении останавливается по ошибке «Smarty: невозможно загрузить шаблон».

Могу ли я поймать эту ошибку и перенаправить страницу на какой-либо шаблон по умолчанию?

спасибо!

$seo = $params[0]; 
$smarty->display($seo . '.tpl'); 
+0

Покажите мне код ... может быть, вы пытаетесь загрузить TPL на другую папку – Hackerman

+0

Нет, загрузка просто прекрасна, она работает. Но иногда я пытаюсь загрузить шаблон, которого нет в нем, и его нормально - но мне нужно поймать это исключение и выполнить действие, например загрузить другой шаблон по умолчанию (например, 404.tpl). Я могу проверить и поймать его с помощью функции php file_exist, но мне интересно, если у Smarty нет собственной возможности поймать эту ситуацию. – czLukasss

+1

Может быть, если вы попробуете с помощью fetch вместо отображения? – Hackerman

ответ

1

У Smarty есть функция проверки наличия шаблона.

От documentation:

if(!$smarty->template_exists($mid_template)){ 
    $mid_template = 'page_not_found.tpl'; 
} 

Вы можете, например, использовать его как это:

if($smarty->template_exists($template)) { 
    header("Location: error.html"); 
    exit(); 
} 
$smarty->display($template); 
+2

Я только заполняю, что в Smarty 3 это функция называется templateExists(). template_exists() id для версии 2. Вы должны написать это вам ответ. Благодаря! – czLukasss

Смежные вопросы