Smarty включает tpl с динамическим контентом?

У меня небольшая проблема со Smarty, но я не знаю, как это исправить.

Это мой index.tpl

<body>
    {include file='header.tpl'}
    {include file='leftmenu.tpl'}
    <div id=content>
    {include file="news.tpl" }
    {include file="rightmenu.tpl"}
</body>

Моя проблема в этой строке

<div id=content>
    {include file="news.tpl" }

news.php — это файл, который должен отображать news.tpl, потому что это моя система новостей.

В news.php я запрашиваю базу данных mysql и передаю результат news.tpl.

Но когда я пишу приведенную выше строку, news.tpl не знает, откуда берется результат.

Надеюсь, кто-то может помочь.


person demonking    schedule 16.01.2013    source источник
comment
Вы должны переместить код news.php в index.php. Или же включить news.php в index.php и не определять там путь template tenderer..   -  person Sahal    schedule 16.01.2013


Ответы (2)


Вы делаете что-то вроде этого, Smarty_Data вам поможет

$data = new Smarty_Data;
$data->assign('foo','bar');
$smarty->display('news.tpl',$data);

Отправил ваш массив news в функцию assign.

person Sahal    schedule 16.01.2013

Это будет хорошей альтернативой. Вы можете просто добавить тег PHP для включения файла PHP

{php} включает "news.php"; {/php}

person Kannan Rajendran    schedule 18.01.2013
comment
Нет, правда, потому что мне нужно включить php в tpl. - person demonking; 18.01.2013