Генератор устойчивых к взлому паролей   •   Online-инструменты
1 084 просм
13 комм
Поделиться:

Минификация исходного кода в DLE на PHP

Недавно мы с вами рассмотрели способ минификации исходного кода на сайте Bitrix. Чтобы не дублировать сообщение о том, что это такое и что оно дает, прочитайте статью по ссылке выше.

В данной статье мы будем минифицировать (сжимать) исходный код сайта, который находится на CMS DataLife Engine.

Итак, приступим.

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

2. Откройте файл index.php в корневой папке вашего сайта и сразу после <?php вставьте:

function sanitize_output($buffer) {
	$search = array('/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/<!--(.*?)-->/',);
	$replace = array('>', '<', '\\1', '');
	$buffer = preg_replace($search, $replace, $buffer);
	return $buffer;
}

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

3. Далее откройте файл main.php в папке /engine/modules/. Найдите:

echo $tpl->result['main'];

и замените его на:

ob_start("sanitize_output");
echo $tpl->result['main'];
ob_end_flush();

Сохраните и также отправьте файл на сайт.

В панели управления вашим сайтом, на главной странице, почистите кэш, после чего зайдите на свой сайт и посмотрите исходный код. Если вы все сделали правильно – исходный код вашего сайта будет в одну строку.

13
комментарий
Богдан
22.03 в 23:55
Спасибо, давно искал не мог найти решения, а тут так все просто супер)
  • 1
Богдан
23.03 в 00:11
Скажите, а как прописать, чтоб код сжимался всем кроме админа?
  • 0
Богдан, этого в 3 шаге

ob_start("sanitize_output");
echo $tpl->result['main'];
ob_end_flush();

замените на

if($member_id['user_group'] != 1) { ob_start("sanitize_output"); }
echo $tpl->result['main'];
if($member_id['user_group'] != 1) { ob_end_flush(); }

Где 1 - это ID группы, для которой сжатие не работает, в нашем случае - это группа администраторов.
  • 2
Богдан
23.03 в 13:14
спасибо большое, все работает =) Крутая штука, особенно поможет тем кто делает оптимизацию для google pagespeed.
  • 0
rustam
25.03 в 19:56
Благодарю, хорошая вещь все отлично работает;)
  • 1
Виктор
8.04 в 21:32
Спасибо пригодилось.
  • 0
Дмитрий
17.04 в 10:27
Здравствуйте !
Скажите поисковые системы нормально будут видеть и относится к этому коду ?
Проблем по индексации не будет ?
  • 1
Дмитрий, да, вполне хорошо. Изменений особых нет, только убираются лишние пробелы, комментарии кода и прочий, не нужный мусор.
  • 0
Megazvezda
9.06 в 19:21
Добрый вечер. У меня на версии 10,3 нет этого файла маин
  • 1
Megazvezda, Здравствуйте!

3-м шагом, echo $tpl->result['main']; ищите не в main.php а в index.php (почти в самом конце) который лежит в корне вашего сайта.
  • 0
Megazvezda
10.06 в 09:03
Спасибо большое! Только мне этот хак не подошел. После манипуляций гугл спеед занижает показатели
  • 0
Megazvezda, этого мало чтобы повысить оценку Google. Но при установке - все равно является плюсом. wink
  • 0
Найден небольшой недочет. При использовании тега [code] - исходный код внутри этого тега тоже сжимается. Чтобы добавить исключение, строку

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

замените на

$search = array('/\>[^\S ]+/s', '/[^\S ]+\</s', '/(?![^<]*<\/code>)(\s)+/s', '/<!--(.*?)-->/',);
  • 2
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария