Документация Smarty
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
{section},{sectionelse}
Секции используются для обхода массивов данных (так же, как и {foreach}). Каждый тэг {section} должен иметь пару {/section}. Обязательными параметрами являются name и loop. Имя цикла {section} может быть любым, состоящим из букв, цифр и знаков подчеркивания. Циклы {section} могут быть вложенными и имена вложенных {section} должны быть уникакльными между собой. Переменная loop (обычно - массив значений) определяет количество итераций цикла. При печати переменных внутри секции, имя секции должно быть указано рядом с именем переменной внутри квадратных скобок []. {sectionelse} выполняется в том случае, если параметр loop не содержит значений.
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
name | string | Да | n/a | Название секции |
loop | mixed | Да | n/a | Значение, определяющее количество итераций цикла. |
start | integer | Нет | 0 | Индекс позиции, с которой будет начинаться цикл. Если значение отрицательное, то начальная позиция вычисляется от конца массива. Например, если в переменной цикла 7 элементов и значение атрибута start равно -2, то начальный индекс будет 5. Неверные значения (значения, вне массива) автоматически обрезаются до ближайшего верного значения. |
step | integer | Нет | 1 | Значение шага, которое используется для прохода по массиву. Например, step=2 указывает обход массива по элементам 0,2,4... Если шаг отрицателен, то обход массива будет производится в обратном направлении. |
max | integer | Нет | 1 | Максимальное количество итераций цикла. |
show | boolean | Нет | true | Указывает, показывать или нет эту секцию |
Пример 7-24. Переменная loop команды {section}
Результат выполнения данного примера:
|
Пример 7-26. вложенные секции
Результат выполнения данного примера:
|
Пример 7-27. секции и ассоциативные массивы
Результат выполнения данного примера:
Базы данных (например, PEAR или ADODB)
|
Секции так же имеют собственные переменные, которые содержат свойства секций. Они обозначаются так: {$smarty.section.sectionname.varname}
Замечание: Начиная с версии Smarty 1.5.0, синтаксис переменных свойств сессий был изменен с {%sectionname.varname%} на {$smarty.section.sectionname.varname}. Старый синтаксис всё ещё поддерживается, но вы увидите лишь примеры нового синтаксиса.
index
index используется для отображения текущего индекса массива, начиная с нуля (или с атрибута start, если он был указан) и увеличиваясь на единицу (или на значение атрибута step, если он был указан).
Техническое Замечание: Если атрибуты step и start не указаны, то index аналогичен атрибуту секции iteration, кроме того, что начинается с 0, а не с 1.
Пример 7-29. свойства {section} index
Результат выполнения данного примера:
|
index_prev
index_prev используется для отображения предыдущего индекса цикла На первой итерации он установлен в -1.
index_next
index_next используется для отображения следующего индекса цикла На последней итерации он всё же на единицу больше текущего (или на другое значение, если указан атрибут step).
Пример 7-30. свойства {section} index_next и index_prev
Результатом выполнения этого примера будет таблица, содержащая следующее:
|
iteration
iteration используется для отображения текущего номера итерации цикла.
Замечание: Это значение не зависит от свойств start, step и max, в отличие от свойства index. Кроме того, итерации начинаются с единицы, а не с нуля, как индексы. rownum - это синоним к свойству iteration, они работают одинаково.
Пример 7-31. свойство {section} iteration
Результат выполнения данного примера:
Этот пример использует свойство iteration для вывода заголовка таблицы через каждые пять строчек (использует {if} с оператором mod - остаток от деления).
|
first
Параметр first установлен в true, если текущая итерация секции является первой.
last
Параметр last установлен в true, если текущая итерация секции является последней.
Пример 7-32. свойства {section} first и last Этот пример проходит циклом по массиву $customers, выводит заголовок на первой итерации и футер на последней (использует свойство {section} total)
|
rownum
rownum используется для отображения текущего номера итерации цикла, начиная с единицы. Это синоним свойства iteration, они работа идентично.
loop
loop используется для отображения последнего номера индекса, по которому проходила итерация секции. Это свойство может быть использовано как внутри, так и вне секции.
Пример 7-33. свойство {section} index
Результат выполнения данного примера:
|
show
show используется в качестве параметра секции. show является булевым значением, true или false. Если false, секция не будет отображена. Если присутствует секция {sectionelse}, вместо этого будет отображена она.
Пример 7-34. атрибут {section} show
Результат выполнения данного примера:
|
total
total используется для отображения количества итераций, через которые пройдет эта секция. Это свойство может быть использовано как внутри, так и вне секции.
Пример 7-35. свойство {section} total
Результат выполнения данного примера:
|
См. также {foreach} и $smarty.section.
Пред. | Начало | След. |
{php} | Уровень выше | {strip} |