Noe Misael Nieto Arroyo wrote:
> 
> Hi.
> 
> I'm working with diazo and I want to do some sort of if-then-else
> structure.
> But i don't know how to do it.
> 
> Currently, what I do is this:
> 
>     <!-- Stuff that happens on all pages -->
>     <xi:include href="rules-common.xml" />
>     <!-- Stuff that happens on Plone's Documents -->
>     <rules css:if-content="body.portaltype-document">
>       <xi:include href="rules-document.xml" />
>     </rules>
>     <!-- Stuff that happens on Plone's Collection Views -->
>     <rules css:if-content="body.portaltype-topic">
>       <xi:include href="rules-topic.xml" />
>     </rules>
> 
> What I want to do is this:
> 
> Include rules-common.xml for all pages.
> 
> If the page is a Plone Document, load rules-document.xml
> if the page is a Collection view, load rules-topic.xml
> otherwise, load a rules-generic.xml
> 
> How can I achieve this on xdv/Diazo?
> 

If/elif/else doesn't really work well with xml - you see the same problem
with ZPT.

One solution might be to move your tests to xsl variables (remember to
include the xsl namespace at the top.):

<xsl:variable name="document" css:select="body.portaltype-document"/>

then use the variable like:

<rules if-content="$document">
...
</rules>
</rules if-content="not($document)">
...
</rules>

I've not actually tried it so I'm not certain it will work, but I should be
able to fix the compiler if it doesn't. The <xsl:variable> elements will
need to be in the top level of the rules file (and not xincluded files).

Laurence
-- 
View this message in context: 
http://plone.293351.n2.nabble.com/xdv-diazo-and-if-else-switch-conditional-structures-tp5986122p5987065.html
Sent from the Product Developers mailing list archive at Nabble.com.
_______________________________________________
Product-Developers mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/product-developers

Reply via email to