Smarty, как утверждает педивикия, это компилирующий обработчик шаблонов для PHP, один из инструментов, позволяющих отделить прикладную логику и данные от представления в духе концепции Model-view-controller.
Я приведу пример работы со smarty на примере скрипта, выводящего текст.
Согласно концепции MVC php-код будет в отдельном файле, результат будет выводиться в шаблон.
Я специально уменьшил или убрал вообще текст из массива для уменьшения размеров статьи; в примере все это будет.
index.php
<?php
require('../libs/Smarty.class.php');//подключаем Smarty
$smarty = new Smarty;//создаем новый объект
$smarty->force_compile = true;//принудительная перекомпиляция - только для отладки
$smarty->debugging = false;
$smarty->caching = false;//кеширование отключено
$smarty->cache_lifetime = 120;
//создаем массив с произвольным содержимым, допустим, это будут куски текста
$smarty->assign("Text",array(
"1).Ручное рубило...",
"2).Оно представляло ...",
"3).В 1832 году ...",
"4). ...",
"5). ...",
"6). ..."));
$smarty->display('index.tpl');//вывод в шаблон
?>
В каталоге смарти находим index.tpl
{config_load file="test.conf" section="setup"}
{include file="header.tpl" title=foo}
<div>
<ul >
{foreach key=key item=item from=$Text name=jb}
<li class="weather">{$item}</li>
{/foreach}
</ul>
</div>
{include file="footer.tpl"}
Будет выводиться весь массив в виде списка.
В смарти можно задействовать некоторые свои возможности по работе над массивом, например ограничить количество элементов. Пример на 3 элемента от начала.
<div >
<ul >
{foreach key=key item=item from=$Text name=jb}
{if $smarty.foreach.jb.iteration <= 3}
<li class="weather">{$item}</li>
{/if}
{/foreach}
</ul>
</div>
А можно еще выбрать диапазон вывода.
<div >
<ul >
{foreach key=key item=item from=$Text name=jb}
{if $key > 3}
<li class="weather">{$item}</li>
{/if}
{/foreach}
</ul>
</div>
Скачать пример можно во вложении.
Демо
Вложения:Файл | Описание | Размер файла: |
---|
smarty.zip | | 230 Кб |