User Tools

Site Tools


en:user:gs3_sample_interface_modifications

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:user:gs3_sample_interface_modifications [2019/09/23 00:17] kjdonen:user:gs3_sample_interface_modifications [2019/10/21 22:18] – [Changing the collection description] kjdon
Line 16: Line 16:
    <gslib:collectionDescriptionTextAndServicesLinks/>    <gslib:collectionDescriptionTextAndServicesLinks/>
 </xsl:template> </xsl:template>
-<code>+</code>
  
-<gslib> elements are shortcuts to predefined templates, and can be found in web/interfaces/default/transform/gslib.xsl.+<gslib> elements are shortcuts to predefined templates, and can be found in web/interfaces/default/transform/gslib.xsl. See the [[en:user:gslib|gslib page]] for more details.
  
-Lets leave the collection description displayed as is, but output "This collection contains X documents, and was last built on Y".+Lets leave the collection description displayed as is, but also output "This collection contains X documents, and was last built on Y".
  
 We can redefine the template as: We can redefine the template as:
Line 27: Line 27:
    <gslib:collectionDescriptionTextAndServicesLinks/>    <gslib:collectionDescriptionTextAndServicesLinks/>
    <xsl:variable name="raw_date"><gslib:collectionMeta name="buildDate"/></xsl:variable>    <xsl:variable name="raw_date"><gslib:collectionMeta name="buildDate"/></xsl:variable>
-   The collection contains <gslib:collectionMeta name="numDocs"/> documents, and was last built on <xsl:value-of select="util:formatTimeStamp($raw_date, 0, 0, /page/@lang)"/>.+   The collection contains <gslib:collectionMeta name="numDocs"/> documents, and was last  
 +   built on <xsl:value-of select="util:formatTimeStamp($raw_date, 0, 0, /page/@lang)"/>.
 </xsl:template> </xsl:template>
-<code>+</code> 
 + 
 +<gslib:collectionMeta> can retrieve metadata elements from the collection (as opposed to from documents). Here we use it to retrieve "numDocs" metadata - the number of documents in the collection - and "buildDate" metadata - the date the collection was last built.
  
-<gslib:collectionMeta> can retrieve metadata elements from the collection (as opposed to from documents). 
 The buildDate metadata element is a timestamp, so is not user friendly. We can use one of our utility functions to format it. The buildDate metadata element is a timestamp, so is not user friendly. We can use one of our utility functions to format it.
 +Utility functions are defined in src/java/org/greenstone/gsdl3/util/XSLTUtil.java.
 +In this case, we are formatting the timestamp as a date (the second 0). We could also format it as 'days ago' (using 3 instead of 0):
 +<code>
 +The collection contains <gslib:collectionMeta name="numDocs"/> documents, and was last 
 +   built <xsl:value-of select="util:formatTimeStamp($raw_date, 0, 3, /page/@lang)"/> days ago.
 +</code>
 +
 +If we want this text to be displayed in a language dependent manner, then we need to define it in the properties file, (and translate it in the appropriate language properties file), and retrieve it from there.
 +
 +
 +
 +==== Total documents in library ====
 +
 +The above section shows how to add "this collection contains X number of documents" to a collection's about page. But what if we want to do that for the whole library?
 +
 +We can add up all the numDocs from each collection using 'sum', and count the number of collections using 'count':
 +
 +<code>
 +<xsl:template match="/page/pageResponse">
 +....
 +<xsl:variable name="totaldocs" select="sum(/page/pageResponse/collectionList/collection/metadataList
 +/metadata[@name='numDocs'])" />
 +<xsl:variable name="totalcolls" select="count(/page/pageResponse/collectionList/collection)"/>
 +
 +<p>This library contains a total of <xsl:value-of select="$totaldocs"/> documents over <xsl:value-of 
 +select="$totalcolls"/> collections.</p>
 +....
 +</xsl:template>
 +</code>
  
 ==== Footer modification (text on left, image on right) ==== ==== Footer modification (text on left, image on right) ====
en/user/gs3_sample_interface_modifications.txt · Last modified: 2023/03/13 01:46 by 127.0.0.1