Тюнниг php как шаблонизатора.

AmdY

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

HraKK

Мудак
Команда форума
Ирокез
Архитектура тут не причем, совершенно. Ладно, я пока не буду спорить, давай как-то чуть позже просто предложи шаблон и реализуй его на своей системе, я на своей и так посмотрим, какой подход имеет какие плюсы.
 

Ирокез

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

Fortop

Новичок
AmdY
Кто мешает разместить верстку таблицы в подшаблоне?
 

Ирокез

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

для отрисовки ее тебе достаточно вызвать <?=Render::Template('table.tpl',$Columns,$Rows,$Params)?> где, до этого ты должен будешь определить соответсвующие переменные, вроде все хорошо?
собственно и в моем варианте все будет выглядеть

<widget:table>
<table:column ...>
<table:column ...>
<table:rows ...>
</widget:table>

Но теперь дизайнеру приспичило таблицу сделать не 100%, а 600px, в твоем варинате, надо лезть во вью разбираться в параметрах и устанавливать $Params['width'] = '600px';

в моем <widget:table style='width: 600px;'>...

еще вариант, надо вывести содержимое подшаблона в диве с закругленными краями
<div ...> <b class=...>
<?=Render::Template('some.tpl')?>

куча кода, одним словом

в моем варинате
<widget:frame>
<?=template('some.tpl')?>
</widget:frame>

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

<? if(allow(...)): ?>
<div ...> <b class=...>
<?=Render::Template('some.tpl')?>

в моем варианте
<widget:frame policy='...'>
 

HraKK

Мудак
Команда форума
Нееееее, неееееееее, никаких хелперов рисующих таблицы, бог мой, аааааааааааа, спаси и сохрани, я на*****************лся с ними уже достаточно в осКоммерсе и тебе того же не желаю!

Еще раз повторяю мне ВЕСЬ html код готовый дает кодер, все! Мне остается лишь навешать эвенты. И да, это не сайты визитки, я ими не занимаюсь. Даже админку мне дают готовую - я вешаю ивенты и все. Все изменения дизайна происходят в CSS. Хорошая верстка слоями с ООП-наследованием решает. Если надо что-то уж из кода заменить - то это вполне может сделать кодер. А делать два раза одну и туже работу(вначале верстальщик верстает, а потом ты переводишь хтмл в какой-то свой формат) я не согласен. Б**, еще я таблицы не рисовал с помощью php...
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: HraKK
Нееееее, неееееееее, никаких хелперов рисующих таблицы, бог мой, аааааааааааа, спаси и сохрани, я на*****************лся с ними уже достаточно в осКоммерсе и тебе того же не желаю!
Значит как я и говорил, разность в выполняемых задачах, ограничивает требования к шаблонизации.

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

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: HraKK
А делать два раза одну и туже работу(вначале верстальщик верстает, а потом ты переводишь хтмл в какой-то свой формат) я не согласен. Б**, еще я таблицы не рисовал с помощью php...
Нет все проще верстальщик верстает элемент, таблицу, меню и т.д. никакого формата нет
listview.tpl - тут кодер сделал верстку элемента, сов всякими пэйджигами, сотрировкой, фильтрами и т.д.

у себя в шаблоне я всталяю
<widget:listview>
<listview:column> - определяю колонки
<listview:rows> - строки

соответственно в этом месте мне встаивтся список.

если дизайн listview поменяется, то мне абсолютно без разницы у меня в шаблоне ничего не изменится
 

HraKK

Мудак
Команда форума
Я не представляю задачу когда надо таблицы рисовать в php.

-~{}~ 19.02.10 15:58:

И зачем? Почему не взять просто страницу и не отрисовать ее?

Нагляднее, быстрее, удобнее.


И дальше что, как часто ты такое используешь? А если надо таблицу в таблице? А? А если верстка вообще-то на слоях? Что дальше? А если слои в таблице? Или таблицы в списках? А если не стандартная таблица а например с th, а если надо через раз колонку сделать другого цвета, а если 7 колонку надо сделать чуть другой?

-~{}~ 19.02.10 16:02:

Один блин лезет формы рисовать через php, другой уже полез html рисовать...
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: HraKK
Плять, я для кого написал?

Биллинг, Админка, и т.д. это "типичный" сайт?)
)) ок,
вот ссылка


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

При добавлении нового поля иы пойдешь к верстальщику и стоя над душой будешь жадть пока он тебе скопирует <tr><td>, в которую ты потом вставишь <?=...?>
 

HraKK

Мудак
Команда форума
Чтоб ответить на этот вопрос, мне надо знать логику приложения, что откуда берется, и что из-за чего меняется. А ты пока на мои по отвечай)

-~{}~ 19.02.10 16:09:

Что-то эта картинка мне ExtJS напоминает)

-~{}~ 19.02.10 16:10:

