Запрет выполнения метода в XSLT при вызове его через браузер
Материал из Umicms
Актуально до версии 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-шаблона.