Ссылка на платежную квитанцию в личном кабинете (XSLT) — различия между версиями
Velross (обсуждение | вклад) |
Velross (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | '''Актуально для версии 2.9''' | ||
+ | <br /> | ||
+ | |||
'''Как можно получить значение %receipt_signature% в XSLT шаблоне?''' <br> | '''Как можно получить значение %receipt_signature% в XSLT шаблоне?''' <br> | ||
'''Задача:''' необходимо в личном кабинете добавить ссылку на квитанцию.<br> | '''Задача:''' необходимо в личном кабинете добавить ссылку на квитанцию.<br> | ||
Строка 6: | Строка 9: | ||
Однако, возвращать макрос должен не готовую ссылку, а только путь к квитанции, т.е. в 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/ | + | <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>
Теперь, словосочетание «Платежная квитанция» станет ссылкой, нажав на которую, пользователь в новом окне получит квитанцию.