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

dark-demon

d(^-^)b
> А если верстальщику нужно изменить ИМЯ КЛАССА -- поменять status-ок на new-status-ок

не поверишь...
PHP:
<span class="new-status-{status}">

> Если бы я так писал программы, генерируя имена CSS-классов в PHP, меня бы давно выгнали пинками под зад.

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


> а если мы хотим WAP-сайт сделать (читай - другая разметка, упрощенная)?

читай - разметка совершенно другая. в частности - там нет так любимого тобой тэга <font>
 

WP

^_^
Жесть
atv
> "Шаблон - это образец, специальная нотация, разметка, но никак не программа".
Разметка это HTML. Что такое специальная нотация? Образец чего?
Ответь на 1 маленький вопрос. Смотри. Сделали люди сайт: заказали движок, дизайн... а потом решили что надо в таблице сделать "зебру", т.е. у ячеек через одну изменить фон. Им что, звать (нанимать) программиста чтобы он им сделал изменения в скрипте? А если они купили иностранный коробочный продукт под зендом?
triumvirat
Заметь, под шаблоном понимают "образец" только люди с отсутствием реального опыта, да и с плохой фантазией.
 

dark-demon

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

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

WP

^_^
Конечно вижу. Верстальщик знающий Quicky сделает в цикле:
{if iteration is odd}#C0C0C0{else}#FFFFFF[/if}
либо
{cycle values='#C0C0C0,#FFFFFF'}
 

dark-demon

d(^-^)b
а верстальщик, знающий xslt и css сделает:

PHP:
<tr class="zebra-{position() mod 2}">
только фишка тут в том, что человеку нужно _знать_ про эти довольно неочевидные вещи.
 

WP

^_^
Во-первых, это xslt, а не блочная верстка. Во-вторых, почему ты считаешь что в xslt можно запихнуть логику, а в Quicky и ему подобных это зло?
 

dark-demon

d(^-^)b
> Во-первых, это xslt, а не блочная верстка.

что ты пытался передать этой фразой?


> почему ты считаешь что в xslt можно запихнуть логику, а в Quicky и ему подобных это зло?

где ты увидел у меня логику? в фигурных скобочках у меня математическое выражение. логика - это различные операции ветвления. в том числе и цыклы, и прямой вызов других шаблонов.
в частности, против твоего {cycle values='#C0C0C0,#FFFFFF'} я ничего не имею, кроме прямого указания цвета в вёрстке.
 

WP

^_^
Это тоже логика. Хорошо, например, надо выводить зебру если определен параметр запроса zebra. Облом ;)
 

dark-demon

d(^-^)b
> Это тоже логика.

нет, это специфическое имя переменной "position() mod 2" :)


> Хорошо, например, надо выводить зебру если определен параметр запроса zebra.

это уже к программисту. не надо усложнять шаблон лишними условными конструкциями.
 

WP

^_^
> {position() mod 2}
Ты задействовал кастинг float в string. Без кастинга типов:
{if position() mod 2}1{else}0{/if}
Т.е. в конечном счете те же яйца только сбоку.
где ты увидел у меня логику? в фигурных скобочках у меня математическое выражение. логика - это различные операции ветвления. в том числе и цыклы, и прямой вызов других шаблонов.
Данное высказывание демонстрирует уровень интеллекта. В данном случае, логика - совокупность конструкций, требующих интерпретации.
> это уже к программисту. не надо усложнять шаблон лишними условными конструкциями.
Вот именно, а нормальный программист не любит когда его насилуют в мозг по таким пустякам которые не относятся к бизнес-логике.
> нет, это специфическое имя переменной "position() mod 2"
Где это растёт?

-~{}~ 21.01.08 01:56:

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

cDLEON

Онанист РНРСlub
WP
Да засунь ты свой квикли в тёмное и влажное место.
Человек знающий мой движок тоже сделает:
PHP:
<?="zebra".(TPL::iteration()%2==0) ?>
 

dark-demon

d(^-^)b
> Ты задействовал кастинг float в string. Без кастинга типов:

угу, а не используя математических операций:

