hi anonymous fowlersomething, fowlertrainer@anonym.hu schrieb:
Hello !
Sorry for lamer question. I has been used DTML, and some things are don't know in ZPT.
How to I replace this DTML pseudo-code with ZPT:
1.)
=== DTML === <dtml-if logined=1> <table>SomeTable1</table> <dtml-else> <table>SomeTable2</table> </dtml-if>
either use 2 PageTemplates and a "wedge" script to call one or the other (depends on the content) or use <table tal:condition ...> or use the same table if the structure is compareable and use different data source.
==ZPT== ??????
2.) How to define multiple (array) variable in zpt ? Like this:
MyArray=[['A',1],['B',2],['C',3]]
You better dont do it. ZPT is meant to be a display layer and _not_ a layer for logic. However you could to that, but you are highly discouraged to do so unless you have reay strong requirements (and I doubt that is the case) You are better of defining your logic outside in one or a couple of python script object you call or turn it around and call the ZPT from python script.
3.) How to I raise and catch exception with ZPT ?
you can somewhat catch but not really raise. ITs for the same reason I mentioned above.
In this time I use Scripts like this to replace dtml elements, but this way is same as normal web-scripting (mod_php/py), not zope-kind. ==script1== l=[] if logined: l.append('<table>SomeTable1</table>') ... else: l.append('<table>SomeTable2</table>') ... return("\n".join(l))
... tal:replace structure python:here.script1>
You dont do this. Let HTML be in the Template where it belongs. You see the template as a draft of the finally displayed page. TAL is used to change part of the DOM to reflect your data and such. TAL has tal:condition, tal:contents, tal:attributes and others for this task. There is METAL to help you assembling your Templates from bigger pieces and have reuseable HTML parts. Read the references on TAL carefully and dont try to follow too close the examples of the DTML to ZPT liga. Regards Tino Wildenhain