Хех, а я помню время, когда Фанат вопрошал в чем же принципиальное отличие Smarty от Php шаблонов, и зачем вообще нужен Smarty. Недавно была тема от Фаната про Smarty, теперь вот он говорит, что Smarty лучше XSLT. Понравилось чтоли ?
Про топик:
Использую обычные php шаблоны со своим классом.
Для страницы существует один главный шаблон. В нем можно использовать 3 тэга:
{BLOCK: "название_блока"}
{TEMPLATE: "файл_шаблона"}
{DYNAMIC: "номер_динамического_блока"}
{BLOCK} - заменяется на хтмл код, который приходит от какого-то действия. Например, есть действие showAllNews.
{BLOCK: "showAllNews"} будет заменен на хтмл код, который придет от действия showAllNews.
{TEMPLATE} - Подключает другой шаблон.
{DYNAMIC} - требуется пояснить, лучше всего на примере. Например, у нас есть 1 главный шаблон, который мы хотим использовать для нескольких страниц. Допустим, есть страницы "Новости" и "Опросы", которые выводят все новости или опросы.
PHP:
news.php:
<div id="top">Шапка</div>
<div id="left">Левое меню</div>
<div id="center">{BLOCK: "showAllNews"}</div>
<div id="right">Правое меню</div>
PHP:
polls.php:
<div id="top">Шапка</div>
<div id="left">Левое меню</div>
<div id="center">{BLOCK: "showAllpolls"}</div>
<div id="right">Правое меню</div>
Как видно, шаблоны полность идентичные, только содержание центрального блока разное. Чтобы не создавать много шаблонов (да и вдруг решишь что-нибудь поменять, придется изменять все шаблоны) можно воспользоваться блоком DYNAMIC. Шаблон будет выглядеть так:
PHP:
main.php:
<div id="top">Шапка</div>
<div id="left">Левое меню</div>
<div id="center">{DYNAMIC: "1"}</div>
<div id="right">Правое меню</div>
Теперь, в качестве главного шаблона для страниц Новости и Опросы мы указываем шаблон main.php, и в опциях "Динамические блоки" на странице "Новости" создаем новый блок:
1 - showAllNews
На странице опросов тоже самое:
1 - showAllPolls.