Мне нужно отобразить некоторые внешние данные из файла php в файл .tpl. Для этого я хочу включить php-файл в файл .tpl. Я пробовал использовать следующий код для отображения содержимого файла php в tpl.
{php} include('custom_code.php'); {/php}
но на выходе страницы был include('custom_code.php');
{php}
устарел. Взгляните на расширение Smarty с плагинами .
поместите follwing в …/plugins/function.yourplugin.php
:
<?php function smarty_function_yourplugin(array $params, Smarty_Template_Instance) { include 'your_other_file.php'; }
и используйте в своем шаблоне:
{yourplugin}
Вы не должны добавлять PHP-код в шаблон. Это все испортит шаблоны.
Вы должны добавить PHP-код к контроллеру, а не к шаблону.
На домашней странице smarty есть руководство по лучшей практике. # 1 – не встраивать PHP!
http://www.smarty.net/best_practices
Попробуйте следующее: {include_php file="/path/to/somefile.php"}
Но обратите внимание:
{include_php} is deprecated from Smarty, use registered plugins to properly insulate presentation from the application code. As of Smarty 3.1 the {include_php} tags are only available from SmartyBC.
Так что лучший способ – написать плагин smarty, как объяснил Rodneyrehm