Index: main/trunk/greenstone3/web/interfaces/oran/style/core.css
===================================================================
--- main/trunk/greenstone3/web/interfaces/oran/style/core.css	(revision 24339)
+++ main/trunk/greenstone3/web/interfaces/oran/style/core.css	(revision 24340)
@@ -650,2 +650,33 @@
 }
 
+/* ------- BROWSE -------*/
+
+ul.childrenlist li {
+list-style-type:none;
+}
+
+/*
+ul#classifierlist,ul#classifiernodelist {
+	list-style-type:none;
+	margin:0;
+	padding:0
+}
+ul#classifierlist li{
+list-style:none;
+margin:0 0 5px 0;
+padding:0;display:block;
+}
+ul#classifiernodelist li{
+list-style:none;
+margin:0;
+padding:5px 0 0 0;
+display:block
+}
+ul.childrenlist{
+list-style:none;
+margin:0;
+padding:0 0 0 20px;
+display:block;
+width:100%
+}
+*/
Index: main/trunk/greenstone3/web/interfaces/oran/transform/classifiertools.xsl
===================================================================
--- main/trunk/greenstone3/web/interfaces/oran/transform/classifiertools.xsl	(revision 24340)
+++ main/trunk/greenstone3/web/interfaces/oran/transform/classifiertools.xsl	(revision 24340)
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:java="http://xml.apache.org/xslt/java"
+  xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
+  extension-element-prefixes="java util"
+  exclude-result-prefixes="java util">
+
+  
+  <xsl:template match="classifier">
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/>
+    <div id="classifiers">
+	<xsl:variable name="cl_name"><xsl:value-of select="@name"/></xsl:variable>
+	<xsl:apply-templates select="." mode="default">
+	    <xsl:with-param name="collName" select="$collName"/>
+	    <xsl:with-param name="serviceName" select="$serviceName"/>
+	</xsl:apply-templates>
+    </div>
+  </xsl:template>
+
+
+  <xsl:template match="classifier" mode="default"> <!-- the default -->
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/>
+    <ul id="classifiernodelist">
+      <xsl:call-template name="processNodeChildren">
+	<xsl:with-param name='collName' select='$collName'/>
+	<xsl:with-param name='serviceName' select='$serviceName'/>
+      </xsl:call-template>
+    </ul>
+  </xsl:template>
+
+  
+  <!-- this is a wrapper node, which the interface can use to add stuff into the query results that isn't part of and doesn't depend on the documentNode template which may come from the collection -->
+  <xsl:template name="documentNodeWrapper">
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/> 
+    <xsl:apply-templates select=".">
+      <xsl:with-param name="collName" select="$collName"/>
+      <xsl:with-param name="serviceName" select="$serviceName"/>
+    </xsl:apply-templates>
+  </xsl:template>
+
+
+  <xsl:template match="documentNode">
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/>
+    <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><xsl:value-of disable-output-escaping="yes"  select="metadataList/metadata[@name='Title']"/>
+	
+    <!-- The berry (optional) -->
+    <td>
+        <xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
+    </td>
+  </xsl:template>
+  
+  
+  <!-- icon + title template-->
+  <xsl:template match="classifierNode">XXXX
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/>
+    <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><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/>
+  </xsl:template>
+  
+
+  <!-- processing for the recursive bit -->
+  <xsl:template match="classifierNode" mode="process-all-children">
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/>
+    <xsl:call-template name="processNodeChildren">
+      <xsl:with-param name='collName' select='$collName'/>
+      <xsl:with-param name='serviceName' select='$serviceName'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  
+  <xsl:template name="processNodeChildren">
+    <xsl:param name="collName"/>
+    <xsl:param name="serviceName"/>
+    <xsl:for-each select='classifierNode|documentNode'>
+      <xsl:choose>
+	<xsl:when test="name()='documentNode'">
+	  <li><table><tr>
+		<xsl:call-template name="documentNodeWrapper">
+		  <xsl:with-param name='collName' select='$collName'/>
+		  <xsl:with-param name='serviceName' select='$serviceName'/>
+		</xsl:call-template>
+	      </tr></table>
+	  </li>
+	</xsl:when>
+	<xsl:otherwise>
+	  <!--<li>--><table><tr>
+		<xsl:apply-templates select='.'>
+		  <xsl:with-param name='collName' select='$collName'/>
+		  <xsl:with-param name='serviceName' select='$serviceName'/>
+		</xsl:apply-templates>
+	      </tr></table>
+	  <!--</li>-->
+	  <xsl:if test="child::classifierNode or child::documentNode">
+	    <!--recurse into the children-->
+	    <!--<li>--><ul class="childrenlist">
+		<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>
+	      </ul>
+	    <!--</li>-->
+	  </xsl:if>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:template>
+
+
+  <xsl:template name="bookshelfimg">
+    <xsl:param name="alt"/>
+    <xsl:param name="title"/>
+    <img  border="0" width="20" height="16"
+      src="interfaces/default/images/bshelf.gif"  
+      alt="{$alt}" title="{$title}"/>
+  </xsl:template>
+
+</xsl:stylesheet>
Index: main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl
===================================================================
--- main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl	(revision 24339)
+++ main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl	(revision 24340)
@@ -55,5 +55,5 @@
 				   disable-output-escaping="yes" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']" />/index/assoc/<xslt:value-of 
 				   disable-output-escaping="yes" select="metadataList/metadata[@name='assocfilepath']" />/<xslt:value-of 
