Выдано 109504 лицензии

Вывод в XSL

Вывод значения дополнительного свойства

Выведем значение дополнительного свойства email:

<xsl:value-of select="property_value[tag_name='email']/value"/>

Вывод ссылки на файл:

<a href="{dir}{property_value[tag_name='file']/file}" target="_blank">Скачать <xsl:value-of select="property_value[tag_name='file']/file_name"/></a>

Показ малого изображения со ссылкой на большое:

<a href="{dir}{property_value[tag_name='file']/file}" target="_blank"><img src="{dir}{property_value[tag_name='file']/file_small}" /></a>

Сортировка значений дополнительных свойств

Значения дополнительных свойств выбираются из нескольких таблиц и не имеют порядка сортировки, в отличии от самих дополнительных свойств. Если Вам необходимо выводить значения дополнительных свойств в порядке сортировки свойств, то в XSL-шаблоне необходимо вместо прямого применения шаблона к property_value применять шаблон к property, а из шаблона property применять шаблон к property_value с ограничением по property_id.

Вариант 1

<xsl:template match="shop_item">
   ...
   <xsl:apply-templates select="/shop/shop_item_properties//property"/>
   ...
</xsl:template>
<xsl:template match="property">
      <xsl:variable name="property_id" select="@id" />
      <xsl:if test="/shop/shop_item/property_value[property_id = $property_id]/value/node() and /shop/shop_item/property_value[property_id = $property_id]/value != '' or /shop/shop_item/property_value[property_id = $property_id]/type != 2">
         <tr>
            <td><xsl:value-of disable-output-escaping="yes" select="name"/></td>
            <xsl:apply-templates select="/shop/shop_item/property_value[property_id = $property_id]" />
         </tr>
      </xsl:if>
</xsl:template>
<xsl:template match="/shop/shop_item/property_value">
      <xsl:variable name="property_id" select="property_id" />
      <xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />
      
      <td style="padding: 5px" bgcolor="#F5F5F5">
         <xsl:choose>
            <xsl:when test="$property/type = 7">
               <input type="checkbox" disabled="disabled">
                  <xsl:if test="value = 1">
                     <xsl:attribute name="checked">checked</xsl:attribute>
                  </xsl:if>
               </input>
            </xsl:when>
            <xsl:otherwise>
               <xsl:value-of disable-output-escaping="yes" select="value"/>
            </xsl:otherwise>
         </xsl:choose>
      </td>
</xsl:template>

Вариант 2

   <!-- Шаблон для товара -->
   <xsl:template match="shop_item">
      ...
         <xsl:variable name="myItem" select="." />
         
         <xsl:for-each select="/shop/shop_item_properties//property">
            <xsl:variable name="propertyId" select="@id" />
            <xsl:choose>
            <xsl:when test="count($myItem/property_value[property_id = $propertyId])">
               <xsl:apply-templates select="$myItem/property_value[property_id = $propertyId]"/>
            </xsl:when>
            <xsl:otherwise><td></td></xsl:otherwise>
            </xsl:choose>
         </xsl:for-each>
      ...
   </xsl:template>

Вариант 3

Используется при сортировке значений дополнительных свойств при выводе списка товаров. Хук вносится в код типовых динамических страниц и добавляет тег sorting для значений доп. свойств (в примере для значений свойств целого и строчного типа).

if (!$Shop_Controller_Show->item)
{
    class Property_Value_Observer
    {
        static public function onBeforeGetXml($object, $args)
        {
            $object->addXmlTag('sorting', $object->Property->sorting);
        }
    }

    Core_Event::attach('property_value_string.onBeforeGetXml', array('Property_Value_Observer', 'onBeforeGetXml'));
    Core_Event::attach('property_value_int.onBeforeGetXml', array('Property_Value_Observer', 'onBeforeGetXml'));    
}

Комментарии

  • andrei.balkin

    Дополнительное свойство группы товаров

    Не выводит полную ссылку а только название файла из дополнительного свойства группы товаров интернет магазина
    Скачать

    10.02.2017 06:53:26 andrei.balkin

    Без темы

    Смотрите у родительского элемента (informationsystem_item или shop_item) будет тег dir с нужным путем.

    10.02.2017 08:47:45 HostCMS
  • По группам я реализовал так

    19.08.2016 13:26:13 sopdu

    доп св-во группы магазина

    вставляем в XLS-шаблон

    12.10.2016 20:11:50 tatyanin
  • Без темы

    а по группам есть пример?

    28.08.2015 22:37:02 alexpimnev