Интернет-Университет Информационных Технологий: бесплатное дистанционное образование компьютерным дисциплинам
  Лекции
Язык программирования PHP
1.   Введение в PHP
2.   Основы синтаксиса
3.   Управляющие конструкции
4.   Обработка запросов с помощью PHP
5.   Функции в PHP
6.   Объекты и классы в PHP
7.   Работа с массивами данных
8.   Работа со строками
9.   Работа с файловой системой
10.   Базы данных и СУБД. Введение в S...
11.   Взаимодействие PHP и MySQL
12.   Авторизация доступа с помощью се...
13.   Регулярные выражения
14.   Взаимодействие PHP и XML
15.   Использование шаблонов в PHP
    Экзамен
    Сдать экзамен экстерном
    Литература
    Предметный указатель
    Примеры

Язык программирования PHP
15. Лекция: Использование шаблонов в PHP
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | вопросы | » | учебники | для печати и PDA
  Если Вы заметили ошибку - сообщите нам.  

Встроенные функции

Smarty поставляется с набором встроенных функций, интегрированных в язык шаблонов. Нельзя создавать свои функции с такими же именами или модифицировать встроенные функции. Опишем некоторые из таких функций.

Функция config_load

Синтаксис:

{config_load file="имя_файла" }

Эта функция используется для загрузки в шаблон переменных из конфигурационных файлов. Кроме имени загружаемого файла, у этой функции может быть еще несколько дополнительных параметров. Например, параметр section, в котором указывают имя секции для загрузки. Более подробную информацию об этих и других параметрах можно получить из документации Smarty.

Пример:

{config_load file="task.conf"}
Функция capture

Синтаксис:

{capture name="имя_блока" 
         assign="имя_переменной"} ... 
         {/capture}

Эта функция предназначена для того, чтобы собирать в переменную выходные данные шаблона вместо того, чтобы выводить их на экран. Все, что находится между {capture name="varname"} и {/capture}, будет записано в переменную с именем varname. Захваченный таким образом контент может быть использован в шаблоне посредством специальной переменной $smarty.capture.varname, где varname - значение, переданное в атрибут name функции capture. Если имя переменной не задано, будет использовано имя default.

Второй параметр assign задает имя переменной, которой будет присвоено захваченное выходное значение. Этот параметр, как и name, не обязательный.

Функция section

Синтаксис:

{section name="имя_секции"
loop="переменная_для_выч-ния_числа_итераций"
[,start="индекс_начальной_позиции"] 
[, step="шаг"] [,max="максимум_итераций"] 
[,show="показывать_ли_секцию"] }... 
{/section}
        

Секция Section - это цикл для обхода элементов массива. Обязательными являются параметры name, с помощью которого задается имя секции, и loop, который представляет собой переменную, определяющую число итераций цикла. Как правило, loop - это переменная типа массив, и число итераций секции равно числу элементов этого массива. Чтобы вывести переменную внутри цикла, нужно после имени переменной указать в квадратных скобках имя секции.

{section name=art loop=$title}
   Название: {$title[art]}<br>
{/section}
        
Пример 15.8. Цикл для обхода элементов массива (html, txt)
Функция foreach

Синтаксис:

{foreach from="имя_массива" 
         item="имя_текущего_элемента"}
   ... {/foreach}
        

Кроме того, можно использовать дополнительные атрибуты key - имя ключа для текущего элемента массива и name - имя цикла, с помощью которого можно будет получать доступ к его свойствам. Атрибуты from и item - обязательные.

Циклы foreach являются альтернативой циклам section. Действие функции foreach очень похоже на работу цикла foreach в языке PHP.

{foreach from=$articles item=art}
Title: {$art}<br>

{/foreach}
        
Пример 15.9. Цикл foreach (html, txt)

Циклы foreach имеют свои собственные свойства. Получить доступ к ним можно таким образом: {$smarty.foreach.foreachname.varname}, где foreachname - это имя цикла, заданное его параметром name, а varname - имя свойства.

Оператор if, elseif, else

Синтаксис:

{if выражение} блок_действий
   {elseif выражение1} блок_действий1
   {else} блок_действий2
{/if}
        

Действие оператора практически аналогично оператору if...elseif...else языка PHP. В выражениях могут использоваться следующие операторы сравнения: eq, ne, neq, gt, lt, lte, le, gte, ge, is even, is odd, is not even, is not odd, not, mod, div by, even by, odd by, ==, !=, >, <, <=, >=. Каждый из них обязательно должен быть отделен от окружающих его значений пробелами. В выражениях можно использовать круглые скобки и вызывать php-функции.

{if $name eq "Вася"}
   Добро пожаловать, Вася.
{elseif $name eq "Петя"}
   Добро пожаловать, Петя.
{else}
   Добро пожаловать. А вы кто?
{/if}
        
Пример 15.10. Операторы if, elseif, else (html, txt)
{* этот пример не будет работать, 
   поскольку не поставлены
   пробелы вокруг операторов сравнения *}
{if $name=="Вася" || $name=="Петя"}
...
{/if}
        
Пример 15.11. Неработающий пример (html, txt)
Дальше »
  Если Вы заметили ошибку - сообщите нам.  
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | вопросы | » | учебники | для печати и PDA
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь

Телефон: (495) 253-9312, 253-9313, факс: (495) 253-9310, email: info@intuit.ru
© 2003-2006, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование