Данный модуль позволяет сжимать и объеденять css, js, less файлы и коды с возможностью сжатия через gzip и дальнейшим кэшированием.
Для установки необходим vqmod не ниже версии 2.8
Установка:
- содержимое архива залить на сайт в папку vqmod/mod
- пройти по ссылке ВАШ_САЙТ/vqmod/ и из списка установить Smarty Minify
- если все хорошо увидим надпись: Модуль установлен
Удаление:
- пройти по ссылке ВАШ_САЙТ/vqmod/ и из списка нажать удалить на Smarty Minify
- если все хорошо увидим надпись: Модуль удален
Если обновляли vqmod то пройти по ссылке ВАШ_САЙТ/vqmod/ и из списка нажать переустановить Smarty Minify
После установки в файле шаблона где мы выводим js и css (обычно index.tpl) необходимо разместить коды:
{stylesheet minify=false} для вывода css (обычно перед </head>)
...........
{javascript combine=false} для вывода js (обычно перед </body>)
Данные коды служат для вывода наших скриптов и стилей. данные теги могут принимать параметры (если они не указаны то возьмутся глобальные из настроек vqmod в config/config.php):
- combine = true - паковать все в один файл / false - не паковать
- minify=true - сжить код / false - не сжимать
- id - идентификатор. Вывести с очереди js или css с указанным ид
Далее как добавлять js и css:
Добавлять их можно с каких угодно tpl. Варианты добавления:
регистрация сразу нескольких файлов:
{css id="libs" include=[
"design/{$settings->theme}/css/bootstrap.css",
"design/{$settings->theme}/css/animate.css",
"design/{$settings->theme}/css/style.css"
]}{/css}
регистрация 1 файла:
{css id="theme" include="design/{$settings->theme}/css/theme.css"}{/css}
регистрация 1 файла и произвольного кода:
{css id="mycode" include="design/{$settings->theme}/css/mycode.css" render=true}
.my_class {
color: red
}
{/css}
убрать код с регистрации:
{unset_css id="mycode"}
данные функции принимают параметры:
-
id* - служит для идентификации (обязательный параметр)
-
include - строка или массив строк для добавления в очередь
-
priority - приоритет вывода. По умолчанию равен 10 (если не указывать файлы будут становится один за одним согласно вызову функций) Чем больше приоритет тем он быстрее будет на выводе
-
less - если установленно true то данному ресурсу будет применен синтаксис less и перекодирован в css. (по умолчанию: false)
-
render - если данный параметр установлен в true то код на очередь не станет, а будет выведен прямо в месте вызова функции. Параметры minify и combine буруться глобальные.
-
minify - если данный параметр установлен в true то к данному ресурсу будет применятся сжатие. Если false - то файлы принадлежащие данному id не будут сжиматся. (по умолчанию: значение config.php)
-
combine - если данный параметр установлен в true то к данному ресурсу будет применятся упаковка в один файл. Если false - то файлы принадлежащие данному id не будут паковатся в один файл. (по умолчанию: значение config.php)
*параметры less combine и minify добавлены в версии 1.2 *combine и minify - работают если параметр render=true
Тут сильно расписывать не буду. Все параметры идентичны css за исключением параметра less.
Регистрация сразу нескольких js-файлов:
{js id="libs" priority=99 include=[
"design/{$settings->theme}/js/jquery-2.1.1.min.js",
"design/{$settings->theme}/js/bootstrap.min.js"
]}{/js}
Удаление из очереди:
{unset_js id="mycode"}