Циклы с итераторами


Оператором цикла с итератором является конструкция вида

<TMPL_foreach ИМЯ_ЦИКЛА as ИМЯ_ИТЕРАТОРА>
     <TMPL_var ИМЯ_ИТЕРАТОРА.ИМЯ_ПЕРЕМЕННОЙ> <TMPL_var ИМЯ_ПЕРЕМЕННОЙ>.
</TMPL_foreach>

Все переменные, содержащиеся в текущей итерации в любых уровнях вложенности доступны как элементы итератора, заданные через точку.
Если имя итератора не указано, переменная ищется сначала внутри итератора, а затем - в глобальной области данных; по тому же образу и подобию, что и в TMPL_loop. Такоим образом, в приведенном примере <TMPL_var ИМЯ_ИТЕРАТОРА.ИМЯ_ПЕРЕМЕННОЙ> и <TMPL_var ИМЯ_ПЕРЕМЕННОЙ> выдадут один и тот же результат.

Использование итераторов полезно в том случае когда внутри вложенных циклов требуется вывести переменные из внешних циклов.
<TMPL_foreach pages as page>
    <TMPL_foreach page.users as user>
        <TMPL_foreach user.friends as friend>
            Page:   <TMPL_var page.id> <TMPL_var page.url>
            User:   <TMPL_var user.id> <TMPL_var user.name>
            Friend: <TMPL_var friend.id> <TMPL_var friend.name>
        </TMPL_foreach>
    </TMPL_foreach>
</TMPL_foreach>


В остальном использование <TMPL_foreach> полностью аналогично <TMPL_loop>.

Copyright © 2003 - 2009 CTPP Dev. Team | http://ctpp.havoc.ru