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

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

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
вывод картинки товара в корзине
« : 12 Апреля 2012, 15:43:20 »
Добрый день.
Искала где нибудь пример для xslt подобный этому:http://wiki.umisoft.ru/%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8E_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B5

в голову пришло только код вида:
<xsl:variable name="opisanie_tovara" select="document(concat('upage://', @id))/udata"/>
<xsl:choose>
<xsl:when test="$opisanie_tovara//property[@name='photo']/value">
<img src="{$opisanie_tovara//property[@name='photo']/value}" width="50"/>
</xsl:when>
</xsl:choose>
Но понятное дело что он не работает.
хотя вроде есть есть id товара то должно вроде как работать...
Может кто уже реализовал подобный функционал?

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #1 : 12 Апреля 2012, 17:22:31 »
точнее... этот код работал бы если бы на странице корзины был бы ID товара... но там другой Id...

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #2 : 12 Апреля 2012, 17:53:51 »
<xsl:variable name="min_photo" select="document(concat('upage://', page/@id))/udata"/>
<xsl:choose>
<xsl:when test="$min_photo//property[@name='photo']/value">
<img src="{$min_photo//property[@name='photo']/value}" width="50"/>
</xsl:when>
</xsl:choose>

Не правильно выводила ID товара.
было upage://', @id))
а надо было upage://', page/@id))

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #3 : 13 Апреля 2012, 08:03:31 »
то есть, с вопросом вы разобрались?

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #4 : 13 Апреля 2012, 08:46:31 »
с тем как вывести в корзину - да.
но надо еще теперь разобраться как вывести всю туже информацию, т.е. картинку, название товара, его цену и количество в письме отправляется клиенту и менеджеру интернет-магазина.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #5 : 13 Апреля 2012, 14:13:06 »
а в чем сложность? шаблон для письма знаете где лежит? макроcы %emarket order(%order_id%)% и %data getPropertyOfObject(%order_id%,delivery_id)% и т.п. вам в помощь

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #6 : 13 Апреля 2012, 15:17:41 »
где лежит шаблон - не знаю... tpl-шный когда то правила, на XSLT...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #7 : 13 Апреля 2012, 15:25:31 »
скорее всего система в вашем случае все еще использует шаблон /tpls/emarket/mail/default.tpl если да, то все выше написанное мною остается в силе, если нет пишите будет вместе разбираться

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #8 : 14 Апреля 2012, 12:30:37 »
не, когда то это над другим проектом.
тут переделывается на базе demodizzy.
шаблон нашла в xslt Tpls\mail\emarket\default.

Письмо приходит вида:
Ваш заказ #9 поступил в обработку
Посмотреть историю заказов вы можете в своем личном кабинете.
Квитанцию на оплату вы можете получить, перейдя по этой ссылке.

шаблон используется в данном случае такой
<xsl:template match="status_notification">
<xsl:text>Ваш заказ #</xsl:text>
<xsl:value-of select="order_number" />
<xsl:text> </xsl:text>
<xsl:value-of select="status" />
<br/><br/>
<xsl:text>Посмотреть историю заказов вы можете в своем </xsl:text>
<a href="http://{domain}/emarket/personal/">
<xsl:text>личном кабинете</xsl:text>
</a>.
</xsl:template>

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #9 : 14 Апреля 2012, 14:08:24 »
и все равно смысл не меняется, просто вместо
Цитировать
макроcы %emarket order(%order_id%)% и %data getPropertyOfObject(%order_id%,delivery_id)% и т.п. вам в помощь

вы используете
<xsl:variable name="order_info" select="document(concat('uobject://',order_number))/udata"/>
теперь в переменно $order_info у вас вся инфа о заказе

вместо  %data getPropertyOfObject(%order_id%,delivery_id)% используете
<xsl:value-of  select="$order_info//property[@name='delivery_id']/value"/>


вместо  %emarket order(%order_id%)% используете
<xsl:apply-templates  select="document(concat('udata://emarket/order/',order_number))/udata"/>

для которого вы можете настроит свой отдельный шаблон, можно дополнительно заглянуть в документацию (http://help-dev.umi-cms.ru/emarket.order.html#xsltDesc)

если инотересно что и как выводить из переменной $order_info, то наберите в адресной строке http://ваш_сайт/uobject/123

где 123 -  id какого-нибудь уже существующего заказа



*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #10 : 07 Мая 2012, 13:19:20 »
скорее всего система в вашем случае все еще использует шаблон /tpls/emarket/mail/default.tpl если да, то все выше написанное мною остается в силе.
а как так получается что сайт на xslt, а отправка писем - используется TPL?

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #11 : 07 Мая 2012, 14:30:07 »
и как сделать что бы система использовала таки шаблон на XSLT что лежит в xslt Tpls\mail\emarket\default.

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #12 : 15 Мая 2012, 00:01:14 »
Цитировать
вместо  %data getPropertyOfObject(%order_id%,delivery_id)% используете
Код:
<xsl:value-of  select="$order_info//property[@name='delivery_id']/value"/>

не понимаю для чего эта конструкция тут нужна.
и как мне правильно выводить из этой переменной значения, что в ней содержатся.

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #13 : 15 Мая 2012, 12:00:24 »
help help help
<xsl:variable name="order_info" select="document(concat('uobject://',order_id))/udata"/>
размещаю в области
<xsl:stylesheet .....> </xsl:stylesheet>

По логике как было указано в переменную $order_info должна поместиться вся инфа о заказе что можно увидеть введя в адресной строке:
http://umi.site.com/uobject://17542
кусочек того что выдает:
<udata xmlns:xlink="http://www.w3.org/TR/xlink" generation-time="0.037899">
<object id="17542" name="Заказ #102" type-id="79" type-guid="emarket-order" ownerId="10">
<properties>
<group id="198" name="order_props">
<title>Свойства заказа</title>
<property id="246" name="order_items" type="relation" multiple="multiple">
<title>Наименования заказа</title>
<value>
<item id="17543" name="Набор Автомобиль" type-id="75" type-guid="emarket-orderitem" ownerId="10" xlink:href="uobject://17543"/>
<item id="17544" name="Набор Фреш-бар" type-id="75" type-guid="emarket-orderitem" ownerId="10" xlink:href="uobject://17544"/>
<item id="17545" name="Набор Семья ежиков" type-id="75" type-guid="emarket-orderitem" ownerId="10" xlink:href="uobject://17545"/>
</value>
</property>
значит можно вытащить какое либо значение,
правильно ли я пишу запрос для вывода какого либо параметра, например значения в атрибуте name в item
<xsl:value-of  select="$order_info//property[@name='order_items']/value/item/@name" />
т.к. не выводит ничего в ответ.
« Последнее редактирование: 15 Мая 2012, 12:07:53 от shoto »

*

andreych

  • *
  • 6
  • +3/-0
    • Просмотр профиля
Re:вывод картинки товара в корзине
« Ответ #14 : 17 Мая 2012, 19:09:02 »
order_id это что такое?
есть вариант, что это либо переменная $order_id, либо попытка вытащить айди из тега order, т.е. order/@id

плюс, размещая в теге stylesheet переменную, мы делаем ее абсолютной, так ли нужно?