Доброго времени суток.
Возникла проблема, мне надо чтобы блок <div class="cbp-ntcontent">...</div>, если поле content не заполнен, его не было.
Но проблема в том (наверное), что это поля подтягивается через usel.
Есть ли какой-нибудь аналог empty или условие можно сделать проще? (может я просто опять перемудривую)
Пробовала через if, но работает наоборот как-то, т.е. он делает нужный стиль, т.е. отключается активность, но при этом блок с пустым полем оставили стили активности, но текстовый блок не раскрывается...
<xsl:template match="page" mode="accordion-content_full">
<li>
<h3 class="cbp-nttrigger">
<span>
<xsl:value-of select=".//property[@name='h1']/value"/>
</span>
</h3>
<xsl:if test=".//property[@name = 'content']/value">
<div class="cbp-ntcontent">
<div class="cbp-aside">
456
</div>
<div class="cbp-content">
<xsl:apply-templates select="document(concat('usel://block-content/142,147,160/', @id))/udata" mode="accordion_full"/>
</div>
</div>
</xsl:if>
</li>
</xsl:template>
Решила через переменную, choose и empty, но у меня выдает ошибку на функцию empty, что ее нет...
<xsl:template match="page" mode="accordion-content_full">
<li>
<h3 class="cbp-nttrigger">
<span>
<xsl:value-of select=".//property[@name='h1']/value"/>
</span>
</h3>
<xsl:variable name="content_empty" select=".//property[@name = 'content']/value"/>
<!--<xsl:if test=".//property[@name = 'content']/value"></xsl:if>-->
<xsl:choose>
<xsl:when test="empty($content_empty)">
</xsl:when>
<xsl:otherwise>
<div class="cbp-ntcontent">
<div class="cbp-aside">
456
</div>
<div class="cbp-content">
<xsl:apply-templates select="document(concat('usel://block-content/142,147,160/', @id))/udata" mode="accordion_full"/>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:template>
<xsl:template match="udata" mode="accordion_full">
<xsl:apply-templates select="page" mode="accordion_full"/>
</xsl:template>
<xsl:template match="page" mode="accordion_full" >
<xsl:if test="@type-id='142'">
<div class="block-text">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes"/>
</div>
</xsl:if>
<xsl:if test="@type-id='160'">
<div class="block-text visit_payment">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes"/>
</div>
</xsl:if>
<xsl:if test="@type-id='147'">
<div class="methods">
<div class="block-text">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes"/>
</div>
<ul class="cbp-ntsubaccordion">
<!--<xsl:apply-templates select="/" mode="accordion-content" /> -->
<xsl:apply-templates select="document(concat('usel://block-content-accordion/148/', @id))/udata" mode="accordion-content_block2_3"/>
</ul>
</div>
</xsl:if>
</xsl:template>
Выдает такую ошибку, оставляет первый блок и цепляет к нему не активность, хотя поля заполнены
Warning: XSLTProcessor::transformToXml(): xmlXPathCompOpEval: function empty not found in /home/c/cv65275/ott/public_html/classes/system/subsystems/umiTemplaters/types/umiTemplaterXSLT.php on line 51
Спасибо