Okay, I wanted to blog about that yesterday, but I ended up the site restyle at 4am and also if I was able to sleep only at 6am, I wasn’t going to blog with that insomnia. I wish to thank haran who doesn’t know me 😉 He wrote some of the most beautiful webdesigns for OSWD, and are his most of the ones I used for my site (and its one of his heavy elaborated the one used for Ziotto website -note: it’s an Italian crazy and fun site of some friends of mine, and me, too :P-).
This time using XSL I was able to abstract most of the work so that I just had to change a base template file to do most of the job, but I still have some problems with XSL that I want to nail down, for who wants to help me, in the second page I’ll show what I’m trying to do and does not work as I expected.. if you’re an XSL expert, please help me :‘)
With the main template that renders the base page list, I have also a template that designs the “blocks” of the site (the box you see with content). They are declared this way:
<!-- simple block --> <xsl:template name="block" match="block"> <xsl:param name="id" select="@id" /> <xsl:param name="title" select="@title" /> <xsl:param name="content" select="./" /> <xhtml:div class="darkerBox"> <xsl:attribute name="id"><xsl:value-of select="$id" /></xsl:attribute> <xhtml:h1><xsl:value-of select="$title" /></xhtml:h1> <xsl:apply-templates select="$content" /> <xhtml:br /> </xhtml:div> </xsl:template>
Originally, I just used a matching template for
<block> tags and then repeated the
<div> thing on every page, but that was not fine as I had to change all the stylesheets every time I changed template.
With the params, I can just call the named template so for example to get articles I use:
<xsl:template match="articles"> <xsl:call-template name="block"> <xsl:with-param name="id">articles</xsl:with-param> <xsl:with-param name="title">Articles' list</xsl:with-param> <xsl:with-param name="content" select="./" /> </xsl:call-template> </xsl:template>
and that works fine, as far as the
<articles> tag contains block-like formatting.
For the downloads page instead I wanted to do something different, and having the content parameter be created not only by templates:
<xsl:with-param name="content"> <xhtml:ul> <xsl:apply-templates /> </xhtml:ul> </xsl:with-param>
but this does not work at all.
Am I missing something basic here? Every suggestion is welcome 🙂