alexander.egorov, спасибо за наводку. но у меня почему-то не срабатывает. Хочу в модификациях оформить галерею вот так, чтобы когда изображение, то выходило изображение из-доп.свойства, а когда pdf то иконка pdf.
Делаю так:
<xsl:for-each select="property_value[tag_name='img_gall'][file !='']">
<a class="imgs" href="{../dir}{file}" data-fancybox="item_gall{$modID}">
<!-- Определяем расширения файла -->
<xsl:variable name="extension">
<xsl:call-template name="Extension">
<xsl:with-param name="string" select="file_small"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$extension!='png'">
<img class="gal" src="{../dir}{file}" alt="{name}"/>
</xsl:when>
<xsl:when test="$extension!='jpg'">
<img class="gal" src="{../dir}{file}" alt="{name}"/>
</xsl:when>
<xsl:when test="$extension!='pdf'">
<img class="gal" src="/img/pdf.png" alt="{name}"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</a>
</xsl:for-each>
<!-- Определение расширения файла -->
<xsl:template name="Extension">
<xsl:param name="string" select="string"/>
<!-- Получаем подстроку после точки -->
<xsl:variable name="ext">
<xsl:value-of select="substring-after($string, '.')"/>
</xsl:variable>
<xsl:choose>
<!-- Если есть точка в подстроке -->
<xsl:when test="contains($ext, '.')">
<xsl:call-template name="Extension">
<xsl:with-param name="string" select="$ext"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$ext"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>