You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by th...@apache.org on 2005/07/28 01:23:45 UTC
svn commit: r225651 -
/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/prepare.xhtml.xsl
Author: thorsten
Date: Wed Jul 27 16:23:41 2005
New Revision: 225651
URL: http://svn.apache.org/viewcvs?rev=225651&view=rev
Log:
fixed the multiple include of head templates calls and as well the css include. Now even if we use twice a contract that is requesting {contract-name}-head it just get called once. The same is true for forrest:css. If you use two times the same @url it still only get includes once.
Modified:
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/prepare.xhtml.xsl
Modified: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/prepare.xhtml.xsl
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/prepare.xhtml.xsl?rev=225651&r1=225650&r2=225651&view=diff
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/prepare.xhtml.xsl (original)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/prepare.xhtml.xsl Wed Jul 27 16:23:41 2005
@@ -22,6 +22,8 @@
<xsl:include href="hooksMatcher.xsl"/>
<xsl:param name="request"/>
<xsl:param name="forrestContext" select="'test'"/>
+ <xsl:key name="head-template" match="forrest:property[@format='xhtml']" use="@name" />
+ <xsl:key name="css-includes" match="forrest:css" use="@url" />
<xsl:template match="/">
<!--Create the final stylesheet (alias:)-->
<alias:stylesheet version="1.0">
@@ -33,7 +35,7 @@
<alias:param name="path"/>
<xsl:comment>All xhtml head elements requested by the forrest:template</xsl:comment>
<alias:template name="getHead">
- <xsl:for-each select="/*/forrest:properties/*[@head='true']">
+ <xsl:for-each select="/*/forrest:properties/*[@head='true' and count(. | key('head-template', @name)[1]) = 1]">
<alias:call-template name="{@name}-head"/>
</xsl:for-each>
</alias:template>
@@ -71,7 +73,7 @@
<xsl:template match="forrest:view">
<xsl:apply-templates select="*[local-name()!='css']"/>
</xsl:template>
- <xsl:template match="forrest:css[@url]">
+ <xsl:template match="forrest:css[@url and count(. | key('css-includes', @name)[1]) = 1]">
<link rel="stylesheet" type="text/css">
<xsl:attribute name="href">{$root}skin/<xsl:value-of select="@url"/>
</xsl:attribute>