проблемы шаблонизаторов

Earthling

Guest
Кто в этом случае отвечает за форматирование данных? Кто решает, выводить список через <ul> или через <table>? Программист?
Нет, верстальщик.. Это меняется без программиста очевидным образом.

На счет "не объединена с кодом" подробнее, please. Зачем тебе два PHP-файла, если во втором нет кода?
Во втором - код логики представления, в первом - код бизнес-логики.

Т.е. и бизнес-логика и логика представления -- это одна большая куча под названием "скриптовая часть кода" и занимается ею программист?
Можно. Это я считаю делом вкуса.. Попросту, у меня нет пока достаточного количества весомых аргументов за или против разделения ;).. Раз уж и тем и другим занимается программист.


Уже обсуждавшийся в другом треде пример: сформировано значение X. Это значение верстальщик может вывести как HTML, вставить как часть URL или как константу Javascript. Как программист догадается о требуемом типе квотинга?
Так как там с квотингом -- пусть стучится?
Вообще, javascript - это мое. Программистское. Что касается значения как части URL.. Тут по самому типу значения понятно, является оно URL или нет. Так что у него и мыслей о стуке возникнуть не должно.

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

Ниже ты утверждаешь обратное:
Т.е. чтобы править шаблон верстальщик должен помимо HTML знать смысл этих закорючек, не так ли?
Ну да, разумеется. Несколько закорючек он выучить в состоянии. Так или иначе, в шаблоне должна присутствовать какая-то разметка ;)))

Спасибо, я уже много чего много где смог увидеть. :)
Судя по количеству твоих постингов на этом форуме - наверняка.
 

Crazy

Developer
Автор оригинала: Earthling
Нет, верстальщик.. Это меняется без программиста очевидным образом.
В самом деле? А каким образом автоматически уберется <ul></ul> или <table></table>, если список пуст?

У верстальщика нет доступа к логике представления. А программист не знает, что там понапихал верстальщик: <li> или <tr>.

Будем ждать чуда или посадим их за один комп?

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

Здесь презентационная логика выступает отдельным уровнем для приложения. Она не объединена с кодом.
Никак не могу понять, что от чего отделено и что с чем не объединено.

Можно. Это я считаю делом вкуса.. Попросту, у меня нет пока достаточного количества весомых аргументов за или против разделения ;).. Раз уж и тем и другим занимается программист.
Не "тем и другим занимается программист", а "ты заставляешь программиста заниматься тем и другим". Это вовсе не одно и то же.

Вообще, javascript - это мое. Программистское.
Т.е. и создание и подключените JS в твоем случае делает программист? Верстальщик даже rollover'ы на готовом коде не в состоянии подключить?

Что касается значения как части URL.. Тут по самому типу значения понятно, является оно URL или нет.
Простой тест: строка "EPSON Stylus C84" является частью URL или нет?

rowspan придется верстальщику менять, если я правильно понял общий контекст задачи. Впрочем, он же должен определять и количество новостей.
Оба-на. Будет прибегать утром на работу, смотреть в MySQL'ной базе, сколько новостей на сегодня в базе и править rowspan в шаблоне?

Ну да, разумеется. Несколько закорючек он выучить в состоянии.
Т.е. правильно прочесть эти закорючки он может, а подправить -- уже никак?

Так или иначе, в шаблоне должна присутствовать какая-то разметка ;)))
Вопрос: чем является эта разметка, если не формой задания логики представления?
 

vladax

Новичок
Так или иначе, в шаблоне должна присутствовать какая-то разметка ))
Вопрос: чем является эта разметка, если не формой задания логики представления?
Crazy
5 баллов! Вывел таки на чистую воду :)
Earthling
в твоём понимании верстальщик - недоумок какой то.. с горем пополам освоивший html.. какой там ему до задания логики представления..
Какую зарплату ты ему положешь? :)
 

su1d

Старожил PHPClubа
В самом деле? А каким образом автоматически уберется <ul></ul> или <table></table>, если список пуст?
да всё уберётся. без участия программера.

Будем ждать чуда или посадим их за один комп?
не обязательно. если дизайнер/верстальщик понял философию шаблонов, то разделение труда получается полное.

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

