О!Они ее полностью переносят в контроллер.
Спасибо.blitz ОО-расширение PHP (фактически без возможности наследования и прочих ОО-штук blitz ничего не значит и я вряд ли бы на него перешел).
Мне бы, пожалуйста, вот про эту саксес-стори поподробнее.Все было хорошо до тех пор, пока не стали возникать задачи, оформление которых требовало хитрой логики
<? foreach ($TREE as $item): ?>
<? if($item['li']=="open"): ?><ul><?endif?>
<? if($item['li']=="close"): ?></ul><?endif?>
<? if($item['id']!=0): ?>
<? if($id==$item['id']): ?>
<li>
<?=$row['title']?>
<a href="?id=0&parent=<?=$item['id']?>">[Add]</a>
</li>
<? else: ?>
<li>
<a href="?id=<?=$item['id']?>"><?=$item['title']?></a>
</li>
<?endif?>
<?endif?>
<? endforeach ?>
Мне то же было непонятно. Тут все дело в том, что blitz не стеснительно называет цикл контекстом. Просто такого понятия нет как цикл. И это не подмена понятий, а введение нового. 5 глава документации. Понять сходу сложно. Контекст это неизмеримо большее чем цикл.А то я, как-то, не очень пойму, как сложная логика на пхп превратилась в простую на blitz
не понял.У вас пример идеален, там уже откуда то есть такое как open и close - из базы такое приходит или кто-то до вывода шаблона поработал над массивом $TREE?
Как интересно. программист не понял, а верстальщик воткнул с пол-пинка? Вот это самое нововведённое неизмеримое понятие?Мне тоже было непонятно. Понять сходу сложно
а у вас, типа, такого слоя нету?У вас, видимо, до шаблонов есть еще один слой кода которые обрабатывает данные и только потом выдает эти данные в шаблон.
мы программистыя прошу прощения за некоторую резкость высказываний, просто немнго горячусь.
не понял.не так уж и большое дерево.
слушай, да не привязывайся ты к моему решению. оно мне самому не нравится!http://phpclub.ru/paste/index.php?show=1574
Что можно сказать об этом?
Когда вы производите рефакторинг и бьете что-то на отдельные методы, а потом читаете получившийся код - вам интересно что делает такой-то метод или вам интересно видеть картину целиком, а при необходимости уточнить - а что-же такое делает вызов этого метода?из контекста непонятно - цикл это, или условный переход, или инклюд - снижается читаемость и повышается завязанность программиста и верстальщика друг на друга
а кто в вашем коде расставляет open и closeобязательность слоя, который приводит полученные из базы данные к виду, удобному для шаблонизатора
Уже написал. В самом моем первом примере. Попробуйте то же самое написать на чистом PHP основываясь на том массиве данных. Вам понадобится взять этот массив и преобразовать в нужный вид - расставив open и close и отделив первый уровень от второго, причем вывести сначала первый для th и только потом для td второй уровень - а в массиве то они вперемешку двумерно. Blitz избавляет меня от этого.просто напиши вывод дерева. как _тебе_ и Блицу удобнее.
в моём коде это не обязательно. требуется только в исключительных случаях.а кто в вашем коде расставляет open и close![]()
Несколько пояснений.Уже написал. В самом моем первом примере. Попробуйте то же самое написать на чистом PHP основываясь на том массиве данных. Вам понадобится взять этот массив и преобразовать в нужный вид - расставив open и close и отделив первый уровень от второго, причем вывести сначала первый для th и только потом для td второй уровень - а в массиве то они вперемешку двумерно. Blitz избавляет меня от этого.
Ну это же мои, родные open-close, на который ты так ополчилсо! =)))){BEGIN greater}
<ul>
{END}
только они в самом шаблоне, а не приходят извне.Ну это же мои, родные open-close, на который ты так ополчилсо! =))))
не на до ля лятолько они в самом шаблоне, а не приходят извне.
не понял.Сделать просто рекурсию - в таком простом примере применение blitz смешно и ничего не показывает.
ткни дурака носом. ссылка:номер строки.Вам не хватило рекурсии в предыдущих моих примерах?
так вы это о blitz говорили? А я думал что мне сейчас дадут удочку и фонарик.Я думал, что _тебе_ интересно сократить шаблон в три раза и сделать его в сто раз понятнее.
но при этом абсолютно идентичная ситуация, когда манипулирование исходными данными доставляет столько же удовольствия, представляется муками адовыми.манипулирование context/all iterations in one set/block доставляет больше удовольствие
НЕТ!так вы это о blitz говорили?