Минимальные требования к шаблонизатору.

Фанат

oncle terrible
Команда форума
dark-demon
Без логики это получится не шаблон, а статичная страница.
Что бы ты ни подразумевал под этим словом.

Вообще, я за такие вопросы давал бы по голове.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: *****
Ирокез
не превосходит он по скорости.
http://phpclub.ru/talk/showthread.php?postid=772516#post772516

ccsis - это как раз и есть пример реализации блочно-переменного шаблона.

И холивар тут не причем, я надеюсь, всего лишь высказал свое мнение, что шаблонизатор построенный по блочно-переменному типу, является очень красивым решением (что вполне вписываеся в тему данного топика) :)
 

CatManZero

Новичок
Автор оригинала: jrip
А править подобный блочный шаблон, всяко проще чем какой-либо код. В этом шаблоне есть всего лишь два понятия - блок и переменная.
Не так давно мне пришлось немножко покопаться в сайте вот с таким вот шаблонизатором. Честно говоря, мне было жаль тех, кто этот сайт делал. Как же люди не извращались, чтоб обойти ограничения шаблонизатора, когда им нужно было вывести несколько товаров в строчку и ввести парочку условий. Всё это им приходилось делать непосредственно в php при подготовке данных для шаблонизатора.
А мне в этом пришлось долго и упорно разбираться. Не желая также извращаться, я просто добавил поддержку условий в их шаблонизатор, что в последствии здорово облегчило внесение правок.

Потому, мне кажется, шаблонизатор должен иметь хотябы минимальную поддержку условных операторов в явном виде, типа {if}{/if}, или не в таком явном, как это делается в xslt.
 

Фанат

oncle terrible
Команда форума
Ирокез
Не надо мне тыкать в этого сферического коня в вакууме.
я надеюсь, всего лишь высказал свое мнение
высказал? молодец. без тебя этого никто не знал. а теперь помолчи немножко.
 

jrip

Новичок
*****
Видимо я не совсем правильно выразился. Я имел ввиду конкретный пример. Так, в реальной ситуации, конечно что-то придётся менять и в коде. Хотя многие ситуации, как этот вывод некой таблицы, почти всегда возможны с использованием неких стандартных модулей.

-~{}~ 05.02.08 12:08:

CatManZero
Гм.. на пальцах. у меня есть шаблон. Где нет логики. Есть нечто, как я выше называл это модулем, которое занимается логикой отображения. Т.е. оно берёт некие данные в неком виде и на основе шаблона делает Html. Это PHP код, знакомый многим. Вы же предлагаете часть логики засунуть в шаблон.

На счёт извращений и тп. Да, согласен, в некоторых, редких случаях использование подобных шаблонов бывает и неудобным.
 

Фанат

oncle terrible
Команда форума
CatManZero
Это недостатки реализации, а не технологии.
Разумеется, обработка условий в блочном шаблоне делается на стороне кода PHP. Это является одновременно и плюсом и минусом.
Но не надо думать, что твои личные трудности или непонимание тобой парадигмы таких шаблонов - это повод обобщать для всех.

-~{}~ 05.02.08 12:12:

jrip
КОРРЕКТНЕЕ надо быть в формулировках. Тебе уже подпевают - "дада, блочный шаблон подправить проще!"
заметь - не "конкретный пример", про который все давно забыли, а уже блочный шаблон вообще.

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

phprus

Moderator
Команда форума
dark-demon
> а вот применения остальным математическим операциям в шаблоне я не вижу.
вывод логарифмической гистограммы, например
Для вывода логарифмической гистограммы не нужны логарифмические функции. Они нужны для для подготовки данных для этой гистограммы, а это уже не логика отображения, а скорее бизнес-логика. Кроме того гистограмму гораздо проще реализовать картинкой, а не средствами html.

zerkms, а что логика отображения забыла в шаблоне?
Вообще-то шаблон это и есть реализация логики отображения данных.
 

dark-demon

d(^-^)b
реализация логики отображения - это view
шаблон - это статические куски целевого документа.
 

jrip

Новичок
phprus
Если шаблон это и есть реализация логики отображения, то как тогда по вашему должен выглядеть шаблон?
 

zerkms

TDD infected
Команда форума
Для вывода логарифмической гистограммы не нужны логарифмические функции. Они нужны для для подготовки данных для этой гистограммы, а это уже не логика отображения, а скорее бизнес-логика. Кроме того гистограмму гораздо проще реализовать картинкой, а не средствами html.
т.е. ты предлагаешь сырые изначально данные, форматировать которые - прежде всего логика отображения, готовить в коде?

страшно представить тогда такой код для разных типов диаграмм...
 

Фанат

oncle terrible
Команда форума
zerkms
я бы воздерживался от неинтеллектуальных замечаний типа "страшно представить".

