Потребовалось нашей команде изменить встроенный модуль генерации sitemap.xml, тот, что относительно новый: "Административная панель bitrix" -> "Маркетинг" -> "Настройка sitemap.xml", и я дописал свой код в файл /bitrix/modules/seo/admin/seo_sitemap_run.php
Вопрос первый: Думаю, что менять код модуля непосредственно в нативном файле модуля - плохая идея. Ведь если разработчики bitrix сами изменят тот же файл, то при очередном обновлении системы мои правки в нём исчезнут. Будут перезаписаны. Как дополнить функционал правильно? Возможно в системе есть внутренние события, которые можно как-нибудь перехватить? Например событие после успешной генерации новой карты. Поскольку мне требовалось после генерации xml файлы объемом более 100 килобайт разделить на несколько мелких, я дописал этот функционал в самый конец seo_sitemap_run.php, когда модуль возвращает сообщение об успешной генерации.
Вопрос второй: Мои дополнения срабатывают только при ручном запуске генератора xml из админки. Если включить в настройках генерации ссылок для iblock автоматическое изменение карты при добавлении/удалении позиции (товара), то после синхронизации с 1С или после ручного добавления любой сущности в инфоблок, срабатывает автозапуск, карта sitemap.xml перезаписывается без учёта моих дополнений в seo_sitemap_run.php, что и логично. Ведь я переписал только конкретно этот файл запускающийся из админки. Как добавить те же запрограммированные мной действия к процессу автогенерации?
Вопрос первый: Думаю, что менять код модуля непосредственно в нативном файле модуля - плохая идея. Ведь если разработчики bitrix сами изменят тот же файл, то при очередном обновлении системы мои правки в нём исчезнут. Будут перезаписаны. Как дополнить функционал правильно? Возможно в системе есть внутренние события, которые можно как-нибудь перехватить? Например событие после успешной генерации новой карты. Поскольку мне требовалось после генерации xml файлы объемом более 100 килобайт разделить на несколько мелких, я дописал этот функционал в самый конец seo_sitemap_run.php, когда модуль возвращает сообщение об успешной генерации.
Вопрос второй: Мои дополнения срабатывают только при ручном запуске генератора xml из админки. Если включить в настройках генерации ссылок для iblock автоматическое изменение карты при добавлении/удалении позиции (товара), то после синхронизации с 1С или после ручного добавления любой сущности в инфоблок, срабатывает автозапуск, карта sitemap.xml перезаписывается без учёта моих дополнений в seo_sitemap_run.php, что и логично. Ведь я переписал только конкретно этот файл запускающийся из админки. Как добавить те же запрограммированные мной действия к процессу автогенерации?