Вывод суммы заказа на всех этапах заказа — различия между версиями
Alexei (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9''' Задача: Вывести сумму заказа на всех этапах оформления заказа. …») |
Alexei (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 38: | Строка 38: | ||
<xsl:value-of select="document('udata://custom/lastOrderPrice')/udata" /> | <xsl:value-of select="document('udata://custom/lastOrderPrice')/udata" /> | ||
</source> | </source> | ||
+ | На примере demodizzy ее можно вставить в templates/demodizzy/xslt/modules/emarket/purchase.xsl после строки | ||
+ | <source lang="xml"> | ||
+ | <xsl:apply-templates select="document('udata://emarket/purchase')" /> | ||
+ | </source> | ||
+ | [[Файл:lastOrderPrice2.png]] | ||
[[Категория:API]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Написание кастомных макросов]][[Категория:Модуль Интернет магазин]] | [[Категория:API]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Написание кастомных макросов]][[Категория:Модуль Интернет магазин]] |
Текущая версия на 14:13, 28 июня 2013
Актуально для версии 2.9
Задача: Вывести сумму заказа на всех этапах оформления заказа.
Реализуем решение данной задачи с помощью кастомного макроса, в котором с помощью выборки selector получаем значение суммы из последнего существующего заказа. В файл classes/modules/custom.php после //TODO: Write your own macroses here необходимо вставить следующий код:
public function lastOrderPrice () {
$pages = new selector('objects');
$pages->types('object-type')->id(24);
$pages->order('id')->desc();
$pages->limit(0,1);
Здесь мы выбираем самый последний существующий заказ
$page = $pages->result;
$price_order=$page[0]->getValue('total_price');
return $price_order;
}
Теперь в переменную $price_order передаем сумму нашего заказа. Осталось вывести это в шаблоне. В TPL-шаблонизаторе, к примеру, чтобы вывести на странице выбора адреса доставки необходимо в шаблоне tpls/emarket/delivery/default.tpl в блоке 'delivery_address_block' после формы вставить следующую строку:
<p>Сумма Вашего заказа - %custom lastOrderPrice()% рублей.</p>
В остальные шаблоны добавление аналогичное. В XSLT-шаблонизаторе вывести значение этой переменной можно с помощью следующей строки:
<xsl:value-of select="document('udata://custom/lastOrderPrice')/udata" />
На примере demodizzy ее можно вставить в templates/demodizzy/xslt/modules/emarket/purchase.xsl после строки
<xsl:apply-templates select="document('udata://emarket/purchase')" />