{if position() = 0}0{/if}{if position() = 1}1{/if}{if position() = 2}0{/if}{if position() = 3}1{/if}{if position() = 4}0{/if}{if position() = 5}1{/if}

и так далее пока терпение не кончится :) а что, потенциальный чайник так скорее всего и решит эту задачу, ведь искать и читать доки - очень лениво, а сделать хочется и поскорее.


> Данное высказывание демонстрирует уровень интеллекта.

http://ru.wikipedia.org/wiki/Интеллект


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

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


> Где это растёт?

заходи к нам на php.ru :) у меня ещё девять пластиковых стаканчиков с воткой осталось...
 

WP

^_^
cDLEON
К чему это было сказано?

dark-demon
Какая разница? Это тоже логика, операция сравнения.
программист вообще не любит, когда его насилуют и заставляют заниматься тем, что ему не интересно... но ещё больше он не любит копаться в коде в котором поковырялись ручки
чайника.
Истину глаголишь. Вот именно, поэтому и не надо страдать сексуальными извращениями.

-~{}~ 21.01.08 02:48:

> Да засунь ты свой квикли в тёмное и влажное место.
Нидаждёшся, пративный!
 

AmdY

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

cDLEON

Онанист РНРСlub
AmdY
Что квики, что смарти - два сопога пара. Нечно каричневое в коробке из под торта.
1) Не будет (нормально) работать в зенде с обфускацией.
2) мне не понятно чем облегчается синтаксис этого велосипеда всевозможными {section blabla="" blabla="" blabla="" e.t.c.}
3) Да и вообще вся идея с "компилируемыми" шаблонами - тупость.
4) А квики, ещё хуже, велосипед для велосипедов. Только с небольшой модификацией, размер звёздочки на заднем колесе уменьшен на один зуб.
5) Если уж использывать шаблоны для не зазенденных скриптов, то это полюбому PHP-pure с хорошим АПИ.
ЗЫ. И ваще. Харе ВП защищать. Понаприходют тут :D
 

atv

Новичок
Оказалось, что имена CSS-классов должна генерировать логика приложения. А шаблонезатор - тупой уродец, задача котрого - заменять $var на {var}.
Вот жесть то! А если верстальщику нужно изменить ИМЯ КЛАССА -- поменять status-ок на new-status-ок, он должен звать программиста, что бы тот ему сделал изменения?
Хватит бисера метать, а то потом самому будет стыдно.

Ты когда-нибудь пользовался сторонними библиотеками? Там есть такое понятие как "интерфейс". Для чего нужен интерфейс? Это договорённость между разработчиком и пользователем библиотеки о вариантах её использования, и нужна она, чтобы абстрагировать пользователя от разработчика. Разработчик может безболезненно вносить изменения в библиотеку НЕ ЗАТРАГИВАЯ при этом интерфейс. Если понадобиться внести изменения в интерфейс, то и разработчику и пользователю придётся вносить соответствующие изменения в код. Поэтому, изменений интерфейса стараются избегать, и стараются ХОРОШО ПРОДУМАТЬ интерфейс. Это, я думаю понятно?

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

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

Жесть
atv
> "Шаблон - это образец, специальная нотация, разметка, но никак не программа".
Разметка это HTML. Что такое специальная нотация? Образец чего?
Ещё один истерик. Почитай вот эту дискуссию http://phpclub.ru/talk/showthread.php?postid=750849#post750849

Ответь на 1 маленький вопрос. Смотри. Сделали люди сайт: заказали движок, дизайн... а потом решили что надо в таблице сделать "зебру"
а потом решили добавить ещё одну колонку, а потом решили добавить сортирвку и т.д. Кто по твоему будет решать кого приглашать, программиста или верстальщика? Заказчик? Заказчик обратиться в контору, и ему без разницы кто и что будет править. И если проект организован нормально, времени это займёт не много.
 

AmdY

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

Духовность™

Продвинутый новичок
в частности - там нет так любимого тобой тэга <font>
не надо грязи - я под xHTML 1.1 пишу

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

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

-~{}~ 21.01.08 10:47:

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

В твоем шаблоне

PHP:
<span class="status-{status}">
    {message}
</span>
КОМУ придется править код? Кто этим заниматься должен?
 
Сверху