Warning, /graphics/digikam/core/dplugins/generic/tools/htmlgallery/themes/matrix/template.xsl is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8" ?>
0002 
0003 <!--
0004  * ============================================================
0005  *
0006  * This file is a part of digiKam project
0007  * https://www.digikam.org
0008  *
0009  * Date        : 2008-04-01
0010  * Description : A Matrix like theme for the digiKam html gallery tool.
0011  *
0012  * SPDX-FileCopyrightText: 2008 by Aurélien Gâteau <aurelien dot gateau at free.fr>
0013  *
0014  * SPDX-License-Identifier: GPL-2.0-or-later
0015  *
0016  * ============================================================
0017  -->
0018 
0019 <!DOCTYPE stylesheet [
0020 <!ENTITY raquo "&#187;">
0021 ]>
0022 
0023 <xsl:transform version="1.0"
0024         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
0025         xmlns:exsl="http://exslt.org/common"
0026         extension-element-prefixes="exsl">
0027 
0028 <xsl:template name="linkTagsImagePage">
0029         <link rel="first" href="{../image[position()=1]/full/@fileName}.html"></link>
0030         <link rel="last" href="{../image[position()=last()]/full/@fileName}.html"></link>
0031         <xsl:if test="position() &gt; 1">
0032                 <link rel="prev" href="{preceding-sibling::image[position()=1]/full/@fileName}.html"></link>
0033         </xsl:if>
0034         <xsl:if test="position() &lt; last()">
0035                 <link rel="next" href="{following-sibling::image[position()=1]/full/@fileName}.html"></link>
0036         </xsl:if>
0037         <xsl:choose>
0038                 <xsl:when test="count(/collections/collection) &gt; 1">
0039                         <link rel="up" href="../{../fileName}.html"></link>
0040                         <link rel="top" href="../index.html"></link>
0041                 </xsl:when>
0042                 <xsl:otherwise>
0043                         <link rel="up" href="../index.html"></link>
0044                 </xsl:otherwise>
0045         </xsl:choose>
0046 </xsl:template>
0047 
0048 <xsl:template name="linkTagsCollectionPage">
0049         <xsl:if test="count(/collections/collection) &gt; 1">
0050                 <link rel="up" href="index.html"></link>
0051         </xsl:if>
0052 </xsl:template>
0053 
0054 <xsl:template name="thumbnailLink">
0055         <xsl:param name="text"/>
0056         <xsl:param name="folder" select="'.'"/>
0057         <a class="imageLink" href="{$folder}/{full/@fileName}.html">
0058                 <img src="{$folder}/{thumbnail/@fileName}" width="{thumbnail/@width}" height="{thumbnail/@height}" />
0059                 <br/>
0060                 <xsl:value-of select="$text"/>
0061         </a>
0062 </xsl:template>
0063 
0064 <xsl:template name="imagePage">
0065         <html>
0066         <head>
0067                 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
0068                 <title><xsl:value-of select="title"/></title>
0069                 <link rel="stylesheet" type="text/css" href="style.css"/>
0070                 <xsl:call-template name="linkTagsImagePage"/>
0071         </head>
0072         <body id="imagePage">
0073         <h1>
0074                 <div id="caption">
0075                         <xsl:choose>
0076                                 <xsl:when test="count(/collections/collection) &gt; 1">
0077                                         <a href="../index.html"><xsl:value-of select="$i18nCollectionList"/></a>
0078                                         &raquo;
0079                                         <a href="../{../fileName}.html"><xsl:value-of select="../name"/></a>
0080                                 </xsl:when>
0081                                 <xsl:otherwise>
0082                                         <a href="../index.html"><xsl:value-of select="../name"/></a>
0083                                 </xsl:otherwise>
0084                         </xsl:choose>
0085                         &raquo; <xsl:value-of select="title"/>
0086                         (<xsl:value-of select="position()"/>/<xsl:value-of select="last()"/>)
0087                 </div>
0088         </h1>
0089 
0090         <div id="content">
0091                 <div>
0092                         <div id="previous">
0093                                 <xsl:choose>
0094                                         <xsl:when test="position() &gt; 1">
0095                                                 <xsl:for-each select="preceding-sibling::image[position()=1]">
0096                                                         <xsl:call-template name="thumbnailLink">
0097                                                                 <xsl:with-param name="text">Previous</xsl:with-param>
0098                                                         </xsl:call-template>
0099                                                 </xsl:for-each>
0100                                         </xsl:when>
0101                                         <xsl:otherwise>
0102                                                 <div class="endOfCollection">
0103                                                         Previous
0104                                                 </div>
0105                                         </xsl:otherwise>
0106                                 </xsl:choose>
0107                         </div>
0108                         
0109                         <div id="next">
0110                                 <xsl:choose>
0111                                         <xsl:when test="position() &lt; last()">
0112                                                 <xsl:for-each select="following-sibling::image[position()=1]">
0113                                                         <xsl:call-template name="thumbnailLink">
0114                                                                 <xsl:with-param name="text">Next</xsl:with-param>
0115                                                         </xsl:call-template>
0116                                                 </xsl:for-each>
0117                                         </xsl:when>
0118                                         <xsl:otherwise>
0119                                                 <div class="endOfCollection">
0120                                                         Next
0121                                                 </div>
0122                                         </xsl:otherwise>
0123                                 </xsl:choose>
0124                         </div>
0125                         
0126                         <div id="full">
0127                                 <img src="{full/@fileName}" width="{full/@width}" height="{full/@height}" />
0128                                 <p>
0129                                 <xsl:value-of select="description"/>
0130                                 </p>
0131                                 <xsl:if test="original/@fileName != ''">
0132                                         <p>
0133                                         <a href="{original/@fileName}"><xsl:value-of select="$i18nOriginalImage"/></a>
0134                                         (<xsl:value-of select="original/@width"/>x<xsl:value-of select="original/@height"/>)
0135                                         </p>
0136                                 </xsl:if>
0137                         </div>
0138                         <br style="clear:both"/>
0139                 </div>
0140                 
0141         </div>
0142         </body>
0143         </html>
0144 </xsl:template>
0145 
0146 
0147 <xsl:template name="collectionPage">
0148         <html>
0149         <head>
0150                 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
0151                 <title><xsl:value-of select="name"/></title>
0152                 <link rel="stylesheet" type="text/css" href="matrix/style.css"/>
0153                 <xsl:call-template name="linkTagsCollectionPage"/>
0154         </head>
0155         <body id="collectionPage">
0156         <h1>
0157                 <xsl:if test="count(/collections/collection) &gt; 1">
0158                         <a href="index.html"><xsl:value-of select="$i18nCollectionList"/></a>
0159                         &raquo;
0160                 </xsl:if>
0161                 <xsl:value-of select="name"/>
0162         </h1>
0163         <div id="content">
0164                 <ul>
0165                         <xsl:variable name="folder" select='fileName'/>
0166                         <xsl:for-each select="image">
0167                                 <li>
0168                                         <xsl:call-template name="thumbnailLink">
0169                                                 <xsl:with-param name="text"><xsl:value-of select="title"/></xsl:with-param>
0170                                                 <xsl:with-param name="folder"><xsl:value-of select="$folder"/></xsl:with-param>
0171                                         </xsl:call-template>
0172                                 </li>
0173                                 <exsl:document href='{$folder}/{full/@fileName}.html'>
0174                                         <xsl:call-template name="imagePage"/>
0175                                 </exsl:document>
0176                         </xsl:for-each>
0177                 </ul>
0178                 <br style="clear:both"/>
0179         </div> <!-- /content -->
0180         </body>
0181         </html>
0182 </xsl:template>
0183 
0184 
0185 <xsl:template name="collectionListPage">
0186         <html>
0187         <head>
0188                 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
0189                 <title><xsl:value-of select="$i18nCollectionList"/></title>
0190                 <link rel="stylesheet" type="text/css" href="matrix/style.css"/>
0191         </head>
0192         <body>
0193         <h1><xsl:value-of select="$i18nCollectionList"/></h1>
0194         <div id="content">
0195                 <ul>
0196                         <xsl:for-each select="collections/collection">
0197                                 <xsl:sort select="name" order="ascending" data-type="text" />
0198                                 <li>
0199                                         <a href="{fileName}.html">
0200                                                 <!-- Use first image as collection image -->
0201                                                 <img src="{fileName}/{image[1]/thumbnail/@fileName}"
0202                                                         width="{image[1]/thumbnail/@width}"
0203                                                         height="{image[1]/thumbnail/@height}" />
0204                                                 <br />
0205                                                 <xsl:value-of select="name"/>
0206                                         </a>
0207                                 </li>
0208                                 <exsl:document href="{fileName}.html">
0209                                         <xsl:call-template name="collectionPage"/>
0210                                 </exsl:document>
0211                         </xsl:for-each>
0212                 </ul>
0213         </div> <!-- /content -->
0214         </body>
0215         </html>
0216 </xsl:template>
0217 
0218 
0219 <xsl:template match="/">
0220         <xsl:choose>
0221                 <xsl:when test="count(collections/collection) &gt; 1">
0222                         <xsl:call-template name="collectionListPage"/>
0223                 </xsl:when>
0224                 <xsl:otherwise>
0225                         <xsl:for-each select="collections/collection">
0226                                 <xsl:call-template name="collectionPage"/>
0227                         </xsl:for-each>
0228                 </xsl:otherwise>
0229         </xsl:choose>
0230 </xsl:template>
0231 
0232 
0233 </xsl:transform>