Доброго времени суток.
Возникла проблема с фотогалереей. Пытаюсь отобразить по 2 фотографии в строке. Службу заботы пытаю уже день четвертый, надеюсь на вашу помощь.
В albums.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="udata[@module = 'photoalbum'][@method = 'album']" />
<xsl:template match="udata[@module = 'photoalbum'][@method = 'album'][total]">
<div class="photos">
<xsl:apply-templates select="items/item" mode="photo_list" />
<div class="clear" />
</div>
<xsl:apply-templates select="total" />
</xsl:template>
<xsl:template match="item" mode="photo_list">
<div class="line_photo">
<div class="item">
<xsl:apply-templates select="document(concat('upage://',@id))/udata/page[position() mod 2 != 0]" mode="photo_list" />
</div>
<div class="item">
<xsl:apply-templates select="document(concat('upage://',@id))/udata/page[position() mod 2 = 0]" mode="photo_list" />
</div>
</div>
</xsl:template>
<xsl:template match="page" mode="photo_list">
<div class="media">
<a href="{@link}" umi:element-id="{@id}" umi:field-name="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">180</xsl:with-param>
<xsl:with-param name="height">135</xsl:with-param>
</xsl:call-template>
</a>
</div>
<div class="description">
<h3 umi:element-id="{@id}" umi:field-name="h1">
<xsl:value-of select="//property[@name = 'h1']/value" />
</h3>
<xsl:value-of select="//property[@name = 'descr']/value" disable-output-escaping="yes" />
<a href="{@link}" >&more;</a>
</div>
<div class="clear" />
</xsl:template>
Но выводит по 1 "фото+описание" в строке. Вывод кода прямиком из Fire Fox.
<div class="line_photo">
<div class="item">
<div class="media"><a href="/photo/arochnaya_teplica_fermerskaya_1/" umi:element-id="28" umi:field-name="photo"><img src="/images/cms/thumbs/80daed57299900699b31a66148d75e1693555ca7/1_180_135_5_80.jpg" width="180" height="135" umi:element-id="28" umi:field-name="photo" umi:empty="/images/design/nofoto.jpg"></a></div>
<div class="description">
<h3 href="/photo/arochnaya_teplica_fermerskaya_1/" umi:element-id="28" umi:field-name="h1">Арочная теплица ФЕРМЕРСКАЯ 1</h3><p><strong>Категория:</strong> арочные теплицы Solidprof<br /> <strong>Тип каркаса:</strong> сборный алюминиевый<br /> <strong>Материал каркаса:</strong> алюмин.проф.труба</p><a href="/photo/arochnaya_teplica_fermerskaya_1/">Подробнее</a>
</div>
<div class="clear"></div>
</div>
<div class="item"></div><!-- !!! -->
</div>
Строка помеченая !!! это строка:
<xsl:apply-templates select="document(concat('upage://',@id))/udata/page[position() mod 2 = 0]" mode="photo_list" />.
Следовательно условие [position() mod 2 = 0] невыводит ничего.
Если вместо этого условия поставить:
- page[position() = last()] то он выводит все те же фото+описание что и условие page[position() mod 2 != 0].
- page[position() = first()] он выдает ошибки и не выдает шаблон photoalbum вообще.
Следовательно, по моему мнению, оно хватает некое булево значение. И выводит фото+описание при 1 и не выводит при 0.
Но как можно сделать что бы выводилось по 2 блока <div class="item"> в строке?