-				   disable-output-escaping="yes" select="metadataList/metadata[@name='Source']" /></xslt:attribute>
+				   disable-output-escaping="yes" select="metadataList/metadata[@name='srclinkFile']" /></xslt:attribute>
 				  <xsl:apply-templates/>
 				</a>
@@ -119,8 +119,8 @@
 		<xsl:choose>
 			<xsl:when test="@type='classifier'">
-				<img style="width:20px; height:16px; border:0px" src="util:getInterfaceText($interface_name, /page/@lang, 'bookshelf_image')" /> 
+				<img style="width:20px; height:16px; border:0px"><xsl:attribute name="src"><xsl:text>interfaces/oran/images/bookshelf.png</xsl:text></xsl:attribute></img>
 			</xsl:when>
 			<xsl:when test="@type='document'">
-				<img style="width:20px; height:16px; border:0px" src="util:getInterfaceText($interface_name, /page/@lang, 'book_image')" /> 
+				<img style="width:20px; height:16px; border:0px"><xsl:attribute name="src"><xsl:text>interfaces/oran/images/itext.gif</xsl:text></xsl:attribute></img> 
 			</xsl:when>
 		</xsl:choose>
Index: main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl
===================================================================
--- main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl	(revision 24339)
+++ main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl	(revision 24340)
@@ -10,4 +10,5 @@
 	<!-- use the 'main' layout -->
 	<xsl:include href="layouts/main.xsl"/>
+	<xsl:include href="classifiertools.xsl"/>
 
 	<!-- set page title -->
@@ -35,9 +36,11 @@
 		-->
 		<table id="results">
-			<xsl:for-each select="classifier/*">
-				<tr>
-					<xsl:apply-templates select="."/>
-				</tr>
-			</xsl:for-each>
+			<xsl:variable name="collName"><xsl:value-of select="/page/pageRequest/paramList/param[@name='c']/@value"/></xsl:variable>
+			<xsl:variable name="serviceName"><xsl:value-of select="service/@name"/></xsl:variable>
+
+			<xsl:apply-templates select="classifier">
+				<xsl:with-param name="collName" select="$collName"/>
+				<xsl:with-param name="serviceName" select="$serviceName"/>
+			</xsl:apply-templates>
 		</table>
 		<div class="clear"><xsl:text> </xsl:text></div>
@@ -58,5 +61,5 @@
     </xsl:template>-->
 
-	<xsl:template match="documentNode" priority="3">
+	<xsl:template match="documentNode"><!-- priority="3"-->
 		<!-- The book icon -->
 		<td>
@@ -84,5 +87,5 @@
 	TEMPLATE FOR GROUPS OF DOCUMENTS
 	-->
-	<xsl:template match="classifierNode">
+	<xsl:template match="classifierNode"><!-- priority="3"-->
 
 		<table id="title{@nodeID}"><tr>