в конце концов у дизайнера ЕСТЬ логика, но не та, многомерная, которой оперирует программер, а предельно упрощённая до двух значений: ЕСТЬ блок / НЕТ блока.
 

Earthling

Guest
Originally posted by Crazy
В самом деле? А каким образом автоматически уберется <ul></ul> или <table></table>, если список пуст?

Просто не будет показываться весь блок дизайна.


В таком случае не мог бы ты пояснить смысл своей ранее сказаной фразы?
Никак не могу понять, что от чего отделено и что с чем не объединено.
Конечно. Дело в том, что PHP-скрипты ты властен разбить на 2 уровня. Один скрипт будет заниматься только бизнес-логикой, а затем другой скрипт будет реализовывать презентационную логику.

Ты верно понял тот факт, что презентационной логикой/почти всей/ занимается программист.

Т.е. и создание и подключените JS в твоем случае делает программист? Верстальщик даже rollover'ы на готовом коде не в состоянии подключить?
Честно говоря, просто не сталкивался с этой проблемой. Код, самостоятельно написанный верстальщиком (что такое rollover? термин незнаком.), просто не требовал переменных.

Если же потребует - предоставлю должным образом отквоченные. Вообще, верстальщик, умеющий грамотно писать достаточно сложный(требующий переменных) javascript, безусловно, заслуживает отдельного фильтра, который будет надлежащим образом квотить.


Простой тест: строка "EPSON Stylus C84" является частью URL или нет?
Это может быть без фильтров употреблено и в тексте и в URL. Реально переменную {text} никто в URL ставить не будет.
Если же значение дано уже в виде URL, то его в таком виде допустимо ставить в текст без всяких фильтров.

Т.е. правильно прочесть эти закорючки он может, а подправить -- уже никак?
Сами закорючки - прочитать может, править тоже, но не сильно. Почти что нет.


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

Alexos

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

Crazy

Developer
Автор оригинала: Earthling
Просто не будет показываться весь блок дизайна.
It's a magic? Каким образом блок дизайна догадается, что ему не нужно показываться? Ты же убрал логику представления из шаблона.

Конечно. Дело в том, что PHP-скрипты ты властен разбить на 2 уровня. Один скрипт будет заниматься только бизнес-логикой, а затем другой скрипт будет реализовывать презентационную логику.
А шаблон идет как некий третий файл, я правильно тебя понял?

Ты верно понял тот факт, что презентационной логикой/почти всей/ занимается программист.
ПОЧТИ ВСЕЙ? Я правильно прочитал? А кто пишет тот остаток, которого недостает, чтобы "почти все" стало "всем"? Верстальщик?

Честно говоря, просто не сталкивался с этой проблемой.
Рассмотрим простой случай: есть меню, список пунктов которого загружается из базы. Для каждого пункта меню назначен код раздела (contacts, pricelist etc) и его название ("контакты", "наши цены" etc). Верстальшик может захотеть вывести меню текстом. А может захотеть вывести графикой. Чтобы картинки в меню реагировали на наведение мыши -- ему нужны функции JS. Функции эти готовы. Но в них в виде констант JS (с соответствующим квотингом) нужно передать название раздела и его код. Например:

Код:
onMouseOver="showSeelcted('contacts','контактная информация');"
Для текстовой реализации нужно прогонять названия разделов через htmlspecialchars, а для формирования констант JS нужен совсем другой квотинг.

что такое rollover?
Картинки, меняющие состояние при наведении мыши.

Если же потребует - предоставлю должным образом отквоченные.
Т.е. опять сажать вас за один комп?


Это может быть без фильтров употреблено и в тексте и в URL.
А название можели принтера будет включать в себя "&"?

Реально переменную {text} никто в URL ставить не будет.
Совет: всегда говори только за себя. Этот пример я встречал в прошлом году на живом сайта в виде ссылки "Искать этот товар в гугл".

Сами закорючки - прочитать может, править тоже, но не сильно. Почти что нет.
В настоящее время нам важен факт признания того, что верстальщик их править может...

Если ты согласен со всеми остальными тезисами и дело только за терминологией..
Ну чтож, посмотрим, что у нас осталось от исходного тезиса. Цитирую:

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

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

