Contact Us
24/7
Python BlogDjango BlogBig DataSearch for Kubernetes AWS BlogCloud Services

Blog

<< ALL BLOG POSTS

How to use XSLT in Diazo

|
December 4, 2014

XSLT in DiazoWhat is XSLT?

It stands for 'eXtensible Stylesheet Language Transformations'. It is how Diazo works behind the scenes - all rules you write are actually translated to XSLT.

Why is XSLT needed?

It may not be needed at all, depending on how complex the selectors need to be in your Diazo rules. If you need to do anything involving loops or if statements, you'll need some XSLT.

Examples

<replace css:theme-children=".mainNav">
 <xsl:for-each css:select="#portal-globalnav > li">
   <li class="divider"></li>
   <xsl:apply-templates css:select="li.plain, li.selected"/>
 </xsl:for-each>
 <li class="divider"></li>
</replace>

This grabs each list item from Plone, and inserts a list item as a divider between each one. Note that the css: prefix can also be added to the XSLT within Diazo rules to use CSS style selectors.

<xsl:for-each css:select="#portal-personaltools a">
 <li>
   <xsl:copy-of select="current()"/>
 </li>
</xsl:for-each>

This pulls all links from the user dropdown and puts them into a list, instead of having them in a definition list.

Warnings

More examples and resources

I hope this gives you a brief understanding of how to utilize XSLT in your Diazo theme. You can find more examples and resources at:

 

Like what you've read? You can see more trainings like this one at sixfeetup.com/company/plone/plone-training. Also, be sure to sign up for our weekly Plone & Python How-To digests.

Tell us about the goals you’re trying to accomplish.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.