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

WP

^_^
Идея выноса css в отдельный файл в том чтобы избежать излишней дублируемости стилей.

cDLEON
Слышал звон да не знаешь где он, поэтому сидишь и крошишь на всех булочку. Найди себе девушку.

atv
Стараюсь. Собственно квики и разрабатывается работая на продакшене поисковика.

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

Фанат

oncle terrible
Команда форума
dark-demon
по сути, логика в этом статусе все равно есть.
просто она не прописана явно. но она есть.

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

Я не говорю, что это хорошо или плохо. Я просто обращаю внимание на факты.

triumvirat, не надо устраивать войну. Оба подхода имеют право на существование. У обоих есть достоинства и недостатки.

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

-~{}~ 21.01.08 14:45:

ой ё. там ещё три страницы. мамадорогая.
 

Beavis

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

atv

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

По условиям ТЗ к системе, поле "Возраст" должно иметь три состояния: "несовершеннолетний", "совершеннолетний" и "пенсионер". Состояние пенсионер зависит от пола: для мужчин после 60, для женщин после 55. В зависимости от состояния поля "Возраст", оно должно отображаться разным цветом.

При моём подходе, в приложении эта логика отработает во время события onShow, и объекту присвоится определённый класс CSS, в зависимости от состояния. А верстальщик подготовит три стиля для каждого состояния.

Возможное развитие событий:
1. От заказчиков поступило требование поменять цвет поля для какого-то состояния - верстальщик правит CSS файл.

2. От заказчиков поступило требование, при котором вёрстка становиться зависимой от состояния поля - верстальщик правит XSL шаблон, добавляет ещё один шаблон <xsl:template match="age[@class = 'pensioner']">, в котором содержится необходимая вёрстка.

3. От заказчиков поступило требование добавить для поля "Возраст" ещё одно состояние - программист правит обработчик события onShow для данного поля, верстальщик правит CSS файл, добавляет ещё один стиль.

Какие недостатки ты видиш в этом подходе?
 

Beavis

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

-~{}~ 21.01.08 15:18:

Автор оригинала: cDLEON
бред. А какой у тебя подход? У тебя 1-на килобайтный шаблон с помощью логики разрастается в несколько ?
и кстати, если для тебя главный критерий - минимальный вес шаблона - я привел пример как сделать идеальный для тебя вариант...
PHP:
<html>
   {body}
</html>
всего 3 строчки, и никогда не разрастется... а уж куда ты прячешь всю логику чтоб ничё не разрасталось - это уже другой вопрос...
 

WP

^_^
atv
В зависимости от контекста, я бы передал в шаблон пол и возраст и там уже разруливал, либо сделал бы поле куда бы положил флаг пенсионер ли он.
 

cDLEON

Онанист РНРСlub
Beavis
Ты мне не ответил на самый главный вопрос. К которому я вёл.
Какой смысл разрабатывать СВОЙ псевдоязык шаблонов для псевдоязыка шаблонов?
 

Beavis

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

cDLEON

Онанист РНРСlub
Слышал звон да не знаешь где он, поэтому сидишь и крошишь на всех булочку.
Опять двадцать пять...Я ни кого кроме тебя, о величество, не трогаю. Это так...К слову.
Я прекрасно знаю логику шаблонизаторов похожих на смарти. Все они велосипеды чистой воды. На котором, учят ездить дизайнеров. Это просто смешно уже.
ЗЫ. Сразу не увидил :D
 

Beavis

Banned
Автор оригинала: cDLEON
Beavis
Ты мне не ответил на самый главный вопрос. К которому я вёл.
Какой смысл разрабатывать СВОЙ псевдоязык шаблонов для псевдоязыка шаблонов?
зачем его разрабатывать? меня вполне устраивают управляющие конструкции PHP для этих целей... я тоже не понимаю людей которые сами шаблонизаторы делают...
 

atv

Новичок
ты всё это время обсуждал не вообще подход в целом, а только применительно к твоему маленькому ТЗ...
в нем и логики то практически нет, так что к твоему ТЗ он вполне подходит
А по существу что-нибудь будет, кроме этого слива?

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

