PHP 5 » Blog Archive » По умолчанию Smarty представляет около 12 функций

По умолчанию Smarty представляет около 12 функций

Теперь, когда мы раскрыли и переменные, и их модификаторы в Smarty, давайте взглянем на некоторые другие возможности. Для начала посмотрим на функции Smarty и их применение в практических сценариях, основанных на шаблонах.
По умолчанию Smarty представляет около 12 функций, которые могут быть использованы в ваших шаблонах. Эти функции предоставляют шаблонам возможность использовать логику и другие управляющие структуры, такие как условия (операторы if), и другие полезные средства. В Smarty функции подобны модификаторам переменных в том смысле, что и те и другие имеют предопределенные параметры. Однако в отличие от модификаторов функции часто манипулируют блоками HTML-кода (такими как использование циклов для генерации строк таблицы).
Функции определяются в Smarty посредством заключения их в те же разделители, что и переменные. Однако для указания параметров вместо двоеточий применяются пробелы. Более того, если функция включает в себя блок кода, конец тако без параметров. Для начала давайте взглянем на простейшие функции Smarty. Эти функции предназначены для того, чтобы облегчить жизнь Web-дизайнеру за счет предоставления различных возможностей, помогающих в разработке шаблонов HTML. Первой функцией из числа рассмотренных будет (literal ],
Функция (literal) используется в Smarty для отметки сегмента вашего HTML-документа, который должен быть полностью проигнорирован, но отображен. Это важное средство при работе с языками клиентской стороны, такими как JavaScript, которые могут привести в замешательство Smarty при разборе (интерпретации). Эта функция не принимает параметров. Она просто “оборачивает” все, что Smarty должен игнорировать, так, как показано в листинге 7.12.
Листинг 7.12. Использование функции Smarty (literal)
(literal)
(/literal)
На заметку -
j
Подобным же образом, чтобы правильно отображать разделительные символы, не разрушая шаблона, Smarty предоставляет две функции (ldelim) и | rdelim). Эти две функции отобразят, соответственно, левый и правый разделители.
Всякий, кто имеет опыт работы с HTML, знает, что пробелы между дескрипторами часто заставляют разные браузеры интерпретировать один и тот же HTML-код слегка по-разному. В большинстве случаев эта разница настолько незначительна, что ее можно игнорировать. Однако иногда она становится существенной. К сожалению, удаление всех пробелов из HTML-документов делает их трудно читаемыми. Чтобы справиться с этой проблемой, Smarty предлагает функцию (strip), использование которой демонстрируется в листинге 7.15. Во время выполнения эта функция автоматически удаляет все ненужные пробелы из HTML-кода, чтобы i-арантировать, что он будет корректно отображаться во всех браузерах.
Листинг 7.13. Использование функции Smarty (strip)
(strip)

flo6po пожаловать
(/strip)
Вывод листинга 7.13 браузер будет интерпретировать следующим образом:
flo6po no:tCcLnoBaTb<7TD>
Последняя из простых функций Smarty касается встраивания РНР в ваши шаблоны. Хотя это и не рекомендуется, Smarty предоставляет средства встраивания РНР-кода непосредственно в шаблоны, если в этом возникает необходимость. Это делается либо функцией (php), которая позволяет вставить PHP-код непосредственно в шаблон и используется тем же способом, что и {literal)/(strip), либо (includephp), которая позволяет включить в шаблон PHP-файл. Функция (php) служит заменой стандартным PHP-дескрипторам и не принимает параметров. Функция (include_php), с другой стороны, имеет следующий синтаксис:
{inelude_php file= [oncee] [assign=])
где — это файл PHP, который должен быть включен в шабпон, — булевское значение, определяющее, что этот файл должен быть включен только однажды (точно так же, как при использовании PHP-оператора include_once), а — имя переменной, которой нужно присвоить вывод PHP-сценария вместо его отображения.
Теперь, когда вы знакомы с простейшими функциями, которые предоставляет Smarty, давайте перейдем к более сложным. Большинство функций, о которых будет говориться, предназначены для реализации логики представления в ваших шаблонах. Конечно, когда поднимается тема логики, то недалеко и до условных выражений, поэтому мы начнем с функции (if). Ее синтаксис выглядит так;
(if ) (elseif ) [(elseif )] [(else)] (/if)
При работе с функциями Smarty любая переменная может быть специфицирована внутри контекста, заданного ограничителями без указания каких-либо дополнительных ограничителей. Например, когда используется функция (if), параметр может обращаться к любой переменной шаблона, как показано в листинге 7.14.

Tags: , ,

Related posts


Leave a Reply