Запрет выполнения метода в XSLT при вызове его через браузер — различия между версиями
Материал из Umicms
VITL' (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
+ | '''Актуально до версии 2.8.5.1''' | ||
+ | |||
Если вы уже не раз писали кастомные макросы для ваших проектов, смотрели логику работу стандартных макросов системы, то скорее всего встречали в начале методов такую строчку кода: | Если вы уже не раз писали кастомные макросы для ваших проектов, смотрели логику работу стандартных макросов системы, то скорее всего встречали в начале методов такую строчку кода: | ||
<pre> | <pre> |
Текущая версия на 16:01, 27 декабря 2013
Актуально до версии 2.8.5.1
Если вы уже не раз писали кастомные макросы для ваших проектов, смотрели логику работу стандартных макросов системы, то скорее всего встречали в начале методов такую строчку кода:
if($this->breakMe()) return;
Сам метод breakMe() находится в файле classes/modules/def_module.php. Если текущий режим admin или используется XSLT-шаблонизатор, то при подобном вызове через браузер:
http://ваш_сайт/catalog/category/
не произойдет выполнение метода category(), если в начале метода стоит:
if($this->breakMe()) return;
но в xsl-шаблоне, стандартным образом можно будет запустить выполнение метода через xsl:apply-templates. Подобный запрет необходим, когда создается кастомная системная страница и необходимо контролировать выполнение метода внутри xsl-шаблона.