Demiurg

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

Earthling

Guest
It's a magic? Каким образом блок дизайна догадается, что ему не нужно показываться?
Если программист куда-то не пишет никаких данных, и вообще не трогает какой-то блок, то он не покажется.

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

ПОЧТИ ВСЕЙ? Я правильно прочитал? А кто пишет тот остаток, которого недостает, чтобы "почти все" стало "всем"? Верстальщик?
да, именно. Я уже давал примеры презентационной логики, которые он может использовать: дизайнерские фильтры.


Верстальшик может захотеть вывести меню текстом. А может захотеть вывести графикой. Чтобы картинки в меню реагировали на наведение мыши -- ему нужны функции JS. Функции эти готовы. Но в них в виде констант JS (с соответствующим квотингом) нужно передать название раздела и его код.
Если это необходимо, я предоставлю должным образом отквоченные переменные.




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

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


Совет: всегда говори только за себя. Этот пример я встречал в прошлом году на живом сайта в виде ссылки "Искать этот товар в гугл".
И эти же слова фигурировали в виде URL ?!? Ты что-то путаешь...


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

-~{}~ 26.02.04 17:30:

Originally posted by Demiurg
Кстати, госпона, которые не любят презентационныю логику в шаблоны вставлять, а как вы делаете backend ? Ведь там куча однотипных страниц у каждой своя бизнес логика. Неужели на каждую страницу по своему шаблону ?
Могу выделить отдельный уровень презентационной логики для данной группы скриптов.
 

Crazy

Developer
Автор оригинала: Earthling
Если программист куда-то не пишет никаких данных, и вообще не трогает какой-то блок, то он не покажется.
Стоп, стоп, стоп. Вначале ты сказал, что блок пишет верстальщик. Это он решает, что там будет -- <li> или <tr>.

Каким образом здесь оказался программист? Они что, сидят за одним компом и сообща работают в текстовом редакторе?

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

Или ты опять имел в виду что-то совсем другое?

да, именно. Я уже давал примеры презентационной логики, которые он может использовать: дизайнерские фильтры.
Итак, мы пришли к тому, что в шаблоне должна быть презентационнаа логика. Продвигаемся дальше: какая именно презентационная логика допустима в шаблоне, а какая -- нет? Каков критерий?

Да какой же это один комп ? Вообще говоря, реально это будет так: верстальщик пришлет мне шаблон работающий со всем яваскриптом и данными (для примера).
Я его размечу тэгами шаблонизатора и сделаю презентационнуюю логику.
Это не занимает много времени, отнюдь..
Это займет где-то на 200% больше времени, чем если бы верстальщик мог все сделать сам.


И эти же слова фигурировали в виде URL ?!? Ты что-то путаешь...
Такое ощущение, что ты никогда не видел URL'ы, с которыми работает гугл... Ok, я тебе помогу:

http://www.google.com/search?q=EPSON+Stylus+C84

Текст есть? Ссылка работает?

неправильно. Я вообще не понимаю, откуда ты это взял.
Я включаю в шаблон разметку блоков, а выводить или нет - решает программист.
Хм. Рассмотрим ситуацию на конкретном примере. У меня есть страница, на которой нужно вывести либо до 10 новостей не старше недели, либо фразу "А вот нифига не случилось".

Как это реализуется в твоем случае?
 

Earthling

Guest
Originally posted by Crazy
Стоп, стоп, стоп. Вначале ты сказал, что блок пишет верстальщик. Это он решает, что там будет -- <li> или <tr>.
Каким образом здесь оказался программист? Они что, сидят за одним компом и сообща работают в текстовом редакторе?
программист решает, выводить блок или нет.

Итак, у тебя есть два файла, с которыми работает программист. И у тебя изредка возникает особая необходимость в файле для верстальщика?
Да, возможна структура, когда у меня есть 2 уровня PHP-скриптов: один - для бизнес-логики, другой - для презентационной.
Необходимость такого разделения появляется очень редко.
Как правило, вся логика - в одной куче.

Файл для верстальщика нужен не изредка, а всегда.
Он называется шаблоном.

Итак, мы пришли к тому, что в шаблоне должна быть презентационнаа логика. Продвигаемся дальше: какая именно презентационная логика допустима в шаблоне, а какая -- нет? Каков критерий?
Допустимы только фильтры.


