Всем привет!
Есть такая задача - во время установки модуля, нужно чтоб на страницах сайта, перед элементов с id="header" вставлялся бы код вызова компонента моего модуля.
Вот сам код вызова:
Нужно именно не руками его разместить в header.php шаблона, а чтоб динамически, при установке модуля, модуль бы искал DOM-узел с id="header" и перед ним вставлял бы код вызова моего компонента, и чтоб компонент отрабатывал бы.
Сам компонент просто выводит текст из настроек модуля.
Первое что пришло в голову - написать в своём модуле обработчик события OnEpilog. Вот код обработчика:
Вот содержимое скрипта script.js:
Всё работает, только вот на странице появляется не результат работы компоненты, а просто текст с вызовом компонента.
Подскажите, что я не так делаю? Как заставить битрикс понять, что это именно php-код, который нужно исполнить?
Есть такая задача - во время установки модуля, нужно чтоб на страницах сайта, перед элементов с id="header" вставлялся бы код вызова компонента моего модуля.
Вот сам код вызова:
| Код |
|---|
<? $APPLICATION->IncludeComponent( "custom:message.block", "", [] ); ?> |
Сам компонент просто выводит текст из настроек модуля.
Первое что пришло в голову - написать в своём модуле обработчик события OnEpilog. Вот код обработчика:
| Код |
|---|
public static function OnEpilogHandler()
{
global $APPLICATION;
$APPLICATION->AddHeadScript('/bitrix/js/my.notify/script.js');
} |
Вот содержимое скрипта script.js:
| Код |
|---|
BX.ready(function(){
console.log('BX.ready function');
let header = BX('header');
console.log('header:');
console.log(header);
let insertedText = '<?$APPLICATION->IncludeComponent(' +
'"custom:message.block",' +
'"",' +
'[]' +
');?>';
BX.insertBefore(BX.create('div', {
text: insertedText
}), header);
}); |
Всё работает, только вот на странице появляется не результат работы компоненты, а просто текст с вызовом компонента.
Подскажите, что я не так делаю? Как заставить битрикс понять, что это именно php-код, который нужно исполнить?