Случайный выбор победителя «Вконтакте»   •   Online-инструменты
639 просм
6 комм
Поделиться:

Минификация исходного кода в 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');
		$replace = array('>','<','\\1');
		$content = preg_replace($search, $replace, $content);
	}
}

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

6
комментарий
Владимир
17.03 в 09:31
Здравствуйте, а под DLE возможно такое сделать? и как! спс.
  • 0
Владимир, да возможно. Сегодня - завтра напишем как
  • 0
Василий
10.10 в 12:59
интересно конечно , но сразу появляется вопрос как ее отключить для определенной страницы например , тк возможны проблемы с выводом 404 тойже
  • 0
Василий, для этого, в первой строке добавляете нужные вам разделы сайта. Сейчас строка

if(SITE_ID == "s1") {

Если не ошибаюсь, минифицирует код только на самом сайте (без админки).
  • 0
Василий
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
Василий
16.10 в 19:17
Артем Мáлков : удачи в развитии , рад твоему блогу , спасибо .
  • 1
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария