UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: MIke от 27 Мая 2013, 09:09:19

Название: Обработка ошибки вызова кастомного макроса.
Отправлено: MIke от 27 Мая 2013, 09:09:19
Создан кастомный макрос в модуле filemanager.
Вызывается так: 
<a href="/udata/filemanager/price_download/price/price2.xls">Скачать прайс-лист</a>
На него установлены права.
Отрабатывается все правильно. У пользователей без прав появляется страница:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="filemanager" method="price_download" generation-time="0.048547">
<error code="require-more-permissions">
Ваших прав недостаточно, чтобы совершить это действие
</error>
</udata>

В документации (http://dev.docs.umi-cms.ru/shablony_i_makrosy/obrabotka_i_otobrazhenie_oshibok_makrosov/oshibki_vyzova_makrosa/ (http://dev.docs.umi-cms.ru/shablony_i_makrosy/obrabotka_i_otobrazhenie_oshibok_makrosov/oshibki_vyzova_makrosa/)) по UMI написано: При желании на этот случай мы можем описать шаблон (задав соответствие match="udata[error]") и обработать нужным образом результат.

Так вот, пытаюсь обработать и выдать пользователю свою страницу, но ничего не происходит.
В шаблоне пишу так:
<xsl:template match="udata[@module = 'filemanager'][@method = 'price_download'][error]">
  <p>Для скачивания прайс-листа необходима авторизация!</p>
</xsl:template>
Название: Re:Обработка ошибки вызова кастомного макроса.
Отправлено: MIke от 29 Мая 2013, 10:07:00
Ну что, господа, неужели никто не переопределял вывод ошибок?
:)
Название: Re:Обработка ошибки вызова кастомного макроса.
Отправлено: crazygeorgio от 31 Мая 2013, 01:09:58
по сути код должен работать, а как происходит вызов самого узла udata в вашем шаблоне? просто может его перекрывают более подходящие правила...
Название: Re:Обработка ошибки вызова кастомного макроса.
Отправлено: MIke от 31 Мая 2013, 08:43:11
по сути код должен работать, а как происходит вызов самого узла udata в вашем шаблоне? просто может его перекрывают более подходящие правила...
Ну метод же кастомный и вызов его в одном месте, как и писал ранее:
<a href="/udata/filemanager/price_download/price/price2.xls">Скачать прайс-лист</a>

И потом, если бы его перекрывали другие правила, то не выводилось бы наверное такое на странице: "This XML file does not appear to have any style information associated with it. The document tree is shown below."
Название: Re:Обработка ошибки вызова кастомного макроса.
Отправлено: admin от 31 Мая 2013, 13:17:34
возможно имеет смылс сделать так:

1. сcылку переделать
<a href="/filemanager/price_download/price/price2.xls">Скачать прайс-лист</a>

создать шаблон вида
<xsl:template match="result[@module = 'filemanager' and @method = 'price_download' and  error]">
  <p>Для скачивания прайс-листа необходима авторизация!</p>
</xsl:template>

или такого
<xsl:template match="result[@module = 'filemanager' and @method = 'price_download' and udata/error]">
  <p>Для скачивания прайс-листа необходима авторизация!</p>
</xsl:template>