Ув. товарищи из техподдержки (и просто сочувствующие).
Я относительно новичок в Host CMS, но до сего момента удавалось разбираться во всех непонятных моментах самостоятельно. Но вот на этом эпизоде встал в тупик.
Суть задачи такова. В ИС есть группы трехуровневой вложенности. "Группы альбомов", "альбомы" и "фото"/"видео" в каждом из "альбомов". Ладно, пусть будет двухуровневая вложенность, и в "альбомах" уже элементы должны быть, - это не суть, проблема остается.
Показ ГАЛЕРЕИ in-da XSL я начинаю стандартно:
<xsl:template match="/">
<xsl:apply-templates select="/document"/>
</xsl:template>
<xsl:template match="/document">
<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
<!-- если в корневой группе -->
<xsl:if test="$parent_group_id = 0">
<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
<!-- выводим категории альбомов -->
<xsl:if test="count(.//group[@parent_id=$parent_group_id]) > 0">
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="rootgroups"/>
</xsl:if>
</xsl:if>
<!-- Если в находимся в группе -->
<xsl:if test="$parent_group_id != 0">
<!-- (TODO: страничка Галерея_подробно д.б. ЗДЕСЬ) -->
</xsl:if>
</xsl:template>
Далее идёт вывод категорий альбомов:
<xsl:template match="group" mode="rootgroups">
<xsl:variable name="id" select="@id" />
<table class="gallery_cathholder">
<tr><td></td>
<td>
<xsl:apply-templates select=".//group[@parent_id=$id]" mode="albums"/>
</td>
<td></td></tr>
</table>
<div class="gallery_span"> </div>
</xsl:template>
и затем выводится сам альбом. А вот здесь и происходит самое интересное (и непонятное).
<!-- Шаблон выводит альбом -->
<xsl:template match="group" mode="albums">
<xsl:variable name="id" select="@id" />
<xsl:variable name="count_videos"><xsl:value-of select="count(.//item[item_propertys/item_property[@xml_name = 'video']/value!=''])"/></xsl:variable>
<xsl:variable name="count_photos"><xsl:value-of select="count(.//item[item_small_image=1])"/></xsl:variable>
<xsl:variable name="count_groups"><xsl:value-of select="count(.//group[@parent_id=$id])"/></xsl:variable>
<div class="gallery_span">Фотографий в альбоме: <xsl:value-of select="$count_photos"/></div>
<table class="gallery_albholder">
<tr>
<!-- собственно, здесь "кишки" уже несущественны -->
</tr></table>
<div class="gallery_span"> </div>
</xsl:template>
Суть проблемы в том, что нужно, находясь в шаблоне подгруппы ИС (<xsl:template match="group" mode="albums">

, прочитать и получить количество элементов ИС, входящих в эту подгруппу, (активных, и) удовлетворяющих некоторому данному условию.
И я то ли туплю, то ли чего-то недопонимаю, но у меня НИКАК не получается сформировать условие вот в этом месте
<xsl:variable name="count_videos"><xsl:value-of select="count(.//item[item_propertys/item_property[@xml_name = 'video']/value!=''])"/></xsl:variable>
<xsl:variable name="count_photos"><xsl:value-of select="count(.//item[item_small_image=1])"/></xsl:variable>
- такое, чтобы $count_photos было ненулевым. А я же вижу эти альбомы, вижу что активных элементов там явно >0.
А выводится всё время 0.
---------------------------------
Данный XSL-шаблон используется в "Типовые динамические страницы: Информационная система для галереи", и указан в пункте "XSL шаблон для отображения списка элементов информационной системы"
Как правильно написать запрос, чтобы он считал элементы в данной группе, по условию?
Всё перепробовал, ничего не работает, всё 0 даёт. Притом что id группы выводится правильно, и название альбома - тоже.