Smarty templates, foreach и break

Lithium366

Новичок
Smarty templates, foreach и break

Собственно как реализовать сабж? Некоторые пытаются вставлять {php}break;{/php} что не есть корректно
 

Фанат

oncle terrible
Команда форума
в смарти не надо реализовывать брейк.
в смарти надо передевать массив УЖЕ имеющий то количество элементов, которое нужно.
 

Lithium366

Новичок
Уже так и сделал. Просто уж очень не хотелось портить код готовой программы с целью ее дальнейшего обновления. Хотелось обойтись малой кровью в шаблонах
 

Фанат

oncle terrible
Команда форума
о, боги

весь мир, захлебываясь слюной, восторженно кричит о том, что шаблоны позволяют менять код программы, не затрагивая шаблон.
и что мы имеем в итоге? радостно исправляемый шаблон

смарти - зло. этот недоязык должен умереть. он растлевает неокрепшие умы.
 

Lithium366

Новичок
Ну ты как всегда %)
Нет, не менять код программы. А всего лишь работать с массивом в котором данных более чем надо отобразить
 

WP

^_^
*****
Не скажи, это логика отображения. И она может включать break.
 

FreeSpace

Чукча-читатель
Lithium366
Родного нет, но можно написать свой постфильтр :)
Хотя тогда уж проще отделаться if'ом.
 

WP

^_^
Lithium366
Сделай в скрипте константу break и появится в смарти ;)
Либо Quicky.
FreeSpace
Смиялсо.

-~{}~ 10.09.07 20:41:

*****
А твоей логикой можно прийти к блитзу)
 

Фанат

oncle terrible
Команда форума
можно. и нужно
а как поступить со смарти - я уже написал
 

WP

^_^
*****
Не понимаю я такого... ведь чтоб изменить логику представления надо будет лезть в основную программу либо в файл View.mytemplate.php который будет описывать те же самые for'ы и break'и, создавать кучу лишних массивов и запускать шаблон. Де факто тоже самое что и в смарти только мы не используем промежуточный скрипт для части логики представления.
 

AmdY

Пью пиво
Команда форума
Lithium366 если прдложение фаната не подходит и ты не запрещаешь использовать в шаблонах {php}, то можно юзать {php}break;{/php}, ИМХО сдесь ничего постыдного нет, если только не поработают прошаренные верстальщики.
иначе http://smarty.php.net/manual/ru/plugins.block.functions.php
 

Lithium366

Новичок
WP
Я так понимаю что ***** за то, чтобы максимально отделять и упрощать логику представления, не зависимо от того, насколько при этом усложняется код программы. И это правильно. Тут же речь идет о заплатке. Да, не красиво, но эффективно. Конечно, если такая лажа не используется повсеместно

-~{}~ 11.09.07 18:09:

В любом случае всем спасибо, вопрос был снят еще вчера. Резюме:
1) Обойтись без break, формируя контент максимально удобно для его дальнейшей обработки в smarty
2) Случаи когда без использования break в смарти не обойтись крайне редки, но его реализация в любом случае кривая
 

ustas

Элекомист №1
Lithium366
малой кровью в шаблонах
{break}

function smarty_compiler_break($tag_attrs, &$compiler)
return 'break';

и вопросы по реализации сняты.
таким же образом можешь сделать любую конструкцию. заменить уродливый section например
 

zerkms

TDD infected
Команда форума
ustas
вместо уродливого section есть вполне юзабельный foreach
 
Сверху