Заготовка xslt шаблона для вывода альбомов

Что нужно добавить в xslt шаблоны демо сайта "современный" (demodizzy), чтобы при просмотре альбома выводились дочерние к нему альбомы? Вопрос был задан на форуме в ветке Вывод списка вложенных галерей по типу альбома с фото

В итоге получился новый файл /xsltTpls/modules/photoalbum/album.xsl, в котором вместо строчек

<xsl:template match="result[@module = 'photoalbum'][@method = 'album']">
	<xsl:apply-templates select="document(concat('udata://photoalbum/album/',$document-page-id))/udata" />
</xsl:template>

вставляем

<xsl:template match="result[@module = 'photoalbum'][@method = 'album']">
	<xsl:apply-templates select="document(concat('udata://photoalbum/albums//20000/1/',$document-page-id))/udata" />
	<xsl:apply-templates select="document(concat('udata://photoalbum/album/',$document-page-id))/udata" />
</xsl:template>
	
<xsl:template match="udata[@module = 'photoalbum' and @method = 'albums']" />

<xsl:template match="udata[@module = 'photoalbum' and @method = 'albums' and total]">
	<div id="photoalbums">
		<div class="descr">
			<xsl:value-of select="document(concat('upage://',id,'.descr'))/udata/property/value" disable-output-escaping="yes" />
		</div>
		<xsl:apply-templates select="items/item" mode="album_list" />
		<div class="clear" />
	</div>
	<xsl:apply-templates select="total" />
</xsl:template>

<xsl:template match="item" mode="album_list">
	<xsl:apply-templates select="document(concat('upage://',@id))/udata/page" mode="album_list" />
</xsl:template>

<xsl:template match="page" mode="album_list">
	<div class="gray_block">
		<a href="{@link}">
			<xsl:apply-templates select="document(concat('udata://photoalbum/album/',@id,'//1/1'))/udata" mode="album_first_photo"/>
		</a>
		<div class="descr">
			<h3>
				<a href="{@link}">
					<xsl:value-of select="//property[@name = 'h1']/value" />
				</a>
			</h3>
			<div>
				<xsl:value-of select="//property[@name = 'descr']/value" disable-output-escaping="yes" />
			</div>
		</div>
		<div class="clear" />
	</div>
</xsl:template>
		
<xsl:template match="udata[@module = 'photoalbum'][@method = 'album']" mode="album_first_photo">
	<img src="&empty-photo;" />
</xsl:template>

<xsl:template match="udata[@module = 'photoalbum'][@method = 'album'][total]" mode="album_first_photo">
	<xsl:apply-templates select="items/item" mode="album_first_photo" />
</xsl:template>
		
<xsl:template match="item" mode="album_first_photo">
	<xsl:call-template name="catalog-thumbnail">
		<xsl:with-param name="element-id" select="@id" />
		<xsl:with-param name="field-name">photo</xsl:with-param>
		<xsl:with-param name="empty">&empty-photo;</xsl:with-param>
		<xsl:with-param name="width">154</xsl:with-param>
		<xsl:with-param name="height">110</xsl:with-param>
	</xsl:call-template>
</xsl:template>


Видео, с объяснением процесса создания этого шаблона и некоторых тонкостей при выводе списка дочерних галерей.

 



comments powered by HyperComments