Использование шорткодов от стандартного модуля в любом месте

Шорткоды от стандартного модуля можно использовать только в контенте документов, инфосистем и т.д. С помощью этого хака шорткоды можно будет использовать в любом месте: в макете, в xsl шаблоне.

Для этого нам понадобится повесить событие на вывод контента и создать обработчик этого события.

Создаем файл modules/apply/shortcodes.php и записываем в него этот код

<?php

class Apply_Shortcodes {

    static public function applyShortcodes(Core_Response $oResponse) {
        $sContent = $oResponse->getBody();
        $sContent = Shortcode_Controller::instance()->applyShortcodes($sContent);
        $oResponse->changeBody($sContent);

    }
}

?>

В файл bootstrap.php дописываем строку

Core_Event::attach('Core_Response.onBeforeCompress', array('Apply_Shortcodes', 'applyShortcodes'));

24.07.2018