====== ====== ===== Описание ===== позволяет передавать итераторы из источника данных в другие активные компоненты. Путь до переменной, где хранится итератор указывается при помощи [[limb3:ru:packages:wact:expressions|выражения]] в атрибуте **from**. позволяет ограничивать передаваемый итератор, накладывать offset, сортировать элементы, декорировать данные (см. тег [[iterator_decorate_tag|]]). В целом, тег можно воспринимать как аналог [[limb3:ru:packages:wact:tags:fetch_tags:fetch_tag|]] тега. см. также раздел [[limb3:ru:packages:wact:data_transfer|"Передача данных внутри шаблонов"]]. ===== Синтаксис ===== ===== Область применения ===== В любом месте WACT шаблона. ===== Атрибуты ===== * **from** – выражение, обычно путь до переменной, содержимое которой можно считать итератором (настоящий итератор или массив). Поддерживает краткую форму для значения, когда значок выражения опускается и используется только DBE. * **to** - DBE, путь до компоненты, который должен получить данные. Данный компонет должен поддерживать метод **registerDataSet()**, если передается весь итератор, или же метод **registerDatasource()**, если передается только первая запись из итератора (при использовании атрибута first). * **target** – идентификатор компонента, который должен получить данные. Значение target преобразуется по схеме "(value)" и передается в качестве значения to. * **first** - указывает, что необходимо передать не весь итератор, а только его первую запись. * **one** - аналогично first (доступно с версии WEB_APP > 0.2) * **order** - позволяет задать параметры сортировки. Например, title=DESC,date=ASC * **offset** - позволяет задать отступ (offset), с которого будет начитаться итерирование элементов итератора. * **limit** - позволяет задать ограничение на количество элементов в итераторе. Внимание: * для работы с атрибутами offset и limit необходимо, чтобы итератор, получаемый из fetcher-а поддерживал метод paginate() * для работы с атрибутом order необходимо, чтобы итератор поддерживал метод sort($order_params = array()) Это важно, если вы создаете свои собственные итераторы, а не используете те, что есть в Limb, например, в пакете [[limb3:ru:packages:datasource|DATASOURCE]] ===== Содержимое ===== Дочерние теги [[iterator_decorate_tag|]], если необходимо. ===== Пример использования =====
{$title}
{$uri} {$title}
Позволит вывести список разделов и список дочерних элементов для каждого раздела, ограничивая количество дочерних элементов пятью.