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

dark-demon

d(^-^)b
> не надо грязи - я под xHTML 1.1 пишу

оно и видно...


> Не удачно пример поставил. Изменили имя класса с status-ok на status-vse-horosho

зачем?


> КОМУ придется править код? Кто этим заниматься должен?

тому, кто к нему ближе.
 

atv

Новичок
фигасе, я думал, что xslt - это одна сплошная логика.
Не надо громких слов, они сотрясают воздух, но не собеседника (с) Граф Калиостро.

В XSLT есть средства для организации циклов, условий и т.д. Но, не забывайте, что XSLT может использоваться не только как шаблонизатор, он, также, используется для преобразования XML форматов. В этом случае нет приложения и шаблонизатора, есть входной XML, выходной XML и правила преобразования (т.е. XSL шаблон). Именно для такого использования необходима логика в XSL шаблоне.

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

всё. у меня нет больше желания дискутировать с неадекватными людьми.
заявил triumvirat, засыпающий форум, мягко говоря неопытными вопросами :)

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

люди просто не понимают, для чего нужны шаблоны и для чего вообще нужно отделять РАБОТУ ПРОГРАММИСТА от РАБОТЫ ВЕРСТАЛЬЩИКА.
Может попробуешь высказать свою точку зрения по этому вопросу?
 

Beavis

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

а от высказываний типа
PHP:
<span class="status-{status}"> 
    {message} 
</span>
мне кажется недалеко и до
PHP:
<html> 
    {body} 
</html>
лишь бы избавиться от логики

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

cDLEON

Онанист РНРСlub
Ну и зачем это нужно? Если задокументировать шаблон (рассказать что да где комментами), то с классами всё норм.
К тому же, не совсем ясна цель замены имени класса от уже запрограммированного. Кому то от этого хуже станет ?
Да потому что не зачем из шаблонизатора делать gcc.
 

Beavis

Banned
Автор оригинала: cDLEON
Ну и зачем это нужно? Если задокументировать шаблон (рассказать что да где комментами), то с классами всё норм.
К тому же, не совсем ясна цель замены имени класса от уже запрограммированного. Кому то от этого хуже станет ?
а вот и первые ограничения....

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

-~{}~ 21.01.08 13:40:

Автор оригинала: dark-demon
> КОМУ придется править код? Кто этим заниматься должен?
тому, кто к нему ближе.
рано или поздно ближе к нему окажешься ты, и придется тебе править, хоть в обязанности это и не будет входить
 

cDLEON

Онанист РНРСlub
Beavis
Ну так бизнес логика то не меняется.
И обычная логика тоже. Что мешает дизайнеру сменить название, а префикс оставить?
Зачем в шаблон ложить ВСЮ логику? Ты думаешь дизайнеру от этого проще станет?
Я считаю, что логику шаблона нужно ограничивать. Иначе...
Нафига вообще шаблон? Если всё, что я хочу, так и кручу?
 

Beavis

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

atv

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

почему бы не поставить в шаблоне одно условие?
А потом другое, а потом третье и т.д. А потом
PHP:
<html> 
  {if condition=true}
    {body1} 
  {else}
    {body2}
  {endif}
</html>
А потом ищешь по шаблону и вложенным шаблонам где забыли закрыть <td> таблицы самого верхнего уровня, которая отвечает за колонку страницы.

а от высказываний типа... мне кажется недалеко и до...
Именно так и выглядит шаблон в XSLT
Код:
<xsl:template match="/">
  <html>
    <xsl:applay-templates select="body"/>
  </html>
</xsl:template>

<xsl:template match="body">
  <table>
    <tr>
      <td><xsl:applay-templates select="left-column"/></td>
      <td><xsl:applay-templates select="center-column"/></td>
      <td><xsl:applay-templates select="right-column"/></td>
    </tr>
  </table>
</xsl:template>
Как ты думаешь, долго тебе придётся искать незакрытый <td> в таком шаблоне?...
 

Beavis

Banned
Автор оригинала: cDLEON
Нафига вообще шаблон? Если всё, что я хочу, так и кручу?
так дизайнер и не должен быть загнан в какие то рамки по части дизайна... а то у него голова распухнет каждый раз лезть в документацию, смотреть какой класс чему соответствует и т.д.
а так он сам что ему нужно с дизайном то он и делает... и программиста не трогает..

-~{}~ 21.01.08 13:55:

Автор оригинала: atv
Именно так и выглядит шаблон в XSLT
Код:
<xsl:template match="/">
  <html>
    <xsl:applay-templates select="body"/>
  </html>
</xsl:template>

<xsl:template match="body">
  <table>
    <tr>
      <td><xsl:applay-templates select="left-column"/></td>
      <td><xsl:applay-templates select="center-column"/></td>
      <td><xsl:applay-templates select="right-column"/></td>
    </tr>
  </table>
</xsl:template>
не именно так... ты хотя бы на количество строк посмотри, тут body формируется тут же...

-~{}~ 21.01.08 13:56:

никогда не испытывал проблем с поиском незакрытых тегов...
 

atv

Новичок
а вот и первые ограничения.... а так он сам что ему нужно с дизайном то он и делает... и программиста не трогает..
Перечитай сообщение http://phpclub.ru/talk/showthread.php?postid=772769#post772769.

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

Beavis

Banned
atv
надо точнее выражаться...
это ваш подход делает имена классов интерфейсом...
 

atv

Новичок
никогда не испытывал проблем с поиском незакрытых тегов...
Это не значит что их нет, у тебя ещё всё впереди :)

-~{}~ 21.01.08 13:03:

это ваш подход делает имена классов интерфейсом...
Нет, это идея тех, кто придумал вынести стили из HTML в CSS.
 

Beavis

Banned
Автор оригинала: atv
Это не значит что их нет, у тебя ещё всё впереди :)
наверно как научусь решать проблему с забытыми точками с запятой в PHP и запущу свой первый PHP-скрипт, после этого сразу же появится проблема незакрытых тегов в HTML? или чуть позже?
 

atv

Новичок
наверно как научусь решать проблему с забытыми точками с запятой в PHP и запущу свой первый PHP-скрипт, после этого сразу же появится проблема незакрытых тегов в HTML? или чуть позже?
Заметь, не я это сказал :)
 

Beavis

Banned
Автор оригинала: atv
Нет, это идея тех, кто придумал вынести стили из HTML в CSS.
так они то наверно придумали что это между HTML и CSS имена классов служат интерфейсом, а не между PHP и шаблонами...
 

Beavis

Banned
ну мне кажется это просто лишние согласования, покрывающие недостатки вашего подхода...
 

cDLEON

Онанист РНРСlub
ну мне кажется это просто лишние согласования, покрывающие недостатки вашего подхода...
бред. А какой у тебя подход? У тебя 1-на килобайтный шаблон с помощью логики разрастается в несколько ?
 
Сверху