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

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

Ответов: 1
Просмотров: 1512
Последний ответ 23 Марта 2017, 01:17:55
от aghigay
Проблемы уведомления клиента при смене статуса заказа и доставки

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

Ответов: 7
Просмотров: 4257
Последний ответ 05 Января 2016, 00:59:01
от admin
Способ оплаты в зависимости от способа доставки

Автор TanyaРаздел Настройка системы и модулей

Ответов: 15
Просмотров: 9644
Последний ответ 14 Декабря 2011, 08:30:25
от admin
Как вывести комментарий при выборе способа доставки

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

Ответов: 4
Просмотров: 3499
Последний ответ 03 Июля 2012, 09:24:20
от admin
Как вывести комментарий при выборе способа доставки

Автор adminРаздел Шаблоны TPL

Ответов: 0
Просмотров: 2481
Последний ответ 03 Июля 2012, 09:23:33
от admin

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

*

Veinard

  • *
  • 30
  • +0/-0
    • Просмотр профиля
Помогите немного пожалуйста, что-то запутался немного.
Вот есть объект покупателя, у которого есть данные об адресах доставки

<group id="209" name="delivery">
    <title>Доставка</title>
    <property id="286" name="delivery_addresses" type="relation" multiple="multiple">
        <title>Адреса доставки</title>
        <value>
            <item id="6209" name="Address for customer #6177" type-id="37" type-guid="emarket-deliveryaddress" xlink:href="uobject://6209"/>
            <item id="6213" name="Address for customer #6177" type-id="37" type-guid="emarket-deliveryaddress" xlink:href="uobject://6213"/>
        </value>
    </property>
</group>

Внутри объекта адреса уже есть конструкции вида
<property id="70" name="city" type="string">
    <title>Город</title>
    <value>Москва</value>
</property>

Вот мне надо вытащить данные типа "Москва, ул. Такаято, дом такой-то". Но не придумал как =(.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Достать адрес доставки из покупателя
« Ответ #1 : 07 Ноября 2014, 21:10:22 »
где именно вы его вытягиваете?

Возможно вам хватит такого кода:

Вначале, надо получить id адреса из данных у покупателя. Предположим, у нас уже есть переменная с данными о пользователе и нам нужен первый из его адресов.
<xsl:variable name="adress_id" select="$user_info//property[@name='delivery_addresses']/value/item[1]/@id" />

Затем, берем объект адреса
<xsl:variable name="adress_info" select="document(concat('uobject://',$adress_id))/udata" />

Затем, перебираем property этого адреса и выводим их в нужном виде.
Например так:
<xsl:apply-templates select="$adress_info//property" mode="adres_info"/>

и шаблон для их вывода:
<xsl:template match="property" mode="adres_info">
    <xsl:value-of select="title"/>:
    <xsl:value-of select="value"/><br/>
</xsl:template>

P.S. некоторые поля в объекте адреса вам не нужны, так что прописывайте в вызове property ограничения. Так же помните что некоторые поля, например страна, это выпадающий список и там значение будет выводиться не
<xsl:value-of select="value"/>
а
<xsl:value-of select="value/item/@name"/>