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

CatManZero

Новичок
Автор оригинала: *****
Смысл такой же, как и во втором. В первом просто шаблон состоит из двух частей. Вот и все. И там и там ты правишь код. Смысл "загонятьв рамки" простой - не получается "лапша" из программного и HTML кода.
Если тебя такой вариант не устраивает - не пользуйся. Никто не заставляет.
Это хорошо, что никто не заставляет. :)
Кого-то смущает "лапша", а кого-то отсутствие возможности легко и быстро внести изменения в отображение данных...
 

dark-demon

d(^-^)b
после таких вот "лёгких и быстрых" правок что-либо исправлять - сущая каторга.
 

Alexandre

PHPПенсионер
итерации, и чтобы была возможность проверять четность/нечетность этого номера, например чтобы выводить полосатую таблицу
ok, учтем.
Если же мы хотим нечто безумно универсальное - мы хотим написать подобие PHP.
Если же мы хотим нечто безумно универсальное - мы бы не заморачивались.
 

CatManZero

Новичок
Автор оригинала: dark-demon
после таких вот "лёгких и быстрых" правок что-либо исправлять - сущая каторга.
Ну это, смотря как, править.

Вообще я сравниваю с шаблонизаторами типа "блок+переменные", работая с которым мне скорее всего, перед тем, как сделать необходимые правки, нужно будет изучить код движка (или чего у него там).
С шаблонизаторами с более широкими возможностями (типа xslt, smarty, php и т.д.), как правило, проще.

dark-demon ты ещё скажи, что ты решил променять свой любимый xslt на такой вот блочный шаблонизатор. :)
 

dark-demon

d(^-^)b
> ещё скажи, что ты решил променять свой любимый xslt на такой вот блочный шаблонизатор.

одно исключает другое?

-~{}~ 05.02.08 15:45:

> Ну это, смотря как, править.

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

Alexandre

PHPПенсионер
Если мы хотим чтоб табличка была полосатой нужна переменная. Если мы хотим чтоб табличка была как-то по особому полосатой нам нужны условия. Если уж вообще-вообще по особому полосатой нужна некая работа с переменными, может быть какие-то встроенные функции.. ну и так далее..
для решения этой задачи, достаточно в данных перед шаблонизацией введения дополнительных переменных.
наворачивать логику в шаблон, хм. , так можно дойти и до вызова SQL запросов из шаблона и чем это тогда будет отличаться от php
это естественно лишне, по этому я хочу определиться с минимумом.
 

jrip

Новичок
CatManZero

Вообще я сравниваю с шаблонизаторами типа "блок+переменные", работая с которым мне скорее всего, перед тем, как сделать необходимые правки, нужно будет изучить код движка (или чего у него там).
С шаблонизаторами с более широкими возможностями (типа xslt, smarty, php и т.д.), как правило, проще.
Гм.. Блочный шаблонимзатор - это обычно класс с пятью методами. В блочном шаблоне - всего два понятия. Ога, это всё конечно понять сложнее чем тот же smarty :)

Вы бы всё-таки хотябы попробовали, перед тем как громко плеваться :)
 

Alexandre

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

CatManZero

Новичок
Автор оригинала: dark-demon
> ещё скажи, что ты решил променять свой любимый xslt на такой вот блочный шаблонизатор.

одно исключает другое?
Нет. Но xslt более гибче.

Я описал выше ситуацию (в моей практике был похожий случай).
Изначально задано построчное отображение списка товаров. Необходимо преобразовать в список с отображением товаров по нескольку в строке.
В случае блочного шаблонизатора, больше чем уверен, придется править код (а если он не твой, то ещё и изучить его принцип работы).
В случае xslt у тебя это получится сделать...

-~{}~ 05.02.08 15:54:

Автор оригинала: jrip
CatManZero


Гм.. Блочный шаблонимзатор - это обычно класс с пятью методами. В блочном шаблоне - всего два понятия. Ога, это всё конечно понять сложнее чем тот же smarty :)

