Как убрать js и css файлы ядра

10k
Алексей,
Как убрать js и css файлы ядра

Часть можно убрать отключив галочки в настройках модуля, часть только вырезав при завершении буферизации страницы.

Часть можно убрать отключив галочки в настройках модуля, часть только вырезав при завершении буферизации страницы.

Можно отключить настройки главного модуля:

  • Распространять куки на все домены
  • Использовать сервис рекомендаций товаров
  • Включить богатые ссылки и Сохранять изображения локально
  • Использовать защищенное хранение авторизации в cookies
  • Распространять авторизацию на все домены
  • Передавать пароль в зашифрованном виде
  • Продлевать сессию при активности посетителя в окне браузера
  • Продлевать сессию только для авторизованных посетителей
  • Показывать пользователям сообщение об окончании сессии

Для отключения сбора статистики, нужно в файл /bitrix/.settings.php добавить код:

'analytics_counter'  => array(
	'value' => array(
		'enabled' => false,
	),
),

Отключение настроек не убирает все файлы, поэтому надежнее вырезать сам код вставки со страницы.

В файле init.php добавляем обработчик события OnEndBufferContent, в котором регулярками вырезаем теги link и script части ядра.


\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "deleteKernelCss");

function deleteKernelCss (&$content) {
	global $USER;

	if ($USER && !$USER->IsAuthorized()) {
		$arPatternsToRemove = Array(
			'/<link.+?href=".+?kernel_main\/kernel_main_v1\.css\?\d+"[^>]+>/',
			'/<link.+?href=".+?bitrix\/js\/main\/core\/css\/core[^"]+"[^>]+>/',
			'/<script.+?>if\(\!window\.BX\)window\.BX.+?<\/script>/',
			'/<script[^>]+?>\(window\.BX\|\|top\.BX\)\.message[^<]+<\/script>/',
			'/<script.+?src=".+?bitrix\/js\/main\/core\/core[^"]+"><\/script\>/',
			'/<script.+?>BX\.(setCSSList|setJSList)\(\[.+?\]\).*?<\/script>/',
			'/BX\.(setCSSList|setJSList)\(\[.+?\]\);/',
			'/\s{2,}/'
		);

		$content = preg_replace($arPatternsToRemove, " ", $content);

	}
}

Учтите, что нельзя делать это бездумно, часть функционала отвалится, возможно будут js ошибки. Под каждый сайт скрипт нужно подстраивать. Как минимум в персональном разделе его использовать не стоит. Это костыль, за котором придется следить, но без него файлы ядра не убрать.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 10 сентября 2019 | Обновлено 19 октября 2024
производительность, костыли, регулярные выражения, разработчику
Поделиться
Похожие статьи
Загрузка jq плагинов по необходимости
Небольшой пример, как убрать из загрузки fancybox если на странице он не используется.
Читать дальше » 0
Алексей,
Конвертация картинок в webp на битриксе
Картинки в формате WebP "весят" значительно меньше, а сам формат уже поддерживается многим...
Читать дальше » 0
Алексей,
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Часть можно убрать отключив галочки в настройках модуля, часть только вырезав при завершении буферизации страницы.