Безлимитный хостинг на сверхбыстрых SSD-дисках от 66р в месяц   •   Реклама
4 837 просм
9 комм
Поделиться:

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

26 фев
Хаки

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

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

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

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

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

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

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

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

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

if(SITE_ID == 's1') {
	
	function minify_html(&$buffer) {

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

	}

	AddEventHandler('main', 'OnEndBufferContent', 'minify_html');
	
}

Здесь «s1» - это ID вашего сайта. Узнать можно по пути «Настройки» (левое меню) – «Настройки продукта» - «Сайты» - «Список сайтов» в панели управления сайтом.

Сохраните изменения и отправьте файл обратно на сайт.

4. При необходимости очистите кэш сайта. Установка закончена.

9
комментариев
Форма комментирования этой статьи скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    766
      •  Гости
    23 ноя в 09:45

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

      • 7
      824
        •  Администратор
      23 ноя в 12:51

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

    • 0
    766
      •  Гости
    10 окт в 12:59

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

      • 5
      824
        •  Администратор
      10 окт в 16:30

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

      if(SITE_ID == "s1") {

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

      • 0
      766
        •  Гости
      16 окт в 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) {*/

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

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

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

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

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

    • 0
    766
      •  Гости
    17 мар в 09:31

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

      • 13
      824
        •  Администратор
      17 мар в 14:09

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

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