Вы бы всё-таки хотябы попробовали, перед тем как громко плеваться :)
Понять не шаблонизатор, а движок (код), котрый запихивает данные в шаблонизатор.
А пробовать, я пробовал. О результатах я писал выше.
 

jrip

Новичок
CatManZero
А какая разница? То что у меня вместо smarty не один файл а два? Из-за этого труднее найти место где мне нужно что-то исправить? Я говорил о самом подходе, а извратить то любой подход можно. Просто понять php+html разделённый проще чем некий шаблонизатор.

Да и в любом случае всегда может случится такое, что в шаблоне smarty нельзя будет просто поменять, а придётся "изучить код движка (или чего у него там)"
 

dark-demon

d(^-^)b
> Изначально задано построчное отображение списка товаров.
> Необходимо преобразовать в список с отображением товаров по нескольку в строке.

css-ом это делается на раз.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Тема топика, сама по себе спровоцировала холливар )

блок+переменные, подразумевает поверхностный редизайн шаблона (цвет поменять, размер таблички изменить...)

если человек сам пишет и шаблон и логику, то скорее всего смартиподобные шаблонизаторы приведут к размазыванию логики по шаблону, блочно-переменный, дает более строгий подход к модели MVC
 

CatManZero

Новичок
Автор оригинала: jrip
CatManZero
А какая разница? То что у меня вместо smarty не один файл а два? Из-за этого труднее найти место где мне нужно что-то исправить? Я говорил о самом подходе, а извратить то любой подход можно. Просто понять php+html разделённый проще чем некий шаблонизатор.
Проще, пока дело не доходит до правок.

Автор оригинала: jrip
Да и в любом случае всегда может случится такое, что в шаблоне smarty нельзя будет просто поменять, а придётся "изучить код движка (или чего у него там)"
Может случиться и такое. И придется изучать. Но оно может случиться, а может и нет.

Короче, я просто хотел привести пример, где условия могут понадобиться. Вот и всё. :)

-~{}~ 05.02.08 16:33:

Автор оригинала: dark-demon
> Изначально задано построчное отображение списка товаров.
> Необходимо преобразовать в список с отображением товаров по нескольку в строке.

css-ом это делается на раз.
М.б. Придется поверить на слово. В верстке я пока не очень хорошо разбираюсь :(
А как на счет полосатости? Это тоже css-ом можно сделать?
 

jrip

Новичок
CatManZero
Проблемы любой "полосатости" там очень просто решаются через переменную и несколько css классов. :) При этом чтобы изменить цвет мы поменяем его в css файле. Я тут выше гдето это писал вроде..
 

CatManZero

Новичок
Автор оригинала: jrip
CatManZero
Проблемы любой "полосатости" там очень просто решаются через переменную и несколько css классов. :) При этом чтобы изменить цвет мы поменяем его в css файле. Я тут выше гдето это писал вроде..
Это понятно. А как бы по-твоему это выглядело в блочном шаблонизаторе?
Что-то вроде этого?
PHP:
  <div class="products">
{products}
    <div class="{var.even}">...</div>
{/products}
  </div>
Но вообще этот вопрос был обращен к dark-demon-у. Как бы он это решил? Обошелся бы без возможностей xslt (без использования условий в xpath)? Или м.б. также передавал бы данные о четности через xml?
 

jrip

Новичок
CatManZero
выглядело бы примерно так...

<!-BEGIN body->
<div class="products">
{products}
</div>
<!-END body->
<!-BEGIN product->
<div class="div_product_color_{product_color}">{product_data}</div>
<!-END product->
 

Фанат

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

jrip

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

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

С.

Продвинутый новичок
Проблема "размазанности" кода между моделью и шаблоном - решается организационно, а не технически. Поскольку сама граница проходит не достаточно четко. При проектировании оговаривается, что считается моделью, а что вью; например достаточно сложные таблицы вывода данных, форме которых уделено внимание в ТЗ, могут стать частью модели, в шаблоне же определяются только цветовая гамма да шрифт.

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

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