что такое теги Вообще ничего, конечно, криминального в вёрстке под смарти нет, но идея написания такого поста пришла после того, как посмотрев статистику поисковых запросов, которые привели на HTMLer.org.ua, я нашел относительно много запросов вроде: «как сверстать под Smarty»
Для начала давай разберёмся:

  1. тебе нужно сверстать что-то под готовую систему, которая работает на Smarty
  2. ты всё делаешь с нуля, и хочешь подключить Smarty

В принципе, вопрос вёрстки и в первом и во втором случае раскрывается одинаково, за икслючением той только разницы, что во втором варианте тебе придется еще и устанавливать Smarty.Итак…

Установка Smarty

Вообще говоря, нет ничего проще, чем установить Smarty.
Нужно скачать дистрибутив (желательно последний) с официального сайта Smarty (это бесплатно), загрузить его на свой сайт, и в файле, который отвечает за отображение содержимого (чаще всего index.php) «проинклюдить» нужный файл с главным классом Smarty (установка подробно описана на сайте Smarty, даже на русском языке), и сайт станет работать на Smarty со стандартными настройками (которые при более глубоком проникновении в технику Smarty можно поменять и улучшить).

Куда тут писать?

Smarty – штука тонкая, настроить в ней можно все, что угодно. Даже место, где расположены шаблоны. Да, если ты не в курсе, Smarty – компилятор шаблонов, который берет шаблоны html страниц, и заполняет их необходимыми переменными из PHP.
Шаблоны, конечно могут лежать в любой из папок, но чаще всего – это папка templates (ну это со стандартными настройками), и если там нет шаблонов, или такой папки вовсе нет, лучше проконсультироваться с разработчиком системы, под которую нужно что-то сверстать.
В одной из папок, в той самой, которую определил разработчик, можно найти шаблоны. Они представляют собой нечто очень сильно похожее на HTML страницы. Некоторые шаблоны, могут быть полноценными страницами (с тэгами body, head, title, html) и выводяться полностью, а другие могут быть лиш шаблоном для вывода определенного div или таблицы, и будут выводиться в определенном месте другого более кропного шаблона.

Основной синтаксис Smarty

Smarty понимает не только переменные, но и классы, массивы, функции и даже операторы. Если тебе эти слова ничего не говорят, не переживай, это программистские термины.
Все переменные/действия/все_что_угодно в Smarty записываються в фигурных скобках:

{something smartious}

Любая запись в шаблоне, в фигурных скобках будет обработано движком Smarty, и при необходимости фигурные скобки будут заменены обработанным содержимым, либо сработает условие либо цикл, но что-то 100% произойдет.
Переменные в Smarty записываються с предшествующим знакомо доллара (при этом имя переменной задаётся в программной части, программистом, и для нас это не важно (возможно в следующих статьях, затрону теме бек-енда Smarty)

{$some_smarty_variable}

Классы в Smarty представляются так же как и в чистом PHP:

{$some_smarty_class->some_class_element}

Класс — это как большая переменная, которая может хранить в себе много других переменных и даже функций. Их структуру должен знать разработчик.
Массивы в Smarty не очень сильно отличаются от классов, а синтаксически выглядят вот так:

{$some_smarty_array.some_smarty_array_element}

Smarty поддерживает циклы 2-х типов, итерационные и перебирающие. Чаще всего нужно именно перебирать какой-то массив (например, вывести список всех комментариев на странице). Для таких случаев есть оператор foreach.

	{foreach from=$some_array item="my_item" name="foreach_name" key="my_key"}
{$my_key}){$my_item.title} — {$my_item.text}

{/foreach}

Эта запись выведет список дивов, с индексом записи, именем комментатора и текстом комментария. foreach принимает несколько параметров:
from – переменная-массив, который будет обрабатываться перебиром
item – название переменной, в которой будет храниться текущий елемент перебора
name — название цикла-перебора, в дальнейшем в любом месте Smarty можно обратиться к этому циклу, узнать его текущий индекс, обратиться к его элементам и т.п. при помощи конструкции:

{$smarty.foreach.foreach_name...}

Есть еще циклы Section которые принимают численные значение начало, шаг, и конец цикла, и просто последовательно прибываляют к началу шаг, до тех пор, поку не наступит конец цикла.
Очень интересно, что в Smarty есть директива foreachelse, которая срабатывает в том случае, если массив для обхода пуст:

	{foreach from=$list item='my_item'}
{$my_item}

{foreachelse} нет записей {/foreach}

Условия в Smarty. Часто бывает необходимо делать логические ветвления, например, для вывода формы входа или и имени пользователя, в зависимости от того, вошел он уже в систему или нет. Для этогу в Smarty есть отличный инструмент:

	{if $action=='hello'}
привет

{elseif count($actions)<1}

нет ни одного действия

{else} действие не определено {/if}

В целом все просто и логично. Можно использовать любую косбинацию страктор из примера выше. А еще очень приятно то, что в Smarty встроены все функции PHP, которые ты можешь легко использовать при логическом ветвелнии, такие как isset, is_array и т.п.

Модификаторы переменных

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

	{$my_text|my_modifier:params}

В Smarty есть встроенные модификаторы, многие из которых повторяют функции PHP. Но есть возможность добавлять и собственные модификаторы, которые программирует программист и дает возможность использовать верстальщикам.
Как видно из примера, модификатор Smarty вызывается прямым слешем и названием модификатора, а потом через двоеточие записыаются параметры модификатора.
Именно на технологии модификатор пееменных (между тем, встроенной в движок Smarty) и работает форматирование даты из предшествующей статьи.