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 (модификаторы, массивы, циклы и пр. подсказки)

Модификаторы 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

You may use the Smarty logo according to the trademark notice.

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Имя атрибута Тип Обязателен По умолчанию Описание
from array Да n/a Массив, по которому надо пройтись
item string Да n/a Имя переменной, которая будет значением текущего елемента
key string Нет n/a Имя переменной, которая будет ключом текущего елемента
name string Нет n/a Название цикла foreach для доступа к его свойствам

Атрибуты from и item являются обязательными.

Параметр name цикла может состоять из букв, цифр и знака подчеркивания, как и переменные PHP.

Циклы могут быть вложенными при условии, что их имена будут уникальными.

Атрибут from , обычно являющийся массивом, определяет количество проходов цикла .

Блок выполняется в том случае, если в параметре from нет значений.

У циклов также есть собственные переменные, которые обрабатывают свойства. Доступ к ним можно получить таким образом: , где “ name ” — атрибут name функции .

Обратите внимание

Атрибут name необходим только в том случае, когда у вас есть необходимость обращаться к свойствам , в отличие от функции . Обращение к свойствам с неопределенным name не вызывает ошибки, но ведёт к непредсказуемым результатам.

Example 7.5. Атрибут item

Шаблон для отображения $myArray в виде ненумерованного списка

Результат выполнения данного примера:

Example 7.6. Пример работы атрибутов item и key

Шаблон для отображения $myArray в виде пар ключ/значение, как foreach в PHP.

Результат выполнения данного примера:

Example 7.7. с ассоциативным атрибутом item

Шаблон для отображения элементов $items , в котором $myId используется в URL’е

Результат выполнения данного примера:

Example 7.8. со вложенными item и key

В 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 – каталог для хранения кэшированных файлов шаблона.

Источник

Читайте также:  Чем отчистить с окна пленку
Оцените статью