Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод количества объектов в категории. XSLT

Автор idu.kuruРаздел Шаблоны XSLT

Ответов: 6
Просмотров: 1826
Последний ответ 18 Октябрь 2014, 17:39:24
от idu.kuru
Сортировка по алфавиту в xslt

Автор VladimirРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 2333
Последний ответ 14 Январь 2012, 17:25:36
от admin
Не выводятся все теги в xslt

Автор goodprofyРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 1690
Последний ответ 03 Июнь 2014, 13:52:04
от goodprofy
webforms & XSLT & модальное окно

Автор graveРаздел JS и AJAX

Ответов: 8
Просмотров: 5442
Последний ответ 13 Июнь 2011, 00:41:56
от talanter
Опции товара + количество для этой опции

Автор kibal4iwРаздел Макросы UMI.CMS

Ответов: 6
Просмотров: 3723
Последний ответ 13 Апрель 2012, 18:15:38
от kibal4iw

0 Пользователей и 1 Гость просматривают эту тему.

*

john

  • ***
  • 203
  • +6/-0
    • Просмотр профиля
Вывожу объект каталога, и к нему поле группы описания.
В файле object-view.xsl, макросом
<xsl:apply-templates select=".//group[@name = '&group-parameter;']" mode="table" />
Так же в этом файле вывожу из группы описания, конкретную строчку описания.
макросом
<xsl:apply-templates select=".//property[@name = '&artikul;']" mode="table" />.

А вот когда я вывожу список объектов каталога, редактирую файл common.xsl
Пытаясь вывести конкретную строчку к каждому объекту
Макросом <xsl:apply-templates select=".//property[@name = '&artikul;']" mode="table" />
Объекты выводятся как обычно, но нужной строчки не появляется,
тут как то по другому надо выводить?

*

grave

  • *****
  • 32
  • +4/-0
    • Просмотр профиля
    • Студия Webartika
как-то так наверное
<xsl:apply-templates select="document(concat(@xlink:href,'.&artikul;'))" mode="table" />
« Последнее редактирование: 22 Июнь 2011, 09:48:15 от grave »

*

john

  • ***
  • 203
  • +6/-0
    • Просмотр профиля
Как настроить шаблон по выводу значений у объекта?
В файле common.xsl

         <a href="{@link}" class="title" umi:element-id="{@id}" umi:field-name="name" umi:delete="delete">
            <xsl:value-of select="name" />
            <xsl:if test="not(name)">
               <xsl:apply-templates />
            </xsl:if>
         </a>           

         <div class="price">
            <span umi:element-id="{@id}" umi:field-name="price">
               <xsl:apply-templates select="document(concat('udata://emarket/price/', @id))" />         
            </span>
         </div>           

           
         <div class="add_from_list">
            <a   id="add_basket_{@id}"
               class="button basket_list options_{$is_options}"
               href="{$lang-prefix}/emarket/basket/put/element/{@id}/">
               <xsl:text>&basket-add;</xsl:text>
               <xsl:variable name="element_id" select="@id" />
               <xsl:if test="$cart_items and $cart_items/item[page/@id = $element_id]">
                  <xsl:text> (</xsl:text>
                  <xsl:value-of select="sum($cart_items/item[page/@id = $element_id]/amount)" />
                  <xsl:text>)</xsl:text>
               </xsl:if>
            </a>
         </div>

Вывел: название - цена - кнопка добавить в корзину.
А я хочу добавить:название - цена - КОЛИЧЕСТВО НА СКЛАДЕ -  кнопка добавить в корзину.

<xsl:apply-templates select="document(concat(@xlink:href,'.&artikul;'))" mode="table" /> использовал этот макрос так он всю страницу с объектами съедает и выводится один объект.

*

john

  • ***
  • 203
  • +6/-0
    • Просмотр профиля
Ок, помогите разобраться тогда с выводом цены, чтобы можно было выводить потом не только цену.

1. В админке - раздел шаблоны данных - выбираю редактировать объект каталога
    Есть ценовые св-ва с полем price
2. Следующие упоминания о цене в файле /xslttpls/modules/catalog/common.xsl
 
         <div class="price">
            <span umi:element-id="{@id}" umi:field-name="price">
               <xsl:apply-templates select="document(concat('udata://emarket/price/', @id))" />         
            </span>
         </div> 

3. Далее обращаемся в папку /xslttpls/modules/emarket/common.xsl
подключаем файл    
<xsl:include href="price.xsl" />

4. В файле price.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet   version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:template match="udata[@method = 'price']">
      <xsl:apply-templates select="price" />
   </xsl:template>
   
   <xsl:template match="price|total-price">
      <xsl:value-of select="concat(@prefix, ' ', actual, ' ', @suffix)" />
   </xsl:template>

</xsl:stylesheet>

Правильно ли я выстроил цепочку?

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
выглядит правильно,

Цитировать
Вывел: название - цена - кнопка добавить в корзину.
А я хочу добавить:название - цена - КОЛИЧЕСТВО НА СКЛАДЕ -  кнопка добавить в корзину.
а насчет вывода какого-то свойства, то это делается так...
если мы говорим о выводе информации на странице товара, то можно так

 <xsl:value-of select="//property[@name='название_свойства']/value" />  (если это поле типа строка, так как поле типа выпадающий список будет выводиться так)   
<xsl:value-of select="//property[@name='название_свойства']/value/item/@name" />, можно через  xsl:apply-templates обращаться к свойству, тогда прописывая шаблон для вывода данных уже можно там учитывать тип поля (смотрите примеры в demodizzy)

, ну а если мы хотим вывести свойство на странице вывода списка товаров, то необходимо вначале получить все зполя, а потом их уже выводить, например так:

<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:value-of select="$item//property[@name='название_свойства']/value" />