При добавлении нового поля иы пойдешь к верстальщику и стоя над душой будешь жадть пока он тебе скопирует <tr><td>, в которую ты потом вставишь <?=...?>
а мне лень сделать ctrl+c + ctrl+v?
и зачем ее вставлять через <?=...?>?


А самое главное - я одно не пойму чем твой метод отличается От

PHP:
<?=wRenderTable::template('table.tpl')->setColumn(6)->setRow(3)->appendClass('someClass')->appendStyle('width:600px');?>
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: HraKK
>> Я не представляю задачу когда надо таблицы рисовать в php.

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


>> И зачем? Почему не взять просто страницу и не отрисовать ее?
это хорошо, когда ты знаешь состав информации и работаешь по ТЗ, где четко написано, что на данной странице, надо только одна таблица с 4-мя ячейками и тремя строками.

>> И дальше что, как часто ты такое используешь?
всегда

>> А если надо таблицу в таблице?
без проблем $Row[0][1] = new Widget::Table(...); соответственно <?=$Row[0][1]?> и перегрузка IWidget::__toString()

>> А если верстка вообще-то на слоях? Что дальше?
>> А если слои в таблице? Или таблицы в списках? А если не стандартная таблица а например с th, а если надо через раз колонку сделать другого цвета, а если 7 колонку надо сделать чуть другой?
мой варинат не исключает никакого из твоих вариантов, вот тут правомерный вопрос, а на сколько часто это надо???, для исключительных случаев можно и шаблон отрисовать. но этих случаев не очень много

-~{}~ 19.02.10 17:18:

Автор оригинала: HraKK

>> Что-то эта картинка мне ExtJS напоминает)

это далеко не extJS

>> а мне лень сделать ctrl+c + ctrl+v?
>> и зачем ее вставлять через <?=...?>?
судя по тому что ты гворишь что тебе приносят дизайн, а ты подвешиваешь события, то да ))


>> А самое главное - я одно не пойму чем твой метод отличается От

PHP:
<?=wRenderTable::template('table.tpl')->setColumn(6)->setRow(3)->appendClass('someClass')->appendStyle('width:600px');?>

эээ. кто-то вроде говорил что он не использует хелперы для отрисовки таблицы?

и это хорошо еще если ты пишешь phpdoc под все -> тогда как-то облегчит понимание и что будет если я укажу
PHP:
<?=wRenderTable::template('____my_tempale.tpl')->setColumn(6)->setRow(3)->appendClass('someClass')->appendStyle('width:600px');?>
там тоже эти свойства методы будут?


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

Fortop

Новичок
Но теперь дизайнеру приспичило таблицу сделать не 100%, а 600px, в твоем варинате, надо лезть во вью разбираться в параметрах и устанавливать $Params['width'] = '600px';
Не-не-не. Только стили в CSS. Максимум что можно добавлять в параметры это классы, и то без фанатизма.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: Fortop
Не-не-не. Только стили в CSS. Максимум что можно добавлять в параметры это классы, и то без фанатизма.
круто, т.е. заменив стиль в ксс, ты автоматом все таблицы приведешь к 600px )))

а ну да, конечно, можно зафигачить наследование и ввести новый стиль именно для этой таблице в css
 

Fortop

Новичок
Ирокез
У таблиц есть name, id
причем у двух таблиц на одной странице будет разный id
 

HraKK

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

Не-не-не. Только стили в CSS. Максимум что можно добавлять в параметры это классы, и то без фанатизма.
++


я не рисую таблицы в пхп, есть шаблон, который рисует колонки, строки, пейджиг сортировку и т.д., есть css для этого шаблона
Ты их рисуешь, я уже натыкался с этим в osCommerce с меня хватит, повторюсь. Дашь после себя такой шаблон другому и попроси его переделать кое-что не явное, посмотришь как он тебя будет ругать)

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

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: Fortop
Ирокез
У таблиц есть name, id
причем у двух таблиц на одной странице будет разный id
точно, т.е. раздуванием css мы придем к тому-же самому, нежели (соглашусь с термином "отрисовкаой") просто в процессе формирования подставится width: ...

сообственно у каждого свои подходы
 

HraKK

Мудак
Команда форума
Раздувая HTML ты увеличиваешь время загрузки страницы.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автор оригинала: HraKK
>> Ты их рисуешь, я уже натыкался с этим в osCommerce с меня хватит.
Ок, пусть будет отрисовка )), osCommerce жестокий код


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

согласен, кому как удобней, таки, а что по компилируемости? )

-~{}~ 19.02.10 17:36:

Автор оригинала: HraKK
Раздувая HTML ты увеличиваешь время загрузки страницы.
Кстати код раздуется ровно не намного
<table id='IDDDDD'> + правка ксс

против

<table style='width...'>

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

+ Ни один из приведенных вами аргументов не исключен в моем подходе.
 
Сверху