объект инклудящий файлы #2, MVC и как все сделать

Я пользуюсь статическими методами класса Tpl, на мой взгляд просто замечательно:
<? Tpl::put('somevar'); ?> <-- echo
<? foreach (Tpl::get('somevar') as $some): ?> ....
<? Tpl::label('News.List.Item.Posted'); ?> <-- вывод "языкозависимого" контента в соответствии текущего языка
<? Tpl::link('some/path/blah.html'); ?> <-- формирование ссылки с учетом хоста, "пути" от корня, и текущего языка (например /ru/some/path/blah.html)
<? Tpl::media('Script/Public/Primary.js'); ?>
<? Tpl::media('Style/Default.css'); ?> просто резольвер для формирования урла, такого же как Tpl::link но без учета языка, + там дополнительные пути.. Как по мне удобно :p.

-~{}~ 16.08.07 20:23:

mishco
Напрягает только немалое количество колбасы между приходом макета от верстальщиков и становления его в качестве полноценного шаблона)
 

kpp

Новичок
пользуюсь статическими методами класса Tpl
Не совсем понял что делает этот код... есть ссылка на статью какую-нибудь по этой теме? Или хотя бы в трёх словах об этом способе построения страниц. Хотелось бы почитать про какой-нибудь иной вариант, нежели мой...
 

kpp

Новичок
HraKK
Что за статические методы класса Tpl?

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

Кстати, вот что-то похожее на то, о чём я говорил http://phpclub.ru/detail/article/2002-11-25#part_4_1


Вот ещё XXX
 

cDLEON

Онанист РНРСlub
mishco
Помоему не удобно) Слишком много проблем потом с шаблонами....
 
HraKK
Ну это типо этап. От смартиподобных шаблонизаторов такой подход мало чем отличается, вот подумываю сделать что-то с DOM, тогда вообще в макетах от верстальщиков мало что менять прийдется. Но тут уже мороки много с реализацией :).

-~{}~ 17.08.07 10:49:

А чем вы пользуетесь? HraKK я так понимаю Quicky, а cDLEON?
Просто опять же, завязываться на DOM не совсем хорошо, так как шаблоны могут быть не только x(html|ml), хотя если все грамотно продумать...

-~{}~ 17.08.07 12:44:

cDLEON
"много проблем потом с шаблонами" в любом случае, ИМХО. Чем мой подход отличается от тех же Zend_View например, или от {$blah} ? Больше буквочек меньше скобочек?

-~{}~ 17.08.07 18:15:

Мда... Я то думал мне ответят...
 

cDLEON

Онанист РНРСlub
mishco
Ну меня не было. Сори)
Вообще то у меня свой шаблонизатор с минимумом наворотов.
Ассигны {ASSIGN} и блоки
<!BLOCKNAME></!BLOCKNAME> - если блок с этим именем включён
<#BLOCKNAME></#BLOCKNAME> - если блок с этим именем выключен
"много проблем потом с шаблонами" в любом случае, ИМХО. Чем мой подход отличается от тех же Zend_View например, или от {$blah} ? Больше буквочек меньше скобочек?
Ну например даже я не совсем понимаю где и что эти ф-и делают для определённого шаблона. Нужно лезть в код и разбираться. Либо каждый блок делать с комментами. А что делать с таким шаблоном дизайнеру???
 

AmdY

Пью пиво
Команда форума
Больше буквочек меньше скобочек - да, желательно чтобы в шаблоне не прибегали к грамоздким структурам.
Но главная проблемма в том, что шаблон написан на РНР, если в шаблоне синтаксическая ошибка, будет крах скрипта.
Zend_View - это не совсем шаблонизатор.
 
kpp
бред то что ты выше писал ;) а смарти лучший вариант если не способен на большее, лучше бы юзал php чем то что юзаешь.
cDLEON
это так кажется, там имплементации по две строки для каждой функции. грубо говоря почти все они делают одно и то же -- формируют полный путь или урл для файлов лежащих в определенных каталогах проекта:
Код:
Project/
           Content/
                        Media/
                                 Style/
                                 Script/
                                 Template/
                                 Image/
                        Laguage/
                                     Ru/
                                     Ua/
                                     En/
...
-~{}~ 18.08.07 14:44:

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

-~{}~ 19.08.07 15:18:

Помоему я понял где счастье, XSLT :D. Использование XInlude & XPointer дает возможность включать шаблон нужные блоки из других шаблонов, блоки можно не выносить в отдельный файл, и шаблон с XSLT можно по прежнему открывать и просматривать в браузере не задействуя сервер, хех, осталось посмотреть как с xsl на хостингах..

-~{}~ 19.08.07 18:49:

*Language
 

cDLEON

Онанист РНРСlub
mishco
В этом то и вся и проблема. Дизайнер (по определению) должен не только уметь нарисовать конечный дизайн. Но и уметь обставить чужое двигло разобравшись со всеми насущими проблеммами. Поэтому шаблоны нужно делать как можно проще (ИМХО). Потому как я, например, ненавижу делать чужую работу. Мне программинга хватает.

-~{}~ 20.08.07 04:58:

А для того действия, которое ты сейчас говоришь хватит и обычного модифицирования КСС файла. В нём можно менять практически всё не трогая вёрстку. ( Если конечно всё правильно сверстать)
 

AmdY

Пью пиво
Команда форума
Автор оригинала: HraKK
Ах неужели? А в смарти не будет?
Насколько я помню, не будет.
Смарти выдаст вместо шаблона сообщение об ошибке в данном шаблоне.
 

HraKK

Мудак
Команда форума
AmdY
Все равно это будет юзер калл Парсе еррор
 

AmdY

Пью пиво
Команда форума
Эту ошибку генерит шаблонизатор, а не РНР.
index.tpl
-------------------
hello<br/>{include file='bad.tpl'}<br/>buy

Выведет hello<br/>+сообщение об ошибке+<br/>buy
P.S. кажись так, проверать не хочется
 

AmdY

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