source: trunk/gsdl3/web/interfaces/default/transform/classifiertools.xsl@ 8640

Last change on this file since 8640 was 8640, checked in by nzdl, 19 years ago

* empty log message *

  • Property svn:keywords set to Author Date Id Revision
File size: 6.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:java="http://xml.apache.org/xslt/java"
5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
6 extension-element-prefixes="java util"
7 exclude-result-prefixes="java util">
8
9 <xsl:template match="classifier">
10 <xsl:param name="collName"/>
11 <xsl:param name="serviceName"/>
12 <xsl:variable name="cl_name"><xsl:value-of select="@name"/></xsl:variable>
13 <xsl:choose>
14 <xsl:when test="/page/pageResponse/service/classifierList/classifier[@name=$cl_name]/@horizontalAtTop">
15 <xsl:apply-templates select="." mode="horizontal-at-top">
16 <xsl:with-param name="collName" select="$collName"/>
17 <xsl:with-param name="serviceName" select="$serviceName"/>
18 </xsl:apply-templates>
19 </xsl:when>
20 <xsl:otherwise>
21 <xsl:apply-templates select="." mode="default">
22 <xsl:with-param name="collName" select="$collName"/>
23 <xsl:with-param name="serviceName" select="$serviceName"/>
24 </xsl:apply-templates>
25 </xsl:otherwise>
26 </xsl:choose>
27 </xsl:template>
28
29
30 <xsl:template match="classifier" mode="horizontal-at-top">
31 <xsl:param name="collName"/>
32 <xsl:param name="serviceName"/>
33 <xsl:choose>
34 <xsl:when test="classifierNode">
35 <div align='left'>
36 <xsl:for-each select='classifierNode'>
37 <xsl:apply-templates select='.' mode="horizontal"><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates>
38 </xsl:for-each>
39 </div>
40 <table width='100%'>
41 <tr valign='top'>
42 <xsl:for-each select='classifierNode'>
43 <xsl:apply-templates select='.' mode='process-all-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates>
44 </xsl:for-each>
45 </tr>
46 </table>
47 </xsl:when>
48 <xsl:otherwise>
49 <!-- there were no classifier nodes -->
50 <table width='100%'>
51 <xsl:for-each select='documentNode'>
52 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
53 </xsl:for-each>
54 </table>
55 </xsl:otherwise>
56 </xsl:choose>
57 <xsl:call-template name="dividerBar"/>
58 </xsl:template>
59
60 <xsl:template match="classifier" mode="default"> <!-- the default -->
61 <xsl:param name="collName"/>
62 <xsl:param name="serviceName"/>
63 <table width='100%'>
64 <xsl:for-each select='classifierNode|documentNode'>
65 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
66 <xsl:if test='name()="classifierNode" and (child::classifierNode or child::documentNode)'>
67 <!--recurse into the children-->
68 <tr valign='top'><td><xsl:text> </xsl:text></td><xsl:apply-templates select='.' mode='process-all-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
69 </xsl:if>
70 </xsl:for-each>
71 </table>
72 <xsl:call-template name="dividerBar"/>
73 </xsl:template>
74 <!-- recursively process all nodes and documents -->
75
76 <xsl:template match="documentNode">
77 <xsl:param name="collName"/>
78 <xsl:param name="serviceName"/>
79 <td><a href="{$library_name}?a=d&amp;c={$collName}&amp;d={@nodeID}&amp;dt={@docType}&amp;p.a=b&amp;p.s={$serviceName}"><xsl:apply-templates select="." mode="displayNodeIcon"/></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
80 </xsl:template>
81
82 <!-- icon + title template-->
83 <xsl:template match="classifierNode">
84 <xsl:param name="collName"/>
85 <xsl:param name="serviceName"/>
86 <td width='30'><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&amp;rt=r&amp;s=<xsl:value-of select='$serviceName'/>&amp;c=<xsl:value-of select='$collName'/>&amp;cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute><xsl:call-template name="bookshelfimg"/></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
87 </xsl:template>
88
89 <!-- the title is a link: an alternative template -->
90 <xsl:template match="classifierNode" mode="horizontal">
91 <xsl:param name="collName"/>
92 <xsl:param name="serviceName"/>
93 <xsl:choose>
94 <xsl:when test="classifierNode|documentNode"><b><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/><xsl:text> </xsl:text></b></xsl:when>
95 <xsl:otherwise>
96<a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&amp;rt=r&amp;s=<xsl:value-of select='$serviceName'/>&amp;c=<xsl:value-of select='$collName'/>&amp;cl=<xsl:value-of select='@nodeID'/></xsl:attribute><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></a><xsl:text> </xsl:text></xsl:otherwise>
97 </xsl:choose>
98 </xsl:template>
99
100
101<!-- processing for the recursive bit -->
102<!-- if interleave=true, process all child nodes and documents, else just do nodes -->
103
104
105 <xsl:template match="classifierNode" mode="process-all-children">
106 <xsl:param name="collName"/>
107 <xsl:param name="serviceName"/>
108 <!-- only do this if there are children -->
109 <xsl:if test="classifierNode|documentNode">
110 <td>
111 <table>
112 <xsl:for-each select='classifierNode|documentNode'>
113 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
114 <xsl:if test='name()="classifierNode" and (child::classifierNode or child::documentNode)'>
115 <tr valign='top'><td><xsl:text> </xsl:text></td><xsl:apply-templates select='.' mode='process-all-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
116 </xsl:if>
117 </xsl:for-each>
118 </table>
119 </td>
120 </xsl:if>
121 </xsl:template>
122
123</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.