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

Шорткоды от стандартного модуля можно использовать только в контенте документов, инфосистем и т.д. С помощью этого хака шорткоды можно будет использовать в любом месте: в макете, в 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