-~{}~ 05.02.08 12:34:

dark-demon
View - это часть паттерна MVC, если я правильно понимаю?
А если я не пользуюсь это попсовой затычкой - о шаблонах могу забыть?
И вообще - что за манера навязывать собственное толкование общепринятых терминов в таком тоне?
 

dark-demon

d(^-^)b
> Они нужны для для подготовки данных для этой гистограммы, а это уже не логика отображения, а скорее бизнес-логика.

логарифмичность графиков ни коим образом не относится к бизнес логике


> Кроме того гистограмму гораздо проще реализовать картинкой, а не средствами html.

а ещё проще забить на хтмл и выдавать пользователю изображение страницы. как раз и со сглаживанием шрифтов проблем не будет...
 

CatManZero

Новичок
Автор оригинала: *****
CatManZero
Это недостатки реализации, а не технологии.
Разумеется, обработка условий в блочном шаблоне делается на стороне кода PHP. Это является одновременно и плюсом и минусом.
В принципе согласен.
Автор оригинала: *****
... или непонимание тобой парадигмы таких шаблонов - это повод обобщать для всех.
Ну так в чем же их парадигма? Какой смысл заганять себя в столь узкие рамки?
Что может страшного произойти, если я вместо
PHP:
{even_row}
<tr class="even">
...
</tr>
{/even_row}
{odd_row}
<tr class="odd">
...
</tr>
{/odd_row}
буду писать
PHP:
{if data.number%2=0}
<tr class="even">
...
</tr>
{else}
<tr class="odd">
...
</tr>
{/if}
Во втором случае если нужно изменить представление данных не по строкам, а по столбцам, мы правим шаблон.
В первом случае и код, подготавливающий данные, и шаблон. Какой смысл тогда вообще использовать шаблонизатор?
 

phprus

Moderator
Команда форума
jrip
Если шаблон это и есть реализация логики отображения
Я Хотел написать, что по моему мнению шаблон есть реализация некоторой части логики отображения. Прошу прощения за то, что я не совсем правильно выразил свою мысль.

dark-demon
шаблон - это статические куски целевого документа.
А вот тут я не совсем согласен. Если всю логику отображения размещать в view (кстати тут возникает вопрос, а что есть view и входит ли в это понятие сам шаблон? по моему тут надо доопределить понятие view), то тогда при каждом изменении дизайна(верстки или еще чего-нибудь) готового документа придется привлекать еще и программистов, по этому некоторая часть логики отображения должна быть вынесена в шаблон.

zerkms
т.е. ты предлагаешь сырые изначально данные, форматировать которые - прежде всего логика отображения, готовить в коде?
Не предлагаю. Как я написал выше, в предыдущем моем сообщении я не совсем правильно выразил свою мысль.

Update:
На счет графиков:
dark-demon
логарифмичность графиков ни коим образом не относится к бизнес логике
Действительно вы правы. Каюсь, что отнес это к бизнес-логике.
 

Фанат

oncle terrible
Команда форума
fixxxer
тогда четкое непротиворечивое общепринятое толкование - на стол.
а не выпендриваться "вы тут фигню несете потому что бамбарбия это не кергуду".

CatManZero
Смысл такой же, как и во втором. В первом просто шаблон состоит из двух частей. Вот и все. И там и там ты правишь код. Смысл "загонятьв рамки" простой - не получается "лапша" из программного и HTML кода.
Если тебя такой вариант не устраивает - не пользуйся. Никто не заставляет.
просто не надо после моих объяснений заявлять "я не понимаю".
 

dark-demon

d(^-^)b
> что есть view и входит ли в это понятие сам шаблон?

безусловно. однако не стоит забывать, что view - это _программа_ для отображения модели. отображение может быть ввиде картинки, хтмля, или другой модели. и эта программа _может_ использовать шаблоны для формирования документа.
 

phprus

Moderator
Команда форума
*****
Попробую дать свое толкование view и шаблона.

View - это реализация логики отображения. На вход подаются результаты, а на выходе получаем то, что видит конечный пользователь.

Шаблон по моему - это нечто входящее в View от которого зависит только последний шаг визуализации данных, то-есть шаблон отвечает за то как будет нарисован интерфейс пользователя или как будет сформирован результирующий документ. При этом сам шаблон не обязан работать с теми данными которые получил view. Внутри view данные могут принимать такую форму которая будет максимально удобна для их вывода шаблоном. Или другими словами шаблон это нечто что позволяет не лезть в программный код если одинаково подготовленные данные необходимо представлять различными способами, например, в виде html и xml.
 

MagnetiZ

Новичок
Почему Вы не рассматриваете вариант расширяемого шаблонизатора?
Такой можно применять к любому верстальщику и расширять по мере уровня образования верстальщика.
 
Сверху