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

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

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

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

<?php class Apply_Shortcodes { static public function applyShortcodes(Core_Response $oResponse) { if (Core::moduleIsActive('shortcode')) { $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