Это займет где-то на 200% больше времени, чем если бы верстальщик мог все сделать сам.
Верстальщик не может сделать все сам. Когда он делает шаблон, еще не существует бизнес-логики.

Ты предлагаешь механизм: сначала бизнес-логика, а потом верстка шаблона ?


Такое ощущение, что ты никогда не видел URL'ы, с которыми работает гугл... Ok, я тебе помогу:

http://www.google.com/search?q=EPSON+Stylus+C84

Текст есть? Ссылка работает?
Да, все ок.. К чему это ?

Хм. Рассмотрим ситуацию на конкретном примере. У меня есть страница, на которой нужно вывести либо до 10 новостей не старше недели, либо фразу "А вот нифига не случилось".

Как это реализуется в твоем случае?
Делается 2 блока: один - с дизайном новости, другой - с фразой.
Если новостей нет - показывается блок с фразой, если есть - дизайн новости повторяется необходимое количество раз.
 

Crazy

Developer
Автор оригинала: Earthling
Да, возможна структура, когда у меня есть 2 уровня PHP-скриптов: один - для бизнес-логики, другой - для презентационной.

Необходимость такого разделения появляется очень редко.
Как правило, вся логика - в одной куче.

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

Допустимы только фильтры.
Использование нестандартных терминов без их определения -- не тот путь, который ведет к конструктивному общению.

Что конкретно ты понимаешь под фильтрами?

1. Преобразование строки в верхний регистр -- это фильтр?
2. Выдача непустой строки "как есть" (или с квотингом), но замена пустой строки на &nbsp; -- это фильтр?
3. Выдача новостного блока или специального сообщения если новостей нет -- это фильтр?
4. Функция if с тремя параметрами -- это фильтр?


Верстальщик не может сделать все сам. Когда он делает шаблон, еще не существует бизнес-логики.
Эта фраза укрепляет мое подозрение, что ты не понимаешь смысл термина "бизнес-логика" или употребляешь его в каком-то своем, особом контексте. :)

Какая дизайнеру разница, реализовал ты бизнес-логику или нет?

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

Да, все ок.. К чему это ?
Ok. Напомню: я показал тебе практически пример вставки текста в URL, поскольку ты утверждал, что такого не бывает, а значит не бывает и разных способов квотинга данных. Контекст восстановился?

Делается 2 блока: один - с дизайном новости, другой - с фразой.
Я думаю, что делается все же ТРИ блока: ты забыл саму страницу. Однако мне больше интересно другое, о чем ты не сказал:

1. КТО создает эти блоки?
2. ЧЕМ является их содержимое (HTML, PHP, HTML с макросами)?
 

Earthling

Guest
Originally posted by Crazy
Который из трех файлов ты называешь шаблоном? Или это уже четвертый файл?
третий по счету.
Описанная структура это:
1 файл - бизнес-логика( ПХП, программист)
2 файл - презентационная логика (ПХП, программист)
3 файл - шаблон (размеченный HTML, верстальщик).

В зависимости от проекта файлы 1 и 2 могут быть объеденены.


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

Что конкретно ты понимаешь под фильтрами?
То же самое, что Smarty.

Фильтры применяются только к переменным и проводят их преобразование. Ниже я полагаю, что исходные данные - переменная шаблона {text}.

1. Преобразование строки в верхний регистр -- это фильтр?
да

2. Выдача непустой строки "как есть" (или с квотингом), но замена пустой строки на &nbsp; -- это фильтр?
да.

3. Выдача новостного блока или специального сообщения если новостей нет -- это фильтр?
нет.

4. Функция if с тремя параметрами -- это фильтр?
нет.


Какая дизайнеру разница, реализовал ты бизнес-логику или нет?
Дизайнеру - совершенно без разницы. Его дело - картинку нарисовать чтоб все проперлись.

С другой стороны - писать Смарти-подобный шаблон без реализованной бизнес-логики нельзя. Поэтому для верстальщика есть разница.

