2013-11-09 5 views
0

У меня нет опыта работы в Smarty, я пытаюсь изменить файл .tpl из программного обеспечения, которое не сделано, я просто добавил теги {php} {/php} в файл .tpl без код внутри них вообще, и его выходы кажутся пустым. Сначала у меня был некоторый код, но он выводил пустую страницу, поэтому я начал удалять строки, и теперь нет никаких строк внутри тегов {php} {/php}, но это делает это. Что я здесь делаю неправильно?с помощью тэгов {php} в smarty выводит пустую страницу

ответ

1

Какая версия Smarty вы используете? Тег PHP был устаревшим, а с 3.1. может использоваться только с обратной совместимостью.

http://www.smarty.net/docs/en/language.function.php.tpl

Это лучше, если это возможно, чтобы сохранить ваш PHP в отдельном классе или контроллере (таким образом он доступен для других шаблонов, а), но если вам действительно нужно, чтобы включить его на странице, просто включает smartybc класс, как он говорит здесь: http://www.smarty.net/docs/en/bc.tpl

<?php 
// instead of 
require_once('path/to/smarty/libs/Smarty.class.php'); 
$smarty = new Smarty(); 

// use 
require_once('path/to/smarty/libs/SmartyBC.class.php'); 
$smarty = new SmartyBC(); 
?> 

Кроме того, если вы хотите, чтобы увидеть ошибки PHP (это действительно раздражает, что вы просто получите пустую страницу, когда что-то идет не так, делает его трудно отлаживать) вам может активировать режим отладки, перейдя в config/config.inc.php и найдя следующие строки и изменив «off» на 'on' для первого и установить значение true

/* Debug only */ 
@ini_set('display_errors', 'on'); 
define('_PS_DEBUG_SQL_', true); 

И это должно отображать ошибки PHP и SQL для вас.

+0

Спасибо! Как я уже говорил, мне нужно отредактировать программное обеспечение, которое не создано мной, которое использует Smarty. Для того, что я вижу в одном из кодовых файлов, похоже, это версия 3.1. И мне просто нужен файл header.tpl для выполнения php-кода, даже если хорошо читать всю документацию Smarty, мне нужно сделать это только сейчас, и я, вероятно, буду читать его позже, учитывая, сколько программ использует открытые источники Smarty – Pablo

+0

Да, обязательно включите отладку, надеюсь, это поможет вам разобраться. – spacebean

0

Нельзя использовать теги {php}, поскольку они описаны как устаревшие в Smarty docs. Если вы хотите, чтобы какой-то код запускался, попробуйте подготовить плагины для smarty, как описано here.

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