Дополнительный вопрос по проверке наличия элементов

#
Дополнительный вопрос по проверке наличия элементов
Здравствуйте! Делаю проверку на наличие элементов, когда нет элементов в группе то вывожу текст

кусок кода:


<xsl:if test="count(//blocks/items/item[item_status=1]) > 0">
      <!-- Отображение записи информационной системы -->
      <xsl:apply-templates select="blocks/items/item[item_status=1]"/>
      </xsl:if>
      
         <xsl:if test="count(//blocks/items/item[item_status=1]) = 0">
         <p>В альбоме еще нет фотографий</p>
         </xsl:if>


Ситуация в том что в корне ИС есть и будут только группы - мой код выше выводит текст соответственно  и в корне тк нет элементов... как бы исключить проверку элементов в корне?

Спасибки
ку
Модератор
#
Re: Дополнительный вопрос по проверке наличия элементов
compaq,
где-то в XML у Вас есть ID группы, соответственно добавить проверку
and group_id != 0

вместо group_id указать поле, в котором содержится ID текущей группы
#
Re: Дополнительный вопрос по проверке наличия элементов
ага
не совсем сначала понял "вместо", но суть ясна в итоге, что-то сразу не сообразил добавить проверку

blocks/parent_group_id = 0


Cпасибки 8)
ку
#
Re: Дополнительный вопрос по проверке наличия элементов
Черт побери с другой стороны понял что и во второй вложенности групп - тоже не будет элементов

Сейчас вот так

<xsl:if test="count(//blocks/items/item[item_status=1]) = 0 and blocks/parent_group_id != 0 ">
         <p align="center">В альбоме еще нет фотографий</p>
         </xsl:if>


Проверить в таком случае на подгруппу группы можно?
ку
Модератор
#
Re: Дополнительный вопрос по проверке наличия элементов
compaq писал(а):
Проверить в таком случае на подгруппу группы можно?

Что проверить?
#
Re: Дополнительный вопрос по проверке наличия элементов
Ок вот так:

Выше условие выводит текст в случае отсуствия элементов + при нахождении в группах кроме корня, можно ли сделать условие чтобы надпись не выводилась так же и в группах второго уровня вложенности (тобишь ее не должно быть в подгруппах групп которые в корне)
ку
#
Re: Дополнительный вопрос по проверке наличия элементов
<xsl:if test="count(//blocks/items/item[item_status=1]) = 0 and blocks/parent_group_id != 0 and .//group[@id=$parent_group_id]/@parent_id!=0">


можно так, проверяем родителя текущей группы
выше должна быть переменная
<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
#
Re: Дополнительный вопрос по проверке наличия элементов
Спасибо за отклик!

Тобишь вот так

<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
    
      <xsl:if test="count(//blocks/items/item[item_status=1]) = 0 and blocks/parent_group_id != 0 and .//group[@id=$parent_group_id]/@parent_id!=0">
         <p align="center">В альбоме еще нет фотографий</p>
         </xsl:if>


Но выдает ошибку

ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: runtime error: file /home/***/www/ line 61 element variable в файле /home/***/www/modules/Xsl/Xsl.class.php (строка 271)
ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: XSLT-variable: Redefinition of variable 'parent_group_id'. в файле /home/***/www/modules/Xsl/Xsl.class.php (строка 271)
ку
Модератор
#
Re: Дополнительный вопрос по проверке наличия элементов
compaq,
у Вас переменная $parent_group_id уже определена ранее, не нужно ее еще раз определять
#
Re: Дополнительный вопрос по проверке наличия элементов
спасибо
ку
Авторизация