Как убрать 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->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 | Обновлено 12 Сентября 2019
производительность, костыли, регулярные выражения, разработчику

Возврат к списку

Комментарии