Оператор loop является оператором цикла. Циклы используется для выполнения
много раз подряд какого-то действия. Оператор loop формирует цикл с заданным
числом повторов (цикл со счетчиком). Конструкции DJEM-скрипт расположенные
внутри оператора loop выполняются при каждом повторении цикла.
Счетчик цикла последовательно принимает значения от заданного начального
числа до конечного с указанным шагом. Если шаг не указан, то отсчет ведется с
шагом 1.
Например, если задать цикл от 2 до 10 с шагом 2, то тело цикла повториться 5
раз. Счетчик примет значения: 2, 4, 6, 8, 10. При помощи этого оператора,
например, можно вывести список ссылок на страницы для постраничного отображения
текста..
Синтаксис:
<loop identifier=expr1 to expr2 [step = expr3]>
djemscript
</loop>
где,
Параметр
|
Описание
|
identifier
|
имя цикла для дальнейшего доступа к результатам. Может быть вычисляемым
выражением. Обязательный параметр.
|
expr1
|
выражение, задающее значение от которого начнется отсчет. Обязательный
параметр.
|
expr2
|
выражение, задающее значение на котором закончится отсчет. Обязательный
параметр.
|
expr3
|
задает шаг цикла
|
Для доступа к счетчику цикла используется выражение вида:
<loop[identifier]>
Пример:
Вывод html-таблицы со списком ссылок на страницы новостей:
<table><tr>
<loop i=1 to 5>
<td><a
href="news.html?page=<loop[i]>">[<loop[i]>]</a></td>
</loop>
</tr></table>
Результат:
<table><tr>
<td><a href="news.html?page=1">[1]</a></td>
<td><a href="news.html?page=2">[2]</a></td>
<td><a href="news.html?page=3">[3]</a></td>
<td><a href="news.html?page=4">[4]</a></td>
<td><a href="news.html?page=5">[5]</a></td>
</tr></table>
Пример строки
навигации
<loop i=<#_level#> to 0
step=-1>
<parent[<loop[i]>]._name.lcase> /
</loop>
<hr>
<loop i=0 to (<#_level#>-1)>
<parent[<loop[i]>]._name.lcase> /
</loop>
Этот код, выполненный в документе main.system.includes.test выведет:
тест / фрагменты страниц / системные файлы / главная /
<hr>
главная / системные файлы / фрагменты страниц /