Здравствуйте!
Возникла небольшая проблема при работе с доп.свойствами.
Когда я добавляю новое поле для товаров и заполняю, то на сайте в товарной карточке оно автоматически выводится на ряду с другими дополнительными полями.
Мне необходимо, чтобы это поле можно было вывести отдельно от общего списка.
Для этого я использую следующую комбинацию:
<xsl:if test="property_value[tag_name='old_price']/value !=''">
<p><strong>Старая цена</strong>: <span style="text-decoration:line-through;"><xsl:value-of select="property_value[tag_name='old_price']/value"/></span></p>
</xsl:if>
, где
old_price — тег доп.поля.
Чтобы убрать его из общего списка дополнительных полей, применяется такая конструкция:
<xsl:if test="count(property_value[not(file/node()) and property_dir_id = 0])">
<xsl:apply-templates select="/shop/shop_item/property_value[not(file/node()) and property_dir_id = 0 and tag_name!='old_price']"/>
</xsl:if>
Работает все хорошо, все как надо.
Но мне понадобилось провести такую же «операцию» с другим дополнительным полем.
Название нового доп.поля —
specify , соотвественно код имеет следующий вид:
<xsl:if test="property_value[tag_name='specify']/value !=''">
<p><strong>Спецификация</strong>: <xsl:value-of select="property_value[tag_name='specify']/value"/></p>
</xsl:if>
и убираем из общего потока:
<xsl:if test="count(property_value[not(file/node()) and property_dir_id = 0])">
<xsl:apply-templates select="/shop/shop_item/property_value[not(file/node()) and property_dir_id = 0 and tag_name!='specify']"/>
</xsl:if>
Но такая комбинация не работает. Точнее, доп.поля specify и old_price выводится в другом месте, но из общего списка он не убираются. Очевидно, что не правильно код написан, но я не могу понять, в чем конкретно ошибка.
Буду благодарен за помощь!