Передача значений на кириллице в кастомный метод
Материал из Umicms
Есть некоторая особенность при использовании переменных на кириллице и кастомных методах, в 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, в данном случае не имеет значения, главное что переменная будет корректно передана и ее можно будет использовать в своем кастомном методе, в котором может быть произведена какая-либо дополнительная выборка данных.