Но мне больше нравиться написать "<xsl:template match="age[@class = 'pensioner']">", в котором уже зашита НЕЯВНАЯ логика.

-~{}~ 21.01.08 14:39:

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

А вообще, смотри вариант 2 "Возможного развития событий:" - этот вариант учитывает то о чём ты говоришь.
 

Beavis

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

-~{}~ 21.01.08 15:47:

Автор оригинала: atv
А вообще, смотри вариант 2 "Возможного развития событий:" - этот вариант учитывает то о чём ты говоришь.
я просто в XSL'е не очень силен, т.к. ещё не научился теги закрывать, как я уже говорил... приведи пример если не сложно
 

dark-demon

d(^-^)b
> по сути, логика в этом статусе все равно есть.
> просто она не прописана явно. но она есть.

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

-~{}~ 21.01.08 15:55:

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

а применительно к какой задаче ты видишь недостатки?
 

atv

Новичок
ты смешной такой) тебе реально кажется что все против тебя в штыки идут?)
Интересная формулировка... Мне реально кажется что ты потерял нить обсуждения и теперь беспорядочно клацаеш по клавиатуре. Значит тебе нечего сказать.
 

Фанат

oncle terrible
Команда форума
dark-demon
ох.
это спор, по большей части, терминологический.
но, тем не менее.
вот, смотри:
<!-- BEGIN: books -->
{author}{title}
<!-- END: books -->
<!-- BEGIN: nobooks -->
<p>There are no books to display.</p>
<!-- END: nobooks -->

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

Beavis

Banned
dark-demon
если уж далеко от этого КСС'а не уходить, создание нового представления данных, например в формате отличном от HTML, да или пусть даже в том же самом HTML, но при глобальном изменении дизайна с рефакторингом всего КСС'а , да или даже как вариант вообще без его использования, затронет не только логику представления, но и ту, что в целях экономии 2 Кбайт перенесли на попечительство программисту...

-~{}~ 21.01.08 16:09:

Автор оригинала: atv
Интересная формулировка... Мне реально кажется что ты потерял нить обсуждения и теперь беспорядочно клацаеш по клавиатуре. Значит тебе нечего сказать.
А что мне ещё говорить, если на 1 твой вопрос я уже 2 раза ответил...
Но видишь, почти одинаковые вопросы в мою сторону продолжаются, я отвечаю...
Я на протяжении нескольких страниц хочу услышать что-нибудь новое, а не спорить на форуме с теми, для кого это хобби.
 

Фанат

oncle terrible
Команда форума
такие дискуссии были бы куда полезнее, если бы их участники не переходили на личности.
если бы при обоюдном непонимании были ориентированы на поиск взаимопонимания. а не наоборот
 

atv

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

да или пусть даже в том же самом HTML, но при глобальном изменении дизайна с рефакторингом всего КСС'а
Верстальщик правит CSS, не меняя при этом имена классов, а зачем, если количество состояний не изменилось.

да или даже как вариант вообще без его использования
Верстальщик правит XSL шаблон. Стили из CSS файла переносит непосредственно в XSL шаблон.

затронет не только логику представления, но и ту, что в целях экономии 2 Кбайт перенесли на попечительство программисту...
Не затронет. Только при изменении функциональности, например добавлении ещё одного статуса в моём предыдущем примере.
 

dark-demon

d(^-^)b
Фaнaт, в том-то и дело, что это два разных шаблона: "выводим информацию о книге" и "выводим информацию о том, что книг нет". в зависимости от переданных данных выводится либо один шаблон, либо другой, либо оба, либо ни один из них.
 

Фанат

oncle terrible
Команда форума
atv
А вот фишер придерживается интересной точки зрения.
Он считает, что шаблоном должен быть блиц (только блоки), который верстает верстак. именно верстает, а не программирует.
а при необходимости отитерировать новый блок, он свистит программилу, который слушает задание и пишет код-обработчик.

говорит, что это очень эффективно при работе над большими проектами.

-~{}~ 21.01.08 16:20:

если я правильно его понял, разумеется!

-~{}~ 21.01.08 16:21:

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