template iteration
Jan. 27th, 2012 02:36 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
вот в кои-то веки надо мне кусок темплейта реализовать (html) в котором цикл. ну например вывести список неких предметов с характеристиками из базы данных. т.е. темплейт - это html файл где "вставлены" переменные - куда потом вставлять значения из кода. с обычными переменными нет проблем. а как бы поизящнее это сделать чтоб цикл был в коде, а темплейт описывал эту iterating часть, какое псевдоописание сделать. пока не сообразил.
no subject
Date: 2012-01-27 11:19 am (UTC)no subject
Date: 2012-01-27 11:32 am (UTC)Чисто условно, если ты считаешь именем "обычной" переменной любое $[A-Za-z0-0]*, считай именем "индексной переменной $$*[A-Za-z0-0]*, а количество символов доллара --- уровнем вложенности цикла + 1.
Если нужны вложенные бланки, считай уровень вложенности относительным по отношению к файлу с бланком.
no subject
Date: 2012-01-27 01:29 pm (UTC)itemchar{i} | itemdate{i} | itemstatus{i}
Поэтому это уже не переменная, а итерируемый кусок темплейта где вся строка данных подставляется разными значениями, в зависимости от переменной цикла. Я вот думаю его засунуть в отдельный темплейт файл и вызывать оттуда (?).
Действительно изящное решение я видел в Mojolicious (thanks to A.Sapozhnikov). Но там темплейт - сам по себе перл скрипт и вызывается из основного кода. Т.е. темплейт активный, а не пассивный.
no subject
Date: 2012-01-27 02:26 pm (UTC)Возможно, имеет смысл с именами не заморачиваться, а просто отсчитывать переменные.
> Я вот думаю его засунуть в отдельный темплейт файл и вызывать оттуда (?).
Или, наряду с переменными, ввести в HTML метаскобки.
Там, собственно, проблема в том, чтобы понять, где начинается и где кончается итерируемый фрагмент, если в начале и конце не переменные, а какие-то константные цепочки, да?
no subject
Date: 2012-01-27 04:16 pm (UTC)no subject
Date: 2012-01-28 07:55 am (UTC)no subject
Date: 2012-01-28 05:23 pm (UTC)