Ссылка на платежную квитанцию в личном кабинете (XSLT) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Как можно получить значение %receipt_signature% в XSLT шаблоне? Задача: необходимо в личном кабинете …»)
 
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
Как можно получить значение %receipt_signature% в XSLT шаблоне?  
+
'''Актуально для версии 2.9'''
Задача: необходимо в личном кабинете добавить ссылку на квитанцию.
+
<br />
Примечание: продолжение статьи [[Ссылка на платежную квитанцию в личном кабинете]] применимой для TPL-шаблонизатора.
+
 
 +
'''Как можно получить значение %receipt_signature% в XSLT шаблоне?''' <br>
 +
'''Задача:''' необходимо в личном кабинете добавить ссылку на квитанцию.<br>
 +
'''Примечание:''' продолжение статьи [[Ссылка на платежную квитанцию в личном кабинете]] применимой для TPL-шаблонизатора.<br>
  
 
Используем уже готовый кастомный макрос из статьи для TPL-шаблонизатора receipt_link().
 
Используем уже готовый кастомный макрос из статьи для TPL-шаблонизатора receipt_link().
 
Однако, возвращать макрос должен не готовую ссылку, а только путь к квитанции, т.е. в return подставим переменную $url.
 
Однако, возвращать макрос должен не готовую ссылку, а только путь к квитанции, т.е. в return подставим переменную $url.
  
Применяем решение для XSLT-шаблона (на примере Интернет-магазин Современный):
+
Применяем решение для XSLT-шаблона (на примере Интернет-магазин Современный):<br>
1. Откройте шаблон: /templates/demodizzy/xslt/modules/emarket/orders-list.xsl
+
1. Откройте шаблон: /templates/demodizzy/xslt/modules/emarket/orders-list.xsl<br>
2. Найдите в файле код: <xsl:apply-templates select="document(concat('uobject://', @id, '.payment_id'))//item/@name" />
+
2. Найдите в файле код: <xsl:apply-templates select="document(concat('uobject://', @id, '.payment_id'))//item/@name" /> <br>
 
и вместо него вставьте следующий код:
 
и вместо него вставьте следующий код:
 
<source lang="xml">
 
<source lang="xml">
<xsl:variable name="receiptlink" select="document(concat('udata://custom/receiptcustom/',@id))"/>
+
<xsl:variable name="receiptlink" select="document(concat('udata://custom/receipt_link/',@id))"/>
 
<a href="{$receiptlink}" target="_blank">
 
<a href="{$receiptlink}" target="_blank">
 
   <xsl:apply-templates select="document(concat('uobject://', @id, '.payment_id'))//item/@name" />
 
   <xsl:apply-templates select="document(concat('uobject://', @id, '.payment_id'))//item/@name" />
Строка 22: Строка 25:
  
 
[[Категория:Модуль Интернет магазин]]
 
[[Категория:Модуль Интернет магазин]]
 +
[[Категория:Написание кастомных макросов]]
 +
[[Категория:Верстка в XSLT]]

Текущая версия на 11:51, 7 июня 2013

Актуально для версии 2.9

Как можно получить значение %receipt_signature% в XSLT шаблоне?
Задача: необходимо в личном кабинете добавить ссылку на квитанцию.
Примечание: продолжение статьи Ссылка на платежную квитанцию в личном кабинете применимой для TPL-шаблонизатора.

Используем уже готовый кастомный макрос из статьи для TPL-шаблонизатора receipt_link(). Однако, возвращать макрос должен не готовую ссылку, а только путь к квитанции, т.е. в return подставим переменную $url.

Применяем решение для XSLT-шаблона (на примере Интернет-магазин Современный):
1. Откройте шаблон: /templates/demodizzy/xslt/modules/emarket/orders-list.xsl
2. Найдите в файле код: <xsl:apply-templates select="document(concat('uobject://', @id, '.payment_id'))//item/@name" />
и вместо него вставьте следующий код:

<xsl:variable name="receiptlink" select="document(concat('udata://custom/receipt_link/',@id))"/>
<a href="{$receiptlink}" target="_blank">
   <xsl:apply-templates select="document(concat('uobject://', @id, '.payment_id'))//item/@name" />
</a>

Теперь, словосочетание «Платежная квитанция» станет ссылкой, нажав на которую, пользователь в новом окне получит квитанцию.