UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Sumrakrnd от 18 Апреля 2016, 13:56:55

Название: Проблема вывода даты из order
Отправлено: Sumrakrnd от 18 Апреля 2016, 13:56:55
Доброго времени суток.
Есть архив заказов, надо вывести дату из ордеров, которые находятся в модуле Интернет-магазина
http://prntscr.com/atoy8o - как говорится поле в ордерах есть.

Думала, что не сложно, так как из этих ордеров вызывается цена.
<xsl:value-of select="total-price/actual"/>

И соответственно по этой же схеме я прописала:
<xsl:value-of select="order_date/actual"/>

Но дата не добавилась..
actual убирать пробовала


Как вывести дату?  :(
Название: Re: Проблема вывода даты из order
Отправлено: aghigay от 18 Апреля 2016, 14:33:31
Вот снова одно и то же - когда вы уже научитесь отлаживать?

Выведите данные, которые поступают в шаблон, и увидите что имеете. С этим и будете работать. Скорее всего там не будет как такового объекта order, а будет только его условное быстрое представление. А для получения самого ордера придется воспользоваться конструкцией uobject://id
Название: Re: Проблема вывода даты из order
Отправлено: Sumrakrnd от 18 Апреля 2016, 18:40:28
т.е. вот так получается?
<xsl:value-of select="document(concat('uobject://', @id, '.order_date'))//value" />
Поле все равно осталось пустое (

Если я делаю запрос uobject://111202/ - получаю xml отдельного заказа:
<udata generation-time="0.018565">
 <object id="111202" name="Заказ #1" type-id="52" type-guid="emarket-order" ownerId="2">
  <properties>
   <group id="58" name="order_props">
....   
 <property id="130" name="order_date" type="date">
     <title>field-order_date</title>
     <value formatted-date="14.10.2015 18:29" unix-timestamp="1444836560">Wed, 14 Oct 2015 18:29:20 +0300</value>
    </property>
....
   </group>
  </properties>
 </object>
</udata>

При запросе udata://emarket/ordersList/ - получаю xml:
<udata module="emarket" method="ordersList" generation-time="0.046638">
 <items>
...
  <item id="111202" name="Заказ #1" type-id="52" type-guid="emarket-order" ownerId="2" xlink:href="uobject://111202"/>
  <item id="111208" name="Заказ #2" type-id="52" type-guid="emarket-order" ownerId="2" xlink:href="uobject://111208"/>
....
 </items>
</udata>

Вывод:
<xsl:apply-templates select="document(concat('udata://emarket/order/',@id))/udata" mode="orderItemList"/>
Название: Re: Проблема вывода даты из order
Отправлено: aghigay от 18 Апреля 2016, 23:00:47
<xsl:copy-of select="concat('uobject://', @id)" />
<xsl:copy-of select="document(concat('uobject://', @id))" />
<xsl:copy-of select="document(concat('uobject://', @id))//property[@name = 'order_date']" />
Название: Re: Проблема вывода даты из order
Отправлено: Sumrakrnd от 19 Апреля 2016, 10:29:13
Первые два дают результат, а последний нет :(

При втором, выдает все соответствующие поля, кроме order_date, хотя если вводишь в адресной строке конкретный uobject://111202/, оно есть ((

    <xsl:template match="page[@type-id='151']" mode="page">
        <div class="wrapper">
            <div class="middle second-middle">
                <div class="config-header">
                    <ul>
                        <li>
                            <a href="javascript:void(0)" onClick="return false;">Конфигуратор</a>
                        </li>
                        <li>
                            <a href="javascript:void(0)" onClick="return false;">Формирование отчета</a>
                        </li>
                        <li class="active">
                            <a href="javascript:void(0)" onClick="return false;">Архив отчетов</a>
                        </li>
                    </ul>
                </div>
                <xsl:apply-templates select="document('udata://emarket/ordersList/notemplate/asc')/udata" mode="orderlist"/>
            </div>
        </div>
</xsl:template>

    <xsl:template match="udata" mode="orderlist">
        <xsl:apply-templates select="items/item" mode="orderlist"/>
    </xsl:template>

    <xsl:template match="item" mode="orderlist">
        <div class="table-preset">
            <table>
                <thead>
                    <tr>
                        <td umi:element-id="{@id}" umi:region="row" umi:field-name="name" umi:empty="&empty-section-name;" umi:delete="delete">
<xsl:value-of select="@name"/>
</td>
                        <td>Артикул</td>
                        <td>Наименование</td>
                        <td>Цена</td>
                        <td>Количество</td>
                        <td>Сумма</td>
                        <td>Дата</td>
                    </tr>
                </thead>
                <tbody>
                    <xsl:apply-templates select="document(concat('udata://emarket/order/',@id))/udata" mode="orderItemList"/>
                </tbody>
            </table>
        </div>
    </xsl:template>


    <xsl:template match="udata" mode="orderItemList">
        <xsl:apply-templates select="items/item" mode="orderItemList"/>
    </xsl:template>

    <xsl:template match="item" mode="orderItemList">
        <tr>
            <td>
                <xsl:value-of select="position()"/>
            </td>
            <td>
                <xsl:value-of select="document(concat('upage://',page/@id))/udata//property[@name='artikul']/value"/>
            </td>
            <td>
                <p>
                    <xsl:value-of select="@name"/>
                </p>
            </td>
            <td>
                <p>
                    <xsl:value-of select="price/actual"/>
                </p>
            </td>
            <td style="text-align: center;">
                <p>
                    <xsl:value-of select="amount"/>
                </p>
            </td>
            <td>
                <p>
                    <xsl:value-of select="total-price/actual"/>
                </p>
            </td>
            <td>
                <p>
                    <xsl:copy-of select="concat('uobject://', @id)" />
                    <xsl:copy-of select="document(concat('uobject://', @id))" />
                    <xsl:copy-of select="document(concat('uobject://', @id))//property[@name = 'order_date']" />
                    <!--<xsl:value-of select="document(concat('uobject://', @id, '.order_date'))//value" />-->   
                </p>
            </td>
        </tr>
    </xsl:template>
Название: Re: Проблема вывода даты из order
Отправлено: aghigay от 19 Апреля 2016, 11:44:54
А уверены что есть property с именем order_date?
Название: Re: Проблема вывода даты из order
Отправлено: Sumrakrnd от 19 Апреля 2016, 11:50:06
если пишешь в адресной строке обращение к конкретному заказу uobject://111202/ например, он его видит :(
<udata generation-time="0.018565">
 <object id="111202" name="Заказ #1" type-id="52" type-guid="emarket-order" ownerId="2">
  <properties>
   <group id="58" name="order_props">
....   
 <property id="130" name="order_date" type="date">
     <title>field-order_date</title>
     <value formatted-date="14.10.2015 18:29" unix-timestamp="1444836560">Wed, 14 Oct 2015 18:29:20 +0300</value>
    </property>
....
   </group>
  </properties>
 </object>
</udata>
Название: Re: Проблема вывода даты из order
Отправлено: aghigay от 19 Апреля 2016, 11:56:26
А если пишешь <xsl:copy-of select="concat('uobject://', @id)" /> он выводит uobject://111202 ?
Название: Re: Проблема вывода даты из order
Отправлено: Sumrakrnd от 19 Апреля 2016, 12:15:01
Кстати, нет. >.<
Он выводит объект товара в заказе, а не сам заказ.
Название: Re: Проблема вывода даты из order
Отправлено: aghigay от 19 Апреля 2016, 12:46:22
Тут должен быть огромный такой объем саркастических утверждений в виде "Да ладно?" и "Я же говорил"

Может все-таки сходите на курс и послушаете как нужно делать?