- Шаблонизатор Smarty
- Вывод переменных
- Задание значений переменных
- Значение по умолчанию
- Применение строковых функций
- Глобальные переменные PHP
- Управляющие конструкции
- If, else
- Switch Case
- Циклы
- Foreach
- Встроенные функции Smarty
- Include
- literal
- Smarty (модификаторы, массивы, циклы и пр. подсказки)
- Модификаторы Smarty:
- Get Smarty
- Resources
- Donate
- Sites Using Smarty
- Advertisement
- Обратите внимание
- .index
- Введение в шаблонизатор Smarty
- 1. Формирование задачи
- 2. Установка Smarty
Шаблонизатор Smarty
Smarty это компилирующий обработчик шаблонов для PHP позволяющий отделить логику и HTML-верстку веб-приложения.
Скачать библиотеку и посмотреть документацию можно на https://www.smarty.net/download
Содержание архива smarty-3.1.32.zip переносим в директорию /smarty/ в корень сайта, в index.php подключаем библиотеку и задаем переменные шаблона.
Далее нужно создать директорию /templates/ , а в ней файл шаблона index.tpl .
В шаблонах Smarty применяются следующие конструкции:
Вывод переменных
В PHP эта запись аналогична:
Также можно вывести значение массива по ключу.
В PHP это выглядело бы так:
Задание значений переменных
Smarty позволяет задавать значения переменных прямо в шаблоне с помощью конструкции assign .
Поддерживаются арифметические выражения и катенация:
Катенация переменной с текстом:
Значение по умолчанию
Если переменная не существует или пуста, можно задать текст который будет выводится вместо нее.
Применение строковых функций
Переменные можно модифицировать встроенными функции, например, перевести символы в верхний регистр.
Допустимо комбинировать сразу несколько функций:
lower | Переводит строку в нижний регистр |
upper | Переводит строку в верхний регистр |
capitalize | Преобразовывает первые буквы каждого слова в заглавные |
strip | Заменяет все повторяющиеся пробелы |
nl2br | Заменяет перевод строки в тэг |
strip_tags | Удаляет html тэги |
escape | Используется для кодирования спецсимволов |
Глобальные переменные PHP
В шаблонах доступны все глобальные переменные PHP, получить значение можно через объект $smarty .
$_GET | |
$_POST | |
$_SESSION | |
$_COOCIES | |
$_REQUEST |
Управляющие конструкции
Как и в PHP, в Smarty доступны управляющие конструкции, операторы и необходимые функции.
If, else
Switch Case
Его нет, но вместо него можно использовать конструкцию if , else if , else .
Циклы
Foreach
Конструкция fereach своеобразная, в примере идет перебор массива $array_3 и вывод значения по ключу name .
Встроенные функции Smarty
Полный список на smarty.net
Include
Подключает файл шаблона в директории /templates/ .
literal
Вставки JS и CSS нужно обворачивать тегами
Источник
Smarty (модификаторы, массивы, циклы и пр. подсказки)
Модификаторы Smarty:
upper, lower, capitalize:
Описание: возвращает строку, в которой все буквенные символы переведены в верхний или нижний регистр или заглавные соответственно
truncate:
Описание: обрезает строку. Можно задать длину строки для обрезания, чем заканчивается обрезанная часть и обрезать ли слова.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after.
Two Sisters Reunite after
Two Sisters Reunite after—
Two Sisters Reunite after Eigh
Two Sisters Reunite after E.
Two Sisters Re..ckout Counter.
replace:
Описание: передает для замены строку или массив (значения через запятую). Если на что менять не задано, то просто удаляет совпадения
Данный пример удалит пробелы:
regex_replace:
Описание: поиск и замена по регулярному выражению
Данный пример очистит номер телефона от лишних символов:
mb_substr:
удалить первый символ переменной
удалить последний символ переменной
strip_tags:
Описание: Удаляет теги html разметки
Blind Woman Gets New Kidney from Dad she Hasn’t Seen in years.
Blind Woman Gets New Kidney from Dad she Hasn’t Seen in years .
Кодирование-декодирование URL:
Конкатенация (добавление к переменной):
Подсчитать кол-во символов (параграфов, предложений, слов):
Аналогично: count_paragraphs, count_sentences и count_words
Отрезать все, что после символа &:
Проверка вхождения в $text подстроки $sub:
Первые n-символов в переменной:
Текущая дата:
Завтра (+ 1 день):
Заменяет все переносы строк на тэг
в заданной переменной:
Добавляет пробел между разрядами крупных чисел:
Например 65000 приводится к виду 65 000.
Напр. отрезать символы дальше сотых:
Экранирование:
Еще больше полезностей из Smarty:
Информация о переменной:
Как закомментировать?
Как экранировать код в котором встречаются <>:
Как создать внутреннюю переменную smarty (напр $var) и присвоить ей значение:
Использование условий if:
Как посчитать количество элементов в массиве:
in_array:
Описание: Проверяет наличие значения переменной $module в массиве
Пример 2: Проверка вхождения переменной $pname в массив get-параметров v1
Как организовать цикл for:
Например нужен такой цикл: for($i=1;$i
Прервать цикл foreach:
- Более сложная задача — вывести записи из цикла отдельными блоками по 4 шт:
Вывод первых 3 свойств через срез массива:
Где: 0 — начало среза, 3 — кол-во элементов
Преобразовать строку в массив $widgets_ids по одинаковому разделителю «,»:
Записать значения id в массив $labels_ids:
Проверка различия между массивами:
Ф-я array_diff($array1, $array2) даст те элементы, которые есть в массиве array1, но нет в массиве array2
Рандомное число:
Получение GET-параметра:
Например из URL типа site.ru?utm_text=текст
Отображение параметра «page» из формы ($_POST[‘page’])
Отображение значения cookie «name» ($_COOKIE[‘name’])
Отображение серверной переменной «SERVER_NAME» ($_SERVER[‘SERVER_NAME’])
Адрес текущей страницы:
Адрес текущей страницы без GET-параметров:
Отображение переменной системного окружения «PATH»:
Получить ID сессии:
Отображение переменной «name» из смешанных get/post/cookies/server/env
Определение разрешения файла:
Источник
Get Smarty
Resources
Donate
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Sites Using Smarty
Advertisement
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
from | array | Да | n/a | Массив, по которому надо пройтись |
item | string | Да | n/a | Имя переменной, которая будет значением текущего елемента |
key | string | Нет | n/a | Имя переменной, которая будет ключом текущего елемента |
name | string | Нет | n/a | Название цикла foreach для доступа к его свойствам |
Атрибуты from и item являются обязательными.
Параметр name цикла
Циклы
Атрибут from , обычно являющийся массивом, определяет количество проходов цикла
Блок
У циклов
Обратите внимание
Атрибут name необходим только в том случае, когда у вас есть необходимость обращаться к свойствам
Example 7.5. Атрибут item
Шаблон для отображения $myArray в виде ненумерованного списка
Результат выполнения данного примера:
Example 7.6. Пример работы атрибутов item и key
Шаблон для отображения $myArray в виде пар ключ/значение, как foreach в PHP.
Результат выполнения данного примера:
Example 7.7.
Шаблон для отображения элементов $items , в котором $myId используется в URL’е
Результат выполнения данного примера:
Example 7.8.
В Smarty передан такой массив, ключ которого содержит ключ для каждого перебираемого значения.
Шаблон для отображения $contact .
Результат выполнения данного примера:
Example 7.9. Пример использования
Пример работы с базой данных (при помощи PEAR или ADODB) в скрипте поиска, результаты которого передаются в Smarty.
Шаблон отобразит сообщение “ Ничего не найдено ” при помощи
.index
index contains the current array index, starting with zero.
Источник
Введение в шаблонизатор Smarty
Дата публикации: 2012-02-13
От автора: Одной из важнейших задач любого хорошего веб-разработчика является разделение логики сайта от его представления (дизайна). Это разделение обеспечивает несколько преимуществ:
а) гибкость приложения – четкое разделение логики от дизайна позволяет программистам вносить изменения в логику и структуру сайта, не затрагивая его оформления, и в тоже время дает возможность дизайнерам изменять внешний вид сайта и при этом не затрагивать логическую часть веб – приложения;
б) код веб-приложения становится чистым и элегантным;
Думаю многие веб-разработчики, сталкивались с этой проблемой – решением данной задачи является применение шаблонов. В этом уроке мы будем изучать применение шаблонов с использованием шаблонизатора Smarty.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
1. Формирование задачи
Давайте для начала определимся, что же такое шаблон? Шаблон — это довольно широкое понятие, но если говорить простым языком – это файл (документ), обычно в html или tpl формате, который содержит в себе html – теги (оформление и структуру веб-приложения), а также специальные метки, вместо которых подставляются данные из логической части данных. Подстановкой данных и формированием окончательного вида веб-приложения занимается шаблонизатор.
Существует огромное множество готовых шаблонизаторов для PHP. Конечно, шаблонизатор можно написать и самому – придумать свои метки для шаблона и разработать алгоритм замены этих меток. Но этот вариант не очень удобен, если Ваше веб-приложение будут обслуживать другие программисты или дизайнеры, так как в этом случае их придется посвящать в нюансы Вашего шаблонизатора. Поэтому лучше всего использовать готовое проверенное решение с хорошим функционалом и качественной документацией.
Smarty – наиболее популярная и широко распространенная система шаблонов на PHP. Работа Smarty заключается в компилировании шаблонов. Это означает, что Smarty последовательно считывает разметку файла шаблона и создает на их основе готовый PHP сценарий, этот сценарий создается один раз, а далее просто выполняется. Smarty содержит в себе большое количество функций, которые позволяют создавать в шаблонах сложную логику (если она нужна для правильного отображения данных): подключение других шаблонов, циклический разбор массива и т.д. Конечно, Вы можете и не создавать сложную логику шаблона, а ограничиться лишь использованием чистого текста и переменных.
На этом вводная часть закончена и можно приступать к изучению.
2. Установка Smarty
Скачать Smarty можно с официального сайта //www.smarty.net/, перейдя на вкладку Download. На момент создания урока последняя стабильная версия это Smarty 3.1.7, ее и скачиваем. При распаковке архива мы видим папку Smarty 3.1.7, а в ней еще файлы и папки:
demo – демонстрационный пример использования шабонизатора;
libs – папка с дистрибутивом Smarty;
различные текстовые файлы(readme, описание условий копирования, описания отличий от более старых версий).
Для установки Smarty необходимо скопировать папку libs (из архива) в корневой каталог Вашего веб-приложения. Перечень файлов и папок каталога libs должен быть таким:
libs/
Smarty.class.php
SmartyBC.class.php
debug.tpl
sysplugins
plugins
Затем создать четыре директории, из которых Smarty будет читать свои конфигурационные файлы и файлы шаблонов. По умолчанию эти директории имеют название: templates/, templates_c/, configs/, cache/(эти каталоги Вы можете назвать так, как Вам захочется, но при этом нужно будет указать шаболнизатору на их названия – это мы рассмотрим далее). Таким образом каталог с Вашим веб-приложением должен быть следующего вида:
www.example.com/(или папка с Вашим веб-приложением)
libs/
Smarty.class.php
SmartyBC.class.php
debug.tpl
sysplugins
plugins
templates
templates_c
configs
cache
index.php
Давайте рассмотрим, для чего нужны созданные четыре каталога:
templates – здесь хранятся Ваши созданные шаблоны (шаблоны для Smarty создаются в формате tpl);
templates_c – в этот каталог шаблонизатор записывает скомпилированный шаблон, на основе шаблона в каталоге templates;
configs – каталог для хранения файлов конфигурации;
cache – каталог для хранения кэшированных файлов шаблона.
Источник