Шаблонизация сайта с помощью Smarty

У большинства сайтов законченный вид (дизайн). Хотя динамический контент в середине страницы может меняться заголовок, навигационная строка и нижняя часть сайта. Чтобы добиться такого эффекта, существует несколько простых способов: от функции вывода заголовков до подключения файлов. В зависимости от размера вашего сайта, то или иное решение будет работать, тем сложнее будет вносить изменения.

Наиболее признанным решением для шаблонизации является Smarty (http://smarty.php.net). Smarty позволяет создавать шаблоны с переменными. Другими словами, Вы можете создавать HTML-файл и указать размещение той или иной РНР-переменной. В дополнение к этому Вы можете подключать в Ваш шаблон другие Smarty-шаблоны, что позволит вам более эффективно организовать свой сайт и облегчит редактирование шаблона. Smarty также позволяет кэшировать данные, что ускорит доступ к вашему сайту, данная особенность Smarty выходит за рамки этой статьи.

Установка Smarty

1. Создайте каталог на вашем сервере (в пределах корневой директории Web-сервера) и назовите его Smarty - здесь будут храниться основные файлы Smarty.

2. Загрузите Smarty со следующего сайта http://smarty.php.net и распакуйте архив в любой каталог локального компьютера.

3. Перенесите файлы Smarty с локального компа в каталог smarty на вашем сервере.

4. На вашем сервере создайте еще один каталог - templates, здесь будут храниться шаблоны Smarty. В этом каталоге нужно создать два подкаталога: html для "сырых" шаблонов и compile для уже "откомпилированных" шаблонов.

5. Подкаталог compile нужно сделать доступным для записи. Если вы не знаете, как это сделать, обратитесь к разделу "Права доступа к файлам".

6. В каталоге шаблонов (smarty) создайте (или загрузите) файл smarty_initialize.php со следующим содержимым:

compile_dir="/path/to/web/root/templates/compile";
$smarty->compile_dir="/path/to/web/root/templates/html";
?>

Обратите внимание на четыре следующих нюанса файла smarty_initializa.php:

* Константа SMARTY_DIR содержит каталог, содержащий библиотеки Smarty.
* Для загрузки библиотеки smarty_initializa.php нужен файл Smarty.class.php.
* Поскольку Smarty объектно-ориентирован, вы должны создать новый объект Smarty. Это делает строка $smarty=new Smarty.
* Smarty должен знать, где находятся каталоги шаблонов и откомпилированных шаблонов (template_dir и compile_dir) соответственно.

На этом установка Smarty можно считать завершенной.

Краткое руководство по Smarty

Как ясно из файла smarty_initialize.php представленного выше, шаблоны Smarty должны находиться в каталоге templates/html. Файлы шаблонов могут содержать HTML, JavaScript и СSS-код, а так же все, что можно отправить в Веб-браузер. Предположим, что у нас есть какой-то базовый шаблон basic.tpl. Чтобы Smarty отобразил этот шаблон, нужно использовать метод Smarty, как показано ниже:

display("basic.tpl");
?>

Чтобы осознать всю мощь и гибкость Smarty, вам нужно поместить в шаблон данные, инициализируемые РНР-кодом. Чтобы добавить в шаблон вывод РНР-переменной, нужно заключить ее имя (со знаком $) в фигурные скобки. Выглядеть это должно примерно на шаблоне basic.tpl примерно так:



{$assigned_title}


My name is {$assigned_name}.

Как видно из листинга, имеются две переменные - $assigned_title и $assigned_name. Для установки значений этих переменных нужно использовать метод assign():

assign("assigned_title", $page_title);
$smarty->assign("assigned_name", $page_name);

$smarty->display("basic.tpl");
?>

Вы можете присвоить переменной любую строку, вне зависимости от того, что она содержит - HTML-код, данные из базы данных MySQL, пользовательский ввод или что-то еще. На этом всё!

Метки записи: