[Zope-dev] Re: Zope-Dev digest, Vol 1 #1682 - 11 msgs

Godefroid Chapelle gotcha@swing.be
Fri, 10 May 2002 10:36:00 +0200


At 06:13 10/05/2002, zope-dev-request@zope.org wrote:
>'else' is tricky within the block oriented structure of anything XML-ish,
>because of the concept of 'well-formedness'.  The 'if' statement would have
>to be singly wrapped, and the else block wrapped separately, looking at
>least somewhat awkward any way you go about it.  The best I can come up with
>in my mind is this, in order to have the 'else' pick up on the condition
>expressed in its surrounding container.  But, yuck:
>
><if ...>
>  true stuff
>  <else>
>   false stuff
>  </else>
></if>
>
>
>A good page template way is something like this:
>
><tal:if condition="myTalesExpression">
>  truth
></tal:if>
><tal:else condition="not:myTalesExpression">
>  false
></tal:else>
>
>The 'not' TALES namespace is valuable.  The downside is that you evaluate
>the expression twice.  A good way to work within this is something that I
>did earlier today, outside of this conversation, where I evaluate an
>expression earlier and assign it to a variable:
>
><div id="edit-area"
>      tal:define="editItems python:here.getMenuItem(...)">
>
>   <h3>Edit Menu Items</h3>
>   <form action="Delete" method="post" name="actForm"
>         tal:condition="editItems">
>
>      ... (form and table elements, and a loop over editItems
>           contained in here if there were results) ...
>
>   </form>
>
>   <div class="emph"
>        tal:condition="not:editItems">
>    No menu items available
>   </div>
>
></div>
>
>
>This is something I did a lot in DTML too, setting a search result to either
>a global variable, or inside of a large <dtml-let> namescape


It is maybe not clear that the above is really usable and allowed. I do not 
know how and where to stress that the tal: marked tags are underdocumented 
what a pity.

I have already tried : 
http://www.zope.org/Documentation/ZopeBook/AdvZPT.stx#3-44

Sorry that I am not able to explain it better...
--

Godefroid Chapelle

BubbleNet sprl
rue Victor Horta, 18 / 202
1348 Louvain-la-Neuve
Belgium

Tel + 32 (10) 459901
Mob + 32 (477) 363942

TVA 467 093 008
RC Niv 49849