Warning, /graphics/digikam/core/dplugins/generic/tools/htmlgallery/themes/elegant/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 : 2007-03-11 0010 * Description : A LyteBox based theme for the digiKam html gallery tool. 0011 * 0012 * SPDX-FileCopyrightText: 2007 by Wojciech Jarosz <jiri at boha dot cz> 0013 * 0014 * SPDX-License-Identifier: GPL-2.0-or-later 0015 * 0016 * ============================================================ 0017 --> 0018 0019 <xsl:transform version="1.0" 0020 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 0021 xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl"> 0022 <xsl:output 0023 method="xml" 0024 indent="yes" 0025 encoding="iso-8859-1" 0026 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 0027 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" /> 0028 0029 <!-- ##################### VARIABLE INITIALIZATION ######################## --> 0030 <!-- Initialize some useful variables --> 0031 <xsl:variable name="theme" select="'grey'" /> 0032 <xsl:variable name="outerBorder" select="boolean(0)" /> 0033 <xsl:variable name="resizeSpeed" select="10" /> 0034 <xsl:variable name="maxOpacity" select="80" /> 0035 <xsl:variable name="navType" select="1" /> 0036 <xsl:variable name="autoResize" select="boolean(1)" /> 0037 <xsl:variable name="doAnimations" select="boolean(1)" /> 0038 <xsl:variable name="showNavigation" select="boolean(1)" /> 0039 <xsl:variable name="numCollections" select="count(collections/collection)"/> 0040 0041 0042 <!-- ##################### COLLECTION PAGES GENERATION #################### --> 0043 <xsl:template name="collectionPages"> 0044 <xsl:call-template name="collectionPages.for.loop"> 0045 <xsl:with-param name="i" select="1"/> 0046 <xsl:with-param name="count" select="ceiling(count(image) div $pageSize)"/> 0047 </xsl:call-template> 0048 </xsl:template> 0049 0050 <!-- For loop used to generate collection pages --> 0051 <xsl:template name="collectionPages.for.loop"> 0052 <xsl:param name="i"/> 0053 <xsl:param name="count"/> 0054 0055 <xsl:if test="$i < $count"> 0056 <xsl:variable name="pageFilename" select="concat(fileName, '_', $i, '.html')"/> 0057 <exsl:document href="{$pageFilename}" 0058 method="xml" 0059 indent="yes" 0060 encoding="iso-8859-1" 0061 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 0062 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"> 0063 <xsl:call-template name="collectionPage"> 0064 <xsl:with-param name="pageNum" select="$i"/> 0065 <xsl:with-param name="pageFilename" select="$pageFilename"/> 0066 </xsl:call-template> 0067 </exsl:document> 0068 0069 <xsl:call-template name="collectionPages.for.loop"> 0070 <xsl:with-param name="i" select="$i + 1"/> 0071 <xsl:with-param name="count" select="$count"/> 0072 </xsl:call-template> 0073 </xsl:if> 0074 </xsl:template> 0075 <!-- ##################### END COLLECTION PAGE GENERATION ################# --> 0076 0077 0078 <!-- ##################### IMAGE PAGINATION LINK GENERATATION ############# --> 0079 <xsl:template name="image.pagination"> 0080 <xsl:param name="indexPage"/> 0081 <div class="pagination"> 0082 <ul> 0083 <xsl:choose> 0084 <xsl:when test="position() > 1"> 0085 <li> 0086 <a href="{preceding-sibling::image[position()=1]/full/@fileName}.html"> 0087 « <xsl:value-of select="$i18nPrevious"/> 0088 </a> 0089 </li> 0090 </xsl:when> 0091 <xsl:otherwise> 0092 <li class="disabled"> 0093 « <xsl:value-of select="$i18nPrevious"/> 0094 </li> 0095 </xsl:otherwise> 0096 </xsl:choose> 0097 0098 <li> 0099 <a href="../{$indexPage}"><xsl:value-of select="../name"/></a> 0100 </li> 0101 0102 <xsl:choose> 0103 <xsl:when test="position() < last()"> 0104 <li> 0105 <a href="{following-sibling::image[position()=1]/full/@fileName}.html"> 0106 <xsl:value-of select="$i18nNext"/> » 0107 </a> 0108 </li> 0109 </xsl:when> 0110 <xsl:otherwise> 0111 <li class="disabled"> 0112 <xsl:value-of select="$i18nNext"/> » 0113 </li> 0114 </xsl:otherwise> 0115 </xsl:choose> 0116 </ul> 0117 </div> 0118 </xsl:template> 0119 0120 0121 <!-- ##################### PAGINATION LINK GENERATATION ################### --> 0122 <xsl:template name="pagination"> 0123 <xsl:param name="numPages"/> 0124 <xsl:param name="pageNum"/> 0125 <xsl:if test="$numPages > 1"> 0126 <div class="pagination"> 0127 <ul> 0128 0129 <xsl:choose> 0130 <xsl:when test="number($pageNum) = 0"> 0131 <li class="disabled">« <xsl:value-of select="$i18nPrevious"/></li> 0132 </xsl:when> 0133 <xsl:otherwise> 0134 <li> 0135 <a> 0136 <xsl:attribute name="href"> 0137 <xsl:call-template name="pageLink"> 0138 <xsl:with-param name="collectionFilename" select="fileName"/> 0139 <xsl:with-param name="pageNum" select="number($pageNum)-1"/> 0140 </xsl:call-template> 0141 </xsl:attribute> 0142 « <xsl:value-of select="$i18nPrevious"/> 0143 </a> 0144 </li> 0145 </xsl:otherwise> 0146 </xsl:choose> 0147 0148 <xsl:call-template name="pagination.for.loop"> 0149 <xsl:with-param name="i" select="0"/> 0150 <xsl:with-param name="count" select="$numPages"/> 0151 <xsl:with-param name="currentPage" select="$pageNum"/> 0152 </xsl:call-template> 0153 0154 <xsl:choose> 0155 <xsl:when test="number($pageNum) = number($numPages)-1"> 0156 <li class="disabled"><xsl:value-of select="$i18nNext"/> »</li> 0157 </xsl:when> 0158 <xsl:otherwise> 0159 <li> 0160 <a> 0161 <xsl:attribute name="href"> 0162 <xsl:call-template name="pageLink"> 0163 <xsl:with-param name="collectionFilename" select="fileName"/> 0164 <xsl:with-param name="pageNum" select="number($pageNum)+1"/> 0165 </xsl:call-template> 0166 </xsl:attribute> 0167 <xsl:value-of select="$i18nNext"/> » 0168 </a> 0169 </li> 0170 </xsl:otherwise> 0171 </xsl:choose> 0172 0173 </ul> 0174 </div> 0175 </xsl:if> 0176 </xsl:template> 0177 0178 <!-- For loop used to generate pagination links --> 0179 <xsl:template name="pagination.for.loop"> 0180 <xsl:param name="i"/> 0181 <xsl:param name="count"/> 0182 <xsl:param name="currentPage"/> 0183 0184 <xsl:if test="$i < $count"> 0185 <xsl:choose> 0186 <xsl:when test="number($currentPage) = $i"> 0187 <li class="current"><xsl:value-of select="number($i)+1"/></li> 0188 </xsl:when> 0189 <xsl:otherwise> 0190 <li> 0191 <a> 0192 <xsl:attribute name="href"> 0193 <xsl:call-template name="pageLink"> 0194 <xsl:with-param name="collectionFilename" select="fileName"/> 0195 <xsl:with-param name="pageNum" select="$i"/> 0196 </xsl:call-template> 0197 </xsl:attribute> 0198 <xsl:value-of select="number($i)+1"/> 0199 </a> 0200 </li> 0201 </xsl:otherwise> 0202 </xsl:choose> 0203 0204 <xsl:call-template name="pagination.for.loop"> 0205 <xsl:with-param name="i" select="$i + 1"/> 0206 <xsl:with-param name="count" select="$count"/> 0207 <xsl:with-param name="currentPage" select="$currentPage"/> 0208 </xsl:call-template> 0209 </xsl:if> 0210 </xsl:template> 0211 0212 <!-- Template which prints out the html url for a particular page --> 0213 <xsl:template name="pageLink"> 0214 <xsl:param name="collectionFilename"/> 0215 <xsl:param name="pageNum"/> 0216 <xsl:choose> 0217 <xsl:when test="($numCollections > 1) and ($pageNum = 0)"> 0218 <xsl:value-of select="$collectionFilename"/>.html 0219 </xsl:when> 0220 <xsl:when test="($numCollections <= 1) and ($pageNum = 0)"> 0221 index.html 0222 </xsl:when> 0223 <xsl:otherwise> 0224 <xsl:value-of select="$collectionFilename"/>_<xsl:value-of select="number($pageNum)" />.html 0225 </xsl:otherwise> 0226 </xsl:choose> 0227 </xsl:template> 0228 <!-- ##################### END PAGINATION LINK GENERATATION ############### --> 0229 0230 0231 0232 <!-- ##################### CUSTOM CSS STYLESHEET GENERATATION ############# --> 0233 <xsl:template name="customStyle"> 0234 <style type='text/css'> 0235 body { 0236 color: <xsl:value-of select="$fgColor"/>; 0237 background-color: <xsl:value-of select="$bgColor"/>; 0238 } 0239 0240 a { 0241 color: <xsl:value-of select="$linkColor"/>; 0242 } 0243 0244 a:hover { 0245 color: <xsl:value-of select="$hoverLinkColor"/>; 0246 } 0247 0248 a:visited { 0249 color: <xsl:value-of select="$visitedLinkColor"/>; 0250 } 0251 0252 h1 { 0253 color: <xsl:value-of select="$fgColor"/>; 0254 background-color: <xsl:value-of select="$frameColor"/>; 0255 border-bottom: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0256 } 0257 0258 .footer { 0259 color: <xsl:value-of select="$fgColor"/>; 0260 background-color: <xsl:value-of select="$frameColor"/>; 0261 border-bottom: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0262 border-top: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0263 } 0264 0265 #content li img { 0266 border: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0267 } 0268 0269 #content li a { 0270 background-color: <xsl:value-of select="$frameColor"/>; 0271 border: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0272 } 0273 0274 #content li a:hover { 0275 border: 1px solid <xsl:value-of select="$selectedFrameBorderColor"/>; 0276 background-color: <xsl:value-of select="$selectedFrameColor"/>; 0277 } 0278 0279 /* PAGINATION */ 0280 .pagination li a, 0281 .pagination .disabled { 0282 background-color: <xsl:value-of select="$frameColor"/>; 0283 border: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0284 } 0285 0286 .pagination .current, 0287 .pagination li a:hover { 0288 border: 1px solid <xsl:value-of select="$selectedFrameBorderColor"/> !important; 0289 background-color: <xsl:value-of select="$selectedFrameColor"/> !important; 0290 } 0291 0292 /* Image page */ 0293 #image { 0294 border: 1px solid <xsl:value-of select="$frameColor"/>; 0295 background-color: <xsl:value-of select="$frameBorderColor"/>; 0296 } 0297 0298 #image img { 0299 border: 1px solid <xsl:value-of select="$frameBorderColor"/>; 0300 } 0301 </style> 0302 </xsl:template> 0303 <!-- ##################### END CUSTOM CSS STYLESHEET GENERATATION ######### --> 0304 0305 0306 <!-- ##################### LYTEBOX CONFIG GENERATION ###################### --> 0307 <!-- 0308 Adds some javascript that sets the lytebox parameters and initializes 0309 lytebox when the page loads. 0310 --> 0311 <xsl:template name="lyteboxConfig"> 0312 <script type="text/javascript"> 0313 function initLytebox() { myLytebox = new LyteBox('<xsl:value-of select="$theme"/>', 0314 <xsl:value-of select="$outerBorder"/>, 0315 <xsl:value-of select="$resizeSpeed"/>, 0316 <xsl:value-of select="$maxOpacity"/>, 0317 <xsl:value-of select="$navType"/>, 0318 <xsl:value-of select="$autoResize"/>, 0319 <xsl:value-of select="$doAnimations"/>, 0320 <xsl:value-of select="$slideInterval"/>, 0321 <xsl:value-of select="$showNavigation"/>); } 0322 if (window.addEventListener) { 0323 window.addEventListener("load",initLytebox,false); 0324 } else if (window.attachEvent) { 0325 window.attachEvent("onload",initLytebox); 0326 } else { 0327 window.onload = function() {initLytebox();} 0328 } 0329 </script> 0330 </xsl:template> 0331 <!-- ##################### END LYTEBOX CONFIG GENERATION ################## --> 0332 0333 0334 <!-- ##################### COLLECTION PAGE GENERATION ##################### --> 0335 <!-- 0336 The collectionPage is a page of thumbnails for a collection. 0337 If there are too many thumbnails to fit on one page then the content is split 0338 up into multiple pages. 0339 --> 0340 <xsl:template name="collectionPage"> 0341 <xsl:param name="pageNum"/> 0342 <xsl:param name="pageFilename"/> 0343 <!-- <xsl:variable name="pageFilename" select="concat(fileName, '_', $pageNum, '.html')"/> --> 0344 <html> 0345 <head> 0346 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 0347 <meta name="KEYWORDS" content="photography,software,photos,digital darkroom,gallery,image,photographer"/> 0348 <meta name="generator" content="DigiKam"/> 0349 <title><xsl:value-of select="name"/></title> 0350 <xsl:if test="$useLyteBox = 'true'"> 0351 <script type="text/javascript" src="elegant/resources/js/lytebox.js"/> 0352 <xsl:call-template name="lyteboxConfig"/> 0353 <link rel="stylesheet" href="elegant/resources/css/lytebox.css" type="text/css" media="screen"/> 0354 </xsl:if> 0355 <link rel="stylesheet" href="elegant/resources/css/master.css" type="text/css" media="screen"/> 0356 <xsl:choose> 0357 <xsl:when test="$style = 'custom'"> 0358 <xsl:call-template name="customStyle"/> 0359 </xsl:when> 0360 <xsl:otherwise> 0361 <link rel="stylesheet" type="text/css" media="screen"> 0362 <xsl:attribute name="href">elegant/resources/css/<xsl:value-of select="$style"/></xsl:attribute> 0363 </link> 0364 </xsl:otherwise> 0365 </xsl:choose> 0366 </head> 0367 <body> 0368 <h1> 0369 <xsl:if test="$numCollections > 1"> 0370 <a href="index.html"><xsl:value-of select="$i18nCollectionList"/></a> » 0371 </xsl:if> 0372 <xsl:value-of select="name"/> 0373 </h1> 0374 0375 <xsl:variable name="numPages" select="ceiling(count(image) div $pageSize)"/> 0376 <xsl:variable name="folder" select='fileName'/> 0377 <xsl:variable name="pageName" select="name"/> 0378 0379 <xsl:if test="($paginationLocation = 'top') or ($paginationLocation = 'both')"> 0380 <xsl:call-template name="pagination"> 0381 <xsl:with-param name="numPages" select="$numPages"/> 0382 <xsl:with-param name="pageNum" select="$pageNum"/> 0383 </xsl:call-template> 0384 </xsl:if> 0385 0386 <div id="content"> 0387 0388 <!-- Add links to all images before the current page. --> 0389 <xsl:if test="$useLyteBox = 'true'"> 0390 <xsl:for-each select="image[(position() < ($pageNum * $pageSize) + 1)]"> 0391 <xsl:variable name="imageCaption"> 0392 <xsl:value-of select="description" /> 0393 <xsl:if test="original/@fileName != ''"><p class="caption"><a href="<xsl:value-of select='$folder'/>/<xsl:value-of select="original/@fileName"/>"><xsl:value-of select="$i18nOriginalImage"/></a> (<xsl:value-of select="original/@width"/>x<xsl:value-of select="original/@height"/>)</p></xsl:if> 0394 </xsl:variable> 0395 <a href="{$folder}/{full/@fileName}" rel="lyteshow[{$pageName}]" title="{$imageCaption}"></a> 0396 </xsl:for-each> 0397 </xsl:if> 0398 0399 <ul> 0400 0401 <!-- Add thumbnails and links to all images for the current page. --> 0402 <xsl:for-each select="image[(position() >= ($pageNum * $pageSize) + 1) and (position() <= $pageSize + ($pageSize * $pageNum))]"> 0403 0404 <xsl:choose> 0405 <xsl:when test="$useLyteBox = 'true'"> 0406 0407 <xsl:variable name="imageCaption"> 0408 <xsl:value-of select="description"/> 0409 <xsl:if test="original/@fileName != ''"><p class="caption"><a href="<xsl:value-of select='$folder'/>/<xsl:value-of select="original/@fileName"/>"><xsl:value-of select="$i18nOriginalImage"/></a> (<xsl:value-of select="original/@width"/>x<xsl:value-of select="original/@height"/>)</p></xsl:if> 0410 </xsl:variable> 0411 <li> 0412 <a href="{$folder}/{full/@fileName}" rel="lyteshow[{$pageName}]" title="{$imageCaption}"> 0413 <img src="{$folder}/{thumbnail/@fileName}" width="{thumbnail/@width}" height="{thumbnail/@height}" alt="{title}"/> 0414 </a> 0415 </li> 0416 0417 </xsl:when> 0418 <xsl:otherwise> 0419 <li> 0420 <a href="{$folder}/{full/@fileName}.html"> 0421 <img src="{$folder}/{thumbnail/@fileName}" width="{thumbnail/@width}" height="{thumbnail/@height}" /> 0422 </a> 0423 </li> 0424 <exsl:document href='{$folder}/{full/@fileName}.html'> 0425 <xsl:call-template name="imagePage"> 0426 <xsl:with-param name="indexPage"><xsl:value-of select="$pageFilename"/></xsl:with-param> 0427 </xsl:call-template> 0428 </exsl:document> 0429 </xsl:otherwise> 0430 </xsl:choose> 0431 0432 </xsl:for-each> 0433 </ul> 0434 0435 <!-- Add links to all images after the current page. --> 0436 <xsl:if test="$useLyteBox = 'true'"> 0437 <xsl:for-each select="image[(position() > $pageSize + ($pageSize * $pageNum))]"> 0438 <xsl:variable name="imageCaption"> 0439 <xsl:value-of select="description" /> 0440 <xsl:if test="original/@fileName != ''"><p class="caption"><a href="<xsl:value-of select='$folder'/>/<xsl:value-of select="original/@fileName"/>"><xsl:value-of select="$i18nOriginalImage"/></a> (<xsl:value-of select="original/@width"/>x<xsl:value-of select="original/@height"/>)</p></xsl:if> 0441 </xsl:variable> 0442 <a href="{$folder}/{full/@fileName}" rel="lyteshow[{$pageName}]" title="{$imageCaption}"></a> 0443 </xsl:for-each> 0444 </xsl:if> 0445 0446 </div> <!-- /content --> 0447 0448 <xsl:if test="($paginationLocation = 'bottom') or ($paginationLocation = 'both')"> 0449 <xsl:call-template name="pagination"> 0450 <xsl:with-param name="numPages" select="$numPages"/> 0451 <xsl:with-param name="pageNum" select="$pageNum"/> 0452 </xsl:call-template> 0453 </xsl:if> 0454 0455 <xsl:if test="$author != ''"> 0456 <div class="footer"> 0457 All Images Copyright © <xsl:value-of select="$author"/> 0458 </div> 0459 </xsl:if> 0460 </body> 0461 </html> 0462 <xsl:if test="$pageNum = 0"> 0463 <!-- Generate all subsequent collection pages. --> 0464 <xsl:call-template name="collectionPages"/> 0465 </xsl:if> 0466 </xsl:template> 0467 <!-- ##################### END COLLECTION PAGE GENERATION ################# --> 0468 0469 0470 <!-- ##################### IMAGE PAGE GENERATION ########################## --> 0471 <!-- 0472 If lytebox is disabled then a webpage is generated to display the large 0473 version of each image. 0474 --> 0475 <xsl:template name="imagePage"> 0476 <xsl:param name="indexPage"/> 0477 <html> 0478 <head> 0479 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 0480 <meta name="KEYWORDS" content="photography,software,photos,digital darkroom,gallery,image,photographer"/> 0481 <meta name="generator" content="DigiKam"/> 0482 <title><xsl:value-of select="title"/></title> 0483 <link rel="stylesheet" href="../elegant/resources/css/master.css" type="text/css" media="screen"/> 0484 <xsl:choose> 0485 <xsl:when test="$style = 'custom'"> 0486 <xsl:call-template name="customStyle"/> 0487 </xsl:when> 0488 <xsl:otherwise> 0489 <link rel="stylesheet" type="text/css" media="screen"> 0490 <xsl:attribute name="href">../elegant/resources/css/<xsl:value-of select="$style"/></xsl:attribute> 0491 </link> 0492 </xsl:otherwise> 0493 </xsl:choose> 0494 </head> 0495 <body> 0496 <h1> 0497 <xsl:value-of select="title"/> (<xsl:value-of select="position()"/>/<xsl:value-of select="last()"/>) 0498 </h1> 0499 0500 <xsl:if test="($paginationLocation = 'top') or ($paginationLocation = 'both')"> 0501 <xsl:call-template name="image.pagination"> 0502 <xsl:with-param name="indexPage" select="$indexPage"/> 0503 </xsl:call-template> 0504 </xsl:if> 0505 0506 <div id="content"> 0507 <div id="image"> 0508 <a href="../{$indexPage}"> 0509 <img src="{full/@fileName}" width="{full/@width}" height="{full/@height}" /> 0510 </a> 0511 <p style="width: {full/@width};"> 0512 <xsl:value-of select="description"/> 0513 </p> 0514 <xsl:if test="original/@fileName != ''"> 0515 <p style="width: {full/@width};"> 0516 <a href="{original/@fileName}"><xsl:value-of select="$i18nOriginalImage"/></a> 0517 (<xsl:value-of select="original/@width"/>x<xsl:value-of select="original/@height"/>) 0518 </p> 0519 </xsl:if> 0520 </div> 0521 </div> 0522 0523 <xsl:if test="($paginationLocation = 'bottom') or ($paginationLocation = 'both')"> 0524 <xsl:call-template name="image.pagination"> 0525 <xsl:with-param name="indexPage" select="$indexPage"/> 0526 </xsl:call-template> 0527 </xsl:if> 0528 0529 <xsl:if test="$author != ''"> 0530 <div class="footer"> 0531 All Images Copyright © <xsl:value-of select="$author"/> 0532 </div> 0533 </xsl:if> 0534 0535 </body> 0536 </html> 0537 </xsl:template> 0538 0539 0540 <!-- ##################### COLLECTION LIST PAGE GENERATION ################ --> 0541 <!-- 0542 If more than one collection was selected for export then a collectionListPage 0543 is generated which provides a list of all the individual collections. 0544 --> 0545 <xsl:template name="collectionListPage"> 0546 <html> 0547 <head> 0548 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 0549 <meta name="KEYWORDS" content="photography,software,photos,digital darkroom,gallery,image,photographer"/> 0550 <meta name="generator" content="DigiKam"/> 0551 <title><xsl:value-of select="$i18nCollectionList"/></title> 0552 <link rel="stylesheet" href="elegant/resources/css/master.css" type="text/css" media="screen"/> 0553 <xsl:choose> 0554 <xsl:when test="$style = 'custom'"> 0555 <xsl:call-template name="customStyle"/> 0556 </xsl:when> 0557 <xsl:otherwise> 0558 <link rel="stylesheet" type="text/css" media="screen"> 0559 <xsl:attribute name="href">elegant/resources/css/<xsl:value-of select="$style"/></xsl:attribute> 0560 </link> 0561 </xsl:otherwise> 0562 </xsl:choose> 0563 </head> 0564 <body> 0565 <h1> 0566 <xsl:value-of select="$i18nCollectionList"/> 0567 </h1> 0568 <div id="content"> 0569 <ul> 0570 <xsl:for-each select="collections/collection"> 0571 <xsl:variable name="altName" select="name"/> 0572 <li> 0573 <a href="{fileName}.html"> 0574 <!-- Use first image as collection image --> 0575 <img src="{fileName}/{image[1]/thumbnail/@fileName}" width="{image[1]/thumbnail/@width}" height="{image[1]/thumbnail/@height}" alt="{$altName}"/><br /><xsl:value-of select="name"/> 0576 </a> 0577 </li> 0578 <exsl:document href="{fileName}.html" 0579 method="xml" 0580 indent="yes" 0581 encoding="iso-8859-1" 0582 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 0583 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"> 0584 <xsl:call-template name="collectionPage"> 0585 <xsl:with-param name="pageFilename"><xsl:value-of select="fileName"/>.html</xsl:with-param> 0586 <xsl:with-param name="pageNum" select="0"/> 0587 </xsl:call-template> 0588 </exsl:document> 0589 </xsl:for-each> 0590 </ul> 0591 </div> 0592 <!-- /content --> 0593 <xsl:if test="$author != ''"> 0594 <div class="footer"> 0595 All Images Copyright © <xsl:value-of select="$author"/> 0596 </div> 0597 </xsl:if> 0598 </body> 0599 </html> 0600 </xsl:template> 0601 <!-- ##################### END COLLECTION LIST PAGE GENERATION ############ --> 0602 0603 0604 <!-- ##################### STARTING POINT ################################# --> 0605 <!-- 0606 Determines if we need to create a collectionListPage or just one 0607 collectionStartPage. 0608 --> 0609 <xsl:template match="/"> 0610 <xsl:choose> 0611 <xsl:when test="$numCollections > 1"> 0612 <xsl:call-template name="collectionListPage"/> 0613 </xsl:when> 0614 <xsl:otherwise> 0615 <xsl:for-each select="collections/collection"> 0616 <xsl:call-template name="collectionPage"> 0617 <xsl:with-param name="pageFilename">index.html</xsl:with-param> 0618 <xsl:with-param name="pageNum" select="0"/> 0619 </xsl:call-template> 0620 </xsl:for-each> 0621 </xsl:otherwise> 0622 </xsl:choose> 0623 </xsl:template> 0624 <!-- ##################### END STARTING POINT ############################# --> 0625 0626 </xsl:transform>