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

Last change on this file since 4883 was 4883, checked in by kjdon, 21 years ago

moved a lot of the classifier stuff into classifiertools.xsl so that it can be shared between interfaces

  • Property svn:keywords set to Author Date Id Revision
File size: 6.0 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 <table width='537'>
36 <tr valign='top'>
37 <xsl:for-each select='classifierNode'>
38 <xsl:apply-templates select='.' mode="horizontal"><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates>
39 </xsl:for-each>
40 </tr>
41 </table>
42 <table width='537'>
43 <tr valign='top'>
44 <xsl:for-each select='classifierNode'>
45 <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>
46 </xsl:for-each>
47 </tr>
48 </table>
49 </xsl:when>
50 <xsl:otherwise>
51 <!-- there were no classifier nodes -->
52 <table width='537'>
53 <xsl:for-each select='documentNode'>
54 <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>
55 </xsl:for-each>
56 </table>
57 </xsl:otherwise>
58 </xsl:choose>
59 <xsl:call-template name="greenBar"/>
60 </xsl:template>
61
62 <xsl:template match="classifier" mode="default"> <!-- the default -->
63 <xsl:param name="collName"/>
64 <xsl:param name="serviceName"/>
65 <table width='537'>
66 <xsl:for-each select='classifierNode|documentNode'>
67 <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>
68 <xsl:if test='name()="classifierNode"'>
69 <!--recurse into the children-->
70 <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>
71 </xsl:if>
72 </xsl:for-each>
73 </table>
74 <xsl:call-template name="greenBar"/>
75 </xsl:template>
76 <!-- recursively process all nodes and documents -->
77
78 <xsl:template match="documentNode">
79 <xsl:param name="collName"/>
80 <td><a href="{$library_name}?a=d&amp;c={$collName}&amp;d={@nodeID}&amp;dt={@documentType}"><xsl:apply-templates select="." mode="displayNodeIcon"/></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
81 </xsl:template>
82
83 <!-- icon + title template-->
84 <xsl:template match="classifierNode">
85 <xsl:param name="collName"/>
86 <xsl:param name="serviceName"/>
87 <td><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><img src='interfaces/default/images/bshelf.gif' border='0' width='20' height='16' /></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
88 </xsl:template>
89
90 <!-- the title is a link: an alternative template -->
91 <xsl:template match="classifierNode" mode="horizontal">
92 <xsl:param name="collName"/>
93 <xsl:param name="serviceName"/>
94 <xsl:choose>
95 <xsl:when test="classifierNode|documentNode"><!-- the opened one -->
96 <td><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
97 </xsl:when>
98 <xsl:otherwise>
99 <td><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></td>
100 </xsl:otherwise>
101 </xsl:choose>
102 </xsl:template>
103
104
105<!-- processing for the recursive bit -->
106<!-- if interleave=true, process all child nodes and documents, else just do nodes -->
107
108
109 <xsl:template match="classifierNode" mode="process-all-children">
110 <xsl:param name="collName"/>
111 <xsl:param name="serviceName"/>
112 <!-- only do this if there are children -->
113 <xsl:if test="classifierNode|documentNode">
114 <td>
115 <table>
116 <xsl:for-each select='classifierNode|documentNode'>
117 <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>
118 <xsl:if test='name()="classifierNode"'>
119 <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:apply-templates></tr>
120 </xsl:if>
121 </xsl:for-each>
122 </table>
123 </td>
124 </xsl:if>
125 </xsl:template>
126
127</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.