Профессиональная поддержка сайтов: разработка, дизайн, тексты, SEO и прочее от 500 Р   •   Реклама
3 494 просм
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.

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

  • 5

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

  • 7
23.11 в 09:45

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

  • 0
16.10 в 19:17

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

  • 1
16.10 в 19:15

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

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

пример

<script type="text/javascript">

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

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

<script type="text/javascript">

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

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

  • 0

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

if(SITE_ID == "s1") {

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

  • 5
10.10 в 12:59

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

  • 0

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

  • 13
17.03 в 09:31

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

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