Быстрый и надёжный хостинг на SSD-дисках от 165р в месяц   •   Реклама
3 791 просм
9 комм
Поделиться:

Минификация (сжатие) исходного кода (HTML) в Bitrix на PHP

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

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

Если говорить еще проще – мы делаем HTML-файл в одну строку.

Для чего это требуется? Таким образом мы удаляем мусор и уменьшаем вес HTML-страницы, тем самым в какой-то степени ускоряем загрузку сайта.

Для того чтобы реализовать минификацию в Bitrix, воспользуемся событием «OnEndBufferContent» и для большей корректности работы сделаем условие на проверку раздела сайта.

Установка скрипта

1. Подключитесь к вашему сайту по FTP.

2. Откройте файл init.php в папке /bitrix/php_interface/.

3. Сразу после <? вставьте скрипт:

if(SITE_ID == "s1") {

	AddEventHandler("main", "OnEndBufferContent", "ChangeMyContent");
	
	function ChangeMyContent(&$content) {

		$search = array("/\>[^\S ]+/s", "/[^\S ]+\</s", "/(\s)+/s", "/<!--(?![^<]*noindex)(.*?)-->/"); 
		$replace = array(">", "<", "\\1", ""); 
		$content = preg_replace($search, $replace, $content);

	}
	
}

Установка закончена.

9
комментариев
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Администратор758

Василий, как еще вариант - немного подправить код, чтобы сначала удалялись комментарии, а потом уже переносы строк.

23 ноя в 12:54
  • 5
Администратор758

Serg, нужно просто удалить тот код который вы вставили в файл init.php + очистить кэш сайта.

23 ноя в 12:51
  • 7
Гости679

Нужна срочная помощь как оперативно откатить данное изменение назад - после вставки кода в init.php полностью упал сайт. Как откатить изменения данного кода в Битрикс Малый Бизнес 17? Какие файлы откатить из бэкапа?

23 ноя в 09:45
  • 0
Гости679

Артем Мáлков : удачи в развитии , рад твоему блогу , спасибо .

16 окт в 19:17
  • 1
Гости679

Артем Мáлков да , вы абсолютно правы админку не трогает , может у кого-то будет подобное - например отображение кривое или еще что

не используйте комментирование вида // однострочное т.к при минификация данный комментарий вырезает напрочь код ))

пример

<script type="text/javascript">

$(window).resize(function(){ // BX.addCustomEvent('onWindowResize', function(eventdata) {

убрать коммент или заменить на /* */

<script type="text/javascript">

$(window).resize(function(){ /* BX.addCustomEvent('onWindowResize', function(eventdata) {*/

в общем вы поняли ..)

16 окт в 19:15
  • 0
Администратор758

Василий, для этого, в первой строке добавляете нужные вам разделы сайта. Сейчас строка

if(SITE_ID == "s1") {

Если не ошибаюсь, минифицирует код только на самом сайте (без админки).

10 окт в 16:30
  • 5
Гости679

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

10 окт в 12:59
  • 0
Администратор758

Владимир, да возможно. Сегодня - завтра напишем как

17 мар в 14:09
  • 13
Гости679

Здравствуйте, а под DLE возможно такое сделать? и как! спс.

17 мар в 09:31
  • 0
Подняться наверх
«Pandoge» - помощник веб-мастера