[python] ZTP - header - foother
ViNiL
vinil na zagamma.cz
Pátek Únor 13 12:20:58 CET 2004
jose007 na centrum.cz napsal(a):
> Zdravim,
> po precteni nekolika clanku o Zope jsem se rozhodl jej vyzkouset a pripadne trochu naucit.
> Po stahnuti zope booku jsem si zkousel ruzne priklady, pri zkouseni prikladu ZopeZOO, jenz je
> implementovan pomoci DTML metod, jsem si jej chtel zkusit prepsat do ZPT, ale zjiztil jsem, ze nevim
> jak vytvorit page header a page footer, jelikoz z definice ZPT jsem pochopil ze jednotlive sablony musi byt
> validni XML. Problem je v tom, ze mi v sablone header zustavaji otevrene tagy hrml a body, ktere se uzavrou az sablone footer.
> Rad bych tedy poprosil o vysvetleni politiky ZPT a jak se takovato separace provadi v ZPT. Predem dekuji.
ZPT vychazi z myslenky spoluprace webdesignera (graficky truhlik, co
nerozumi programovani) a webprogramatora (zopi truhlik, co nerozumi
grafice).
1) Jednoduche reseni
ZPT vychazi vzdy z HTML stranky designerova navrhu, programator se jen
postara a funkcni casti. Neni zde tedy misto pro header a footer, nebot
o jednotnost vzhledu se stara designer (vselijake graficke HTML tvorice
umoznuji nadefinovat zkladni vzhled vyrabenych stranek a kdyz ten se
zmeni, tak designer jen necha pregenerovat stare stranky do noveho designu).
2) "Profi" reseni
Pouziva se treba v CMF Plone. ZPT jsou take cele HTML stranky, ale
programator zajisti, aby se patricne casti (zacatky a konce v pripade
header a footer ;-) nahradily expanzi patricneho makra. Makra jsou pak
ZPT, obvykle prazdne HTML stranky, ktere jen definuji nejakou
funkcionalitu. V Plone je vlastne jakasi indexova ZPT, ktera vytvari
zakladni strukturu HTML stranky a v ruznych casti se expanduji makra
vytvarejici ten vlastni obsah, podle uzivatele, mista kde je a co tam
dela. Umoznuje to tedy naprostou skinovatelnost (i funkcionalni). Jen
zacatecniky tento "Zope buchar" ponekud odrazuje ;-)
Hm, tak nevim, jestli se mi to podarilo vysvetlit.
--
Vladimír Linek <vinil na zagamma.cz>
Zagamma Labs
Další informace o konferenci Python