Универсальный плагин для сжатия нескольких js и css файлов в один. Необходимо для ускорения загрузки сайта и уменьшения количества запросов к серверу.
Сжимаются только файлы типов js, css. Готовые файлы будут находиться в папке указанной в конфиге плагина, по умолчанию это путь assets/merged/
Для подключения файлов в шаблон нужно добавить подключение двух файлов
<link rel="stylesheet" href="/assets/merged/all.css" type="text/css" />
<script src="/assets/merged/all.js" type="text/javascript">
Если содержимое составляющих файлов не изменяется, плагин после сборки можно отключить для уменьшения нагрузки, т.к. сборка производится единожды, потом осуществляется только проверка на изменения.
Установка и настройка
1. Cоздать папку «compression» в «assets/plugins/»
2. Туда положить файлики «compression.php» и «JSmin.php»
3. Создать плагин с названием «compression»
— код плагина
<?php
require_once MODX_BASE_PATH . "assets/plugins/compression/compression.php";
$js_dirs = array('assets/templates/aqwella/js/', 'assets/templates/aqwella/js/fancybox/fancybox/');
$cs_dirs = array('assets/templates/aqwella/css/', 'assets/css/', 'assets/templates/aqwella/js/fancybox/fancybox/');
$merged_dir = 'assets/merged/';
$home_dir = MODX_BASE_PATH;
compression::compress($js_dirs, $cs_dirs, $merged_dir, $home_dir);
?>
— Системные события:
OnWebPagePrerender
Файлы лучше всего называть следующим образом:
01.jquery-1.6.2.min.js
02.jquery.easing.min.1.3.js
03.main_script.js
То есть, в таком порядке, в котором нужно их собрать в один. Чтобы потом файл main_script.js с использованием jquery не загрузился раньше самой библиотеки jquery.
p.s.
PHP класс «compression» можно использовать не только в MODX, а и в любых своих проектах.