Содержание
Ссылки

К оглавлению
Справочник: Структура Базы Данных
Справочник: Структура Модуля
Справочник: Структура Шаблона
Справочник: Структура Компонента
Справочник: Библиотека jQuerry
Справочник: API InstansCMS - руководство для разработчиков

Что такое Smarty?

Smarty - это компилирующий обработчик шаблонов для PHP. Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и верстальщик шаблона - различные люди.

Например, скажем, вы создаете страницу, которая показывает газетную статью.

Одно из предназначений Smarty - это отделение логики приложения от представления.

Одна из уникальных возможностей Smarty - компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе. Код создаётся один раз и потом только выполняется. Поэтому нет необходимости в медленной обработке файл шаблона для каждого запроса. Каждый шаблон может пользоваться всеми преимуществами таких компиляторов PHP и кэшируюших решений, как eAccelerator, ionCube, mmCache, Zend Accelerator и прочих.

Некоторые особенности Smarty:

Пример использования Smarty

Допустим, нам необходимо вывести из Базы Данных десять новостей. Создаем два файла:

<?php     
 
// подключаем класс Smarty
require_once('smarty/Smarty.class.php');     
 
// Создаем объект класса
$smarty = new Smarty();     
 
// Устанавливаем папки шаблонов
// 'templates' – каталог, в котором хранятся шаблоны
// 'templates_c' - туда Smarty сохраняет скомпилированные шаблоны     
 
$smarty->template_dir = 'templates';
$smarty->compile_dir  = 'templates_c';      
 
// Получение данных их БД (в виде ассоциативного массива)
$news = $DB->query("SELECT * FROM news ORDER BY id LIMIT 0,10");     
 
// передаем массив в шаблонизатор
$smarty->assign('news', $news);     
 
/* Допустим что наша задача была в простом выводе данных в шаблон, что мы уже и сделали,
и это конечный этап – вызываем метод display() класса smarty, который выводит,
передаёт данные в шаблон, перекомпилирует (если были изменения) и выводит контент.
Методу передается имя файла шаблона, в котором как предполагается был обработан
нужным образом массив news */     
 
$smarty->display('news.tpl');
?>

Теперь рассмотрим непосредственно файл шаблона news.tpl. Фактически это обычный html, со вставками переменных и конструкций циклов. Все переменные заключены в фигурные скобки.

<html>     
 
{foreach from=$news item=item}
Заголовок: {$item.title}     
 
Текст новости:
{item.description}     
 
<a href="index.php?id={$item.id}" mce_href="index.php?id={$item.id}">Подробнее...</a>
{/foreach}     
 
</html>

Вот собственно и все. Это рабочий пример, который будет выводить 10 извлечённых нами новостей из базы данных. Может показаться, что в данном примере можно было бы обойтись обычным php с html-вставками. Но в большом проекте шаблонизатор заметно сокращает время, потраченое на изготовление шаблона.

Если вдруг появится необходимость использовать php код прямо в шаблоне, то помещаем в шаблоне блок {php}{/php} – между тегами php код, без параметров .

Ещё существует проблема, когда в коде шаблона вставлены блоки java script, некоторые его операторы, в частности if, компилятор smarty будет рассматривать как операторы smarty. Поэтому JS код лучше выносить в отдельные файлы, либо вокруг кода ставить оператор {literal}{/literal}, внутри этого оператора компилятор не будет искать другие операторы smarty.

Подробный учебник online по Smarty можно прочесть здесь


Автор: Виталий Колесник, источник - здесь

Записала feba7


Ссылки

К оглавлению
Справочник: Структура Базы Данных
Справочник: Структура Модуля
Справочник: Структура Шаблона
Справочник: Структура Компонента
Справочник: Библиотека jQuerry