Шаблонный движок

atv

Новичок
А вот фишер придерживается интересной точки зрения.
Что характерно, я тоже придерживаюсь такой :)
Где в моём подходе есть программирование верстальщиком?
 

Beavis

Banned
Автор оригинала: atv
Верстальщик правит CSS, не меняя при этом имена классов, а зачем, если количество состояний не изменилось.
представь если сайт аналогичный www.microsoft.com (посмотри его CSS'ы - там классов в стилях больше самих данных на странице), захотят переделать под простенький сайт с табличной версткой...
я например не очень представляю как это сделать по-твоему...

насчет XSL, замечательно если он всё это умеет, жалко только ты примеров не привел, но т.к. я в XSL'e разбираюсь не сильно, поверю тебе на слово...

только вот XSL это такая довольно спорная технология, и далеко не все хотят её использовать...
 

dark-demon

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

дык эту логику (выбор шаблона) обрабатывает шаблонизатор на этапе сопоставления с образом (xpath). но _внутри_ шаблона логики нет.

-~{}~ 21.01.08 16:35:

> представь если сайт аналогичный www.microsoft.com захотят переделать под простенький сайт с табличной версткой...
Код:
<script type="text/javascript">
document.write("<script type='text/javascript' src= '/shared/core/1/js/richmedia.aspx?filePath=' > <\/scr"+"ipt>");
проще сделать с нуля.
 

Beavis

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

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

dark-demon

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

atv

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

Magiys

Новичок
Автор оригинала: *****
правильно. но эти шаблоны выводятся "в зависимости от...". это условный переход.
в чистом виде. поэтому речь не о том, есть ли логика, а в том, кто её обрабатывает.
Блоки сильно отличаются от условного оператора.
Они не зависят друг от дуга. Они могу быть выведены на экран по-разному.

Способ их обработки определяется рабочим скрипом.

Так, например, этот блок может быть задан как цикл.

<!-- BEGIN: books -->
{author}{title}
<!-- END: books -->

author1 title1
author2 title2
author1 title3

Может задан как зона видимости при определенных условиях:

<!-- BEGIN: loginbox -->
Here you can do login
<!-- END: loginbox -->

То есть поведение блока, а следовательно логика определяется рабочим скрипом. По моему мнению начало и конец блока - это всего лишь метка.

Таким образом я все же склоняюсь к тому, что шаблон не должен содержать логических операторов. Но это мое ИМХО, которое сформулировалось под влиянием этой дискуссии.
 

Фанат

oncle terrible
Команда форума
нет =)
поведение блока определяется верстальщиком.
он отвечает за конечный вид страницы. поэтому имеет в виду, поведение, конечно же, верстак. И это свое представление передает программиле. Что, мол, в этом блоке в зависимости от наличия данных, а в этом - строки, сколько есть.
результат обработки задается верстаком, а сама обработка - программилой.
т.е., логика все равно есть. Просто где-то она явная, и обрабатывается автоматом, а где-то - неявная, и обрабатывается человеком. но знать эту логику он все равно должен. Без неё он не сможет обработать блоки. Следовательно - она ЕСТЬ
 

dark-demon

d(^-^)b
определять какой блок и где должен выводиться - это задача менеджера.
реализовывать логику - это задача программиста.
натягивать на данные шкурку - задача верстальщика
рисовать шкурку - задача дизайнера
определять поведение пользовательского интерфейса - задача дизайнера
реализовывать пользовательский интерфейс - задача программиста
 

atv

Новичок
Ребята, вы утонули в демагогии. НЕЯВНАЯ логика в шаблоне действительно присутствует ВСЕГДА, и верстальщик действительно должен её ЗНАТЬ.

Вопрос ещё в том, что неявная логика уже присутствует, её не нужно реализовывать, и её можно использовать вместо реализации явной логики.
 

Gas

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

atv

Новичок
почему неявную логику не нужно реализовывать
Например, запись <xsl:template match="age[@class = 'pensioner']"> означает "шаблон предназначен для элемента age у которого атрибут class равен pensioner", т.е. задаётся условие по которому будет выбран именно этот шаблон, но проверка условия делается самим шаблонизатором, и конструкций вида if (class = 'pensioner') {} else {} нет.

С помощью xsl:template можно обрабатывать данные, для которых в обычных шаблонах используются циклы и рекурсия.
 

Gas

может по одной?
Лично я принципиальной разницы не вижу, условие же задаётся, просто xls другой подход, но который не избавляет от логики и добавляет немного magick :)
 

dark-demon

d(^-^)b
и какую конструкцию он реализует? "если шаблон вызван - то его следует обработать"? :)
 

StUV

Rotaredom
по сути да
<xsl:template match="age[@class = 'pensioner']">
и
if (class = 'pensioner') {} else {} нет
одно и то же, реализованное средствами разных яп/технологий
никакой дополнительной магии нет и не может быть

-~{}~ 21.01.08 19:15:

зы: и никакой "неявной" логики в этих примерах нет
самая обычная логика представления
 

Духовность™

Продвинутый новичок
Интересно, а с точки зрения сторонников {body}, логика в Смрти - это тоже не правильно?
 

Фанат

oncle terrible
Команда форума
triumvirat
если считают, то, по-твоему, их точка зрения неправильная?
 

Magiys

Новичок
Автор оригинала: ***** Следовательно - она ЕСТЬ
С этим я согласен. В своем сообщении я высказался против логики, определяемой условными переходами. А так, разумеется, шаблон включает в себя логику.

P.S. О чем говорят остальные участники я вообще не понимаю. Мне кажется все говорят о логике в разных контексах. :(
 

Gas

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

Мне кажется все говорят о логике в разных контексах
именно
 
Сверху