Реализация бизнес-логики и реализация представления в том числе для того и разделяются, чтобы не было никаких требований к последовательности их исполнения.
Презентационная логика.. Это КАК показывать данные.. Если данных нет, то либо ее сделать нельзя, либо нужно генерить тестовые данные и тестировать с ними.
Заставлять верстальщика генерить тестовые данные я бы не стал. Он и php-то не знает..

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

Ok. Напомню: я показал тебе практически пример вставки текста в URL, поскольку ты утверждал, что такого не бывает, а значит не бывает и разных способов квотинга данных.
Я выше утверждал, что url может попасть в текст.
И url и текст можно квотить htmlspecialchars(), вреда не будет.


1. КТО создает эти блоки?
Программист.

2. ЧЕМ является их содержимое (HTML, PHP, HTML с макросами)?
HTML с разметкой
 

su1d

Старожил PHPClubа
1. КТО создает эти блоки?
Программист.
другой вариант: программист просит дизайнера создать дизайн блоков: ["список новостей", "новость в списке"] и ["сообщение об ошибке"].

т.е. создаёт дизайнер, а обезь.. ой.. верстальщик затем переводит это в ХТМЛ.

З.Ы. страница -- уже блок по умолчанию. это можно не принимать во внимание.
 

Crazy

Developer
Автор оригинала: Earthling
третий по счету.

[ ... поскипано ... ]

3 файл - шаблон (размеченный HTML, верстальщик).
Т.е. у тебя верстальщик привлекается к работе изредка, в исключительных ситуациях? %-O

Зачем ты это сказал ?
Чтобы ты прочитал и понял. А что, есть варианты?

То же самое, что Smarty.
Прости, но такая трактовка не согласуется с твоими предыдущими высказываниями. Как ты представляешь себе реализацию upcase в виде фильтра в смысле, которые используется в Smarty?

Твои ответы на мои примеры также показывают, что ты имеешь в виду нечто совсем другое.

С другой стороны - писать Смарти-подобный шаблон без реализованной бизнес-логики нельзя. Поэтому для верстальщика есть разница.
В чем разница для верстальщика? Какая ему разница -- написал ты вычисление оборотной ведомости или еще нет? Требования к дизайну у него есть. Соглашения о формате отображаемых данных есть. Инструмент есть. Чего ему не хватает?

Презентационная логика.. Это КАК показывать данные.. Если данных нет, то либо ее сделать нельзя, либо нужно генерить тестовые данные и тестировать с ними.
Естественно.

Заставлять верстальщика генерить тестовые данные я бы не стал. Он и php-то не знает..
А зачем заставлять верстальщика их генерить? Описание примера данных -- естественный этап в проектировании.

Возможно, я что-то упускаю из твоего подхода.. Каким образом ты собираешься делать презентационную логику до бизнес-логики ?
1. Берем задание на разработку.
2. Читаем в нем требования к дизайну.
3. Читаем там же соглашения о данных.
4. Берем исходник с тестовым примером.
5. Верстаем и тестируемся.

Я выше утверждал, что url может попасть в текст.
И url и текст можно квотить htmlspecialchars(), вреда не будет.
Как это будет выглядеть для строки <foobar> ?


1. КТО создает эти блоки?
Программист.
Верстку? Обана...

2. ЧЕМ является их содержимое (HTML, PHP, HTML с макросами)?
HTML с разметкой
Зачем мы заставляет программиста делать файлы, не являющиеся программой?

P.S. Большая просьба: перечитывай перед ответом собственные предыдущие сообщение. Такого охрененного количество опровержений собственных слов я еще никогда не видел. Ты постоянно путаешься в собственной же терминологии. Может быть, будет проще перейти к общепринятой?

-~{}~ 27.02.04 08:56:

Автор оригинала: su1d
З.Ы. страница -- уже блок по умолчанию. это можно не принимать во внимание.
Страницы не самозарождаются из сырости -- их кто-то должен сделать. Вот мне и интересно, кто именно.
 

PhpGuest

Guest
Ну вот если такие примеры расматривать -

Оформления вывода таких структур:

I. Линейного списка предоставляемого скриптом

Варианты:

1) Просто линейной таблицей
2) Линейной таблицей но с чередующимися по цвету строками
3) В виде сетки размером MxN c выводом по строкам
4) В виде сетки размером MxN c выводом по столбцам
5) В виде сетки размером MxN c выводом по строкам с раскраской ячеек с виде шахмотоной доски (или через k ячеек)

II. Древовидной структуры (древовидный форум)

1) Вывод в статичскм виде
2) Вывод на базе JS (JS формирует дерево)
3) Выводятся не все данные а только корнеыве темы - подтемы подгружаются по мере их запросов

Я думаю здесь без логики представления без if while for и тд ввобще никак?

Ну или опять же дергать программиста что по моему глубокому убеждение не есть гуд (такое возможно только если маленькая фирмочка и разделения труда по большому счету нет )
 

_RVK_

Новичок
интересно почему все считают что верстальщики такие тупые что не смогут понять принципов работы if? А как же они запоют если им придется использовать JS? Побегут к програмисту с просьбой "запрограмь ему это гребаное виртуальное меню"? Думаю не стоит жалеть так верстальщиков, а напротив заставлять их насильно учиться понимать хотя бы элементарную логику.
 

PhpGuest

Guest
Автор оригинала: Diesel
интересно почему все считают что верстальщики такие тупые что не смогут понять принципов работы if? А как же они запоют если им придется использовать JS? Побегут к програмисту с просьбой "запрограмь ему это гребаное виртуальное меню"? Думаю не стоит жалеть так верстальщиков, а напротив заставлять их насильно учиться понимать хотя бы элементарную логику.
Я ввобще считаю, что верстальщик просто оязан знать HTML+JS и хотя быть знаком с XML

(и ввобще все что выполянется на стороне клиента, за исключением наверное аплетов и кактивиксов - это область верстальщика)

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

Earthling

Guest
Originally posted by Crazy
Т.е. у тебя верстальщик привлекается к работе изредка, в исключительных ситуациях? %-O
Наверно, мы друг друга не понимаем.


Как ты представляешь себе реализацию upcase в виде фильтра в смысле, которые используется в Smarty?
Твои ответы на мои примеры также показывают, что ты имеешь в виду нечто совсем другое.
Имеются в виду не "output/input filter', а то. что у них в доке названо Variable Modifiers. То есть, фильтры, через которые проходит содержимое переменной непосредственно перед отображением на экране.

{var|uppercase}


1. Берем задание на разработку.
2. Читаем в нем требования к дизайну.
3. Читаем там же соглашения о данных.
4. Берем исходник с тестовым примером.
5. Верстаем и тестируемся.
Исходник с тестовым примером.. Кто его будет делать? Конечно, программер. Для кого ? А ни для кого, просто по причине использования такой технологии.

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

Ну... Требования к дизайну.. Дизайн, видимо, тоже отдельная, запараллеленная ветвь ?

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



Зачем мы заставляет программиста делать файлы, не являющиеся программой?
Программист делает разметку шаблона или структуру шаблона. Иначе, увы, никак.

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


-~{}~ 27.02.04 15:07:

Originally posted by PhpGuest
Ну вот если такие примеры расматривать -
Оформления вывода таких структур:
.... поскипано ....
Я думаю здесь без логики представления без if while for и тд ввобще никак?
Разумеется, без логики представления вообще никак. Другое дело, что эта логика должна быть не в шаблоне а в PHP-скрипте.

Шаблон - в моем понимании не программа. Шаблон содержит по возможности чистый дизайн с разметкой.

Ну или опять же дергать программиста что по моему глубокому убеждение не есть гуд
Я как программист, пишу код для размеченного (мной) шаблона. Потом, когда описанная тобой структура уже запрограммирована, желания ее сменить никогда не появляется /за исключением "множества меры нуль ;)"/


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

PhpGuest

Guest
Автор оригинала: Earthling


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

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

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

Если например пишется система администрирования для внутреннего использования или какое нибудь АРМ под конкретную систему - то там шаблоны применять - вообще нет смысла (только в случае большого кол ва однотипных офрм)

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

Если ты пишешь унивресальный модуль для како нить кмс навороченной или с прицелом на дальнейшее его использование в хрен знает каком проекте - то тут логику представления в шаблон не включать - снижение функциональности твоего модуля



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

Ну почему - это сплошь и рядом
вебмастер называется
 
Сверху