Передача значений на кириллице в кастомный метод

Материал из Umicms
Версия от 20:27, 4 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Есть некоторая особенность при использовании переменных на кириллице и кастомных методах, в XSL-Шаблоне, переменные необходимо пропускать через php-функцию urlencode. В XSLT возможно использование php-функций, для этого необходимо в stylesheet добавить атрибут xmlns:php="http://php.net/xsl" Используемый XSL-шаблон будет выглядеть примерно следующим образом:

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet	version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
 xmlns:umi="http://www.umi-cms.ru/TR/umi"
 xmlns:php="http://php.net/xsl">


<xsl:template match="udata[@method = 'getObjectsList'][total]">
   <!-- param1 - значение на кириллице -->
   <xsl:variable name="param1" select="document('upage://11.h1')/udata/property/value"  />
   Сумма: <xsl:value-of select="document(concat('udata://custom/mycustom/', php:function('urlencode', string($param1))))"/>

...
</xsl:template>


</xsl:stylesheet>

Содержимое метода mycustom(), в файле classes/modules/custom.php, в данном случае не имеет значения, главное что переменная будет корректно передана и ее можно будет использовать в своем кастомном методе, в котором может быть произведена какая-либо дополнительная выборка данных.