Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

kroxa

  • *
  • 21
  • +2/-0
    • Просмотр профиля
    • vilka.by
немного правлю админку интернет магазина столкнулся с проблемой - скорее мое непонимание протокола uobject
в частности задача вывести в списке позиций - возле ссылки на карточку товара еще несколько полей из товара
собственно делаю на основе styles/skins/mac/data/modules/eshop/form.modify.xsl
	<xsl:template match="object" mode="order-item-row">
<xsl:variable name="order-item-discount" select="//property[@name = 'discount_size']/value" />
<xsl:variable name="element-edit-link" select="document(concat('udata://system/getEditLink/', //property[@name = 'catalog_relation']/value))/udata" />
<tr>
<td>
<a href="{$element-edit-link}">
<xsl:value-of select="@name" />
</a>  
</td>
вот тут мне и нужно вывести поле товара, называемое "nalichie"
думал что получится следующий вариант
<xsl:value-of select="document(concat('uobject://', //property[@name = 'catalog_relation']/value))/udata/object//property[@name = 'nalichie']/value" />

но он не работает, может подскажите как же правильно вывести поле из каталога

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод характеристики товара в админске
« Ответ #1 : 06 Ноября 2011, 09:46:50 »
eshop сейчас нет под рукой чтобы посмотреть как он устроен, но предполагаю  что дело в том, что и откуда вы пытаетесь вывести

проверте есть ли в возвращаемом результате такого кода
<xsl:copy-of select="document(concat('uobject://', //property[@name = 'catalog_relation']/value))/udata" />

а вообще заглянув в старый архив увидел такой код
                <xsl:variable name="order-object-info" select="document(@xlink:href)/udata/object"/>
                <xsl:variable name="element-id" select="$order-object-info//property[@name = 'catalog_relation']/value"/>
<xsl:variable name="element-info" select="document(concat('upage://', $element-id))/udata/page"/>
<xsl:variable name="element-price" select="$element-info//property[@name = 'price']/value"/>

так что property[@name = 'catalog_relation']/value возвращает не id объекта "товар в корзине" , а id страницы товара который положили в корзину

*

kroxa

  • *
  • 21
  • +2/-0
    • Просмотр профиля
    • vilka.by
Re:Вывод характеристики товара в админске
« Ответ #2 : 06 Ноября 2011, 16:01:25 »
спасибо за подробный ответ
может быть подскажите какой-то способ попроще все-таки получить Id товара (вернее мне-то нужно определенное поле товара)
пробовал таким образом... но что-то полностью запутался
<xsl:value-of select="document(concat('upage://', //property[@name = 'catalog_relation']/value, '.nalichie'))//value" disable-output-escaping="yes"/> 

попробовал вроде так работает http://vilka.by/upage/26640.nalichie
<udata generation-time="0.007592"><property id="9188" name="nalichie" type="relation"><title>Наличие</title><value><item id="58141" name="Постараемся привезти :)" type-id="707" ownerId="44897" xlink:href="uobject://58141"/></value></property></udata><!-- This page generated in 0.072996 secs -->
« Последнее редактирование: 06 Ноября 2011, 16:56:00 от kroxa »

*

kroxa

  • *
  • 21
  • +2/-0
    • Просмотр профиля
    • vilka.by
Re:Вывод характеристики товара в админске
« Ответ #3 : 10 Ноября 2011, 01:47:08 »
наконец - прочитал основы xslt  :) хватило самой краткой информации на citforum.ru, хотелось бы что бы в документации уми появился хотя бы раздел примеров вывода полей всех типов

в общем вот решение, если кому-то будет что-то подобное нужно
Цитировать
<xsl:template match="object" mode="order-item-row">
   <xsl:variable name="element-page-id" select="//property[@name = 'catalog_relation']/value"/>
   <xsl:variable name="element-id" select="document(concat('upage://', //property[@name = 'catalog_relation']/value))//udata/page/@object-id"/>

вывод поля через страницу товара в заказе=
<xsl:value-of select="document(concat('upage://', $element-page-id, '.nalichie'))//udata/property/value/item/@name"/>   
вывод поля через объет=
<xsl:value-of select="document(concat('uobject://', $element-id))//property[@name = 'nalichie']/value/item/@name" />

спасибо за подсказки - сайт оправдывает свое наименование umihelp
« Последнее редактирование: 10 Ноября 2011, 01:49:57 от kroxa »