====== Что такое Smarty? ====== Smarty - шаблонный движок для php. Более определенно, он предоставляет управляемый способ разделения прикладной логики и содержания от представления. Это очень удобно в ситуациях, когда программист и проектировщик шаблона играют различные роли, или в часто - это различные люди. Например, скажем, Вы создаете страницу, которая показывает газетную статью. Название статьи, автор и сама статья - елементы, которые не содержат никакой информации о том, как они будут представлены. Они передаются в Smarty шаблон, а верстальщик редактирует шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы отформатировать представление этих элементов (таблицы HTML, фоновые цвета, размеры шрифта, стиля, и т.д.). Однажды программист захочет изменить способ хранения статьи (сделать изменения в логике приложения.) Это изменение не затрагивает проектировщика шаблонов. Содержание будет все еще передаваться в шаблон таким же самым способом. Аналогично, если проектировщик шаблона хочет полностью перепроектировать шаблоны, это не потребует никаких изменений к прикладной логике. Поэтому, программист может делать изменения в прикладной логике без потребности изменения шаблонов, а проектировщик шаблона может делать изменения в шаблонах без изменения прикладной логики. Теперь коротко о том, чего не может Smarty. Он не пытается полностью разделить логику от шаблонов. Нет никакой проблемы с логикой в ваших шаблонах при условии, что это строго логика представления. В рамках [[http://a-cms.ru|Astra.CMS]] платформы, вся прикладная логика уже сосредоточена в готовых модулях и блоках. Для интеграции дизайна достаточно работать на уровне логики представления в шаблонах. Один из уникальных аспектов в Smarty - компилирование шаблонов. Это означает, что Smarty читает файлы шаблонов и создает php сценарии из них. Они создаются один раз и потом только выполняются. Поэтому нет необходимости обрабатывать файл шаблона для каждого запроса. ===== Некоторые возможности Smarty: ===== * Он очень быстр. * Он эффективен, так как PHP обработчик делает грязную работу * Никакой лишней обработки шаблонов, они компилируются только один раз. * Перекомпилируются только те шаблоны, которые именились. * Возможно создавать пользовательские функции и модификаторы, так что язык шаблонов чрезвычайно расширяем. * If/elseif/else/endif конструкции передаются PHP обработчику, так что синтаксис {if ...} выражения может быть настолько простым или комплексным, как вам нравится. * Допустимо неограниченное вложение секций, условий и т.д. * Произвольные источники шаблона ===== Язык шаблонов Smarty ===== - [[smarty:smarty1|Базовый синтаксис]] - [[smarty:smarty2|Переменные]] - [[smarty:smarty3|Модификаторы переменных]] - [[smarty:smarty4|Встроенные функции]] - [[smarty:smarty5|Пользовательские функции]] - [[smarty:smarty6|Astra.CMS функции]]