Содержимое
Поиск
События
Все примеры рабочие. Разместить обработчик события нужно в файле /bitrix/php_interface/init.php или /local/php_interface/init.php.
onResizeImage
С версии 2.30.100 задать размер картинок для превью можно в настрйоках модуля
Событие onResizeImage позволяет масштабировать картинки в процессе их вывода под свои нужды. Это может потребоваться в случаях большого количества картинок на странице или больших размеров картинок — вывести маленькие превью, при клике по которым откроется большая картинка.
Также это позволяет на лету подменить картинки, если это необходимо, и т.д.
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler("bxmaker.mdbase", "onResizeImage", "onResizeImage");
function onResizeImage(\Bitrix\Main\Event $event) {
$arParams = $event->getParameter('arParams');
$img = \CFile::ResizeImageGet($event->getParameter('arFile'), array(
'width' => 200, 'height' => 100
), BX_RESIZE_IMAGE_PROPORTIONAL);
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, array(
'resizedUrl' => $img['src']
));
return $result;
}
Парсинг markdown
События
- BXmakerMdbaseComponentDetailBeforeMarkdownParse - вызывается до парсинга markdown разметки и преобразования в html.
- BXmakerMdbaseComponentDetailAfterMarkdownParse - вызывается после парсинга
Передаваемые параметры -
[
'html' => $arElement['HTML'],
'element' => $arElement,
'params' => $this->arParams,
]
Чтобы изменился html, нужно вернуть измененный вариант
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'bxmaker.mdbase',
'BXmakerMdbaseComponentDetailAfterMarkdownParse',
function (\Bitrix\Main\Event $event) {
$params = $event->getParameters();
$chunks = explode('</p>', $params['html']);
if (count($chunks) >= 4) {
$banner = '<div style="padding:20px;background:#f0f0f0;margin:20px 0;">
📬 <strong>Подпишитесь на рассылку!</strong>
</div>';
$out = '';
foreach ($chunks as $i => $chunk) {
$out .= $chunk;
if ($i === 2) {
$out .= '</p>' . $banner;
} elseif ($i < count($chunks) - 1) {
$out .= '</p>';
}
}
$params['html'] = $out;
}
// если несколько событий, и нужно передать исправленый текст следующему обработчику
// $event->setParameter('html', $params['html']);
return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $params);
}
);