Работа в шаблоне с Css, Js и спрайтами svg/png
Работа с файлами CSS
В шаблоне используется один минифицированный файл стилей "/templates/ваш шаблон/_css/final.min.css". Стили в шаблоне собираются и формируются из папки "/templates/ваш шаблон/_css/sources", изменения делать в исходных файлах из папки sources.
После правок в css (в папки sources), следует сгенерировать конечный файл стилей (final.min.css).
Чтобы сгенерировать новый - измените версию в шаблоне в main.tpl (переменная $ver) или удалите нынешний "final.min" и система создаст новый уже с исходных изменённых данных.
После удаления или смены версии файл соберется автоматически с помощью метода (он уже вшит и настроен в шаблоне):
\libraries\FrontCollector::create()->collectSystem($TEMPLATE, 'final.min', 'css', $ver)
Так же существует пользовательский "_css/custom.css". Это конечный файл и в нём тоже можно вносить правки, но сперва его нужно подключить в main.tpl. Его можно использовать как обычный, так и минифицированный.
Для минификации и сжатия файла следует использовать конструкцию (уже прописана в main.tpl, нужно только раскомментировать):
<link rel="stylesheet" href="{$THEME}_css/{\libraries\FrontCollector::create()->compressCss($TEMPLATE, 'custom', 'css', $ver)}">
Если используется компрессия, то возьмётся исходник с названием "custom" (вписано вторым параметром), создаст минифицированный файл "custom_$ver" и вернёт новое имя подключаемого минифицированного файла. Исходный "custom" при этом не удаляется, остаётся как донор. Новая генерация делается в случае удаления "custom_$ver" или изменения версии. В этом случае предыдущий минифицированный файл удалится.
Работа с файлами JS
Сайт использует собраные минифицированные файлы "/templates/ваш шаблон/_js/final.min.js" и "/templates/ваш шаблон/_js/vendor.min.js".
final.min.js - содержит в себе пользовательские скрипты собранные из исходных файлов папки sources.
vendor.min.js - подключаемые библиотеки (jQuery, select2 итд), собранные из папки components.
Скрипты в шаблоне собираются и формируются из папки:
final.min.js - _js/sources, изменения делать в исходных файлах.
vendor.min.js - _js/components, изменения делать в исходных файлах.
Чтобы сгенерировать новые файлы js - измените версию в шаблоне в main.tpl (переменная $ver) или удалите нынешний final.min и vendor.min.
После удаления или смены версии файл соберется автоматически с помощью метода (уже прописан в main.tpl):
\libraries\FrontCollector::create()->collectSystem($TEMPLATE, 'final.min', 'js', $ver)
\libraries\FrontCollector::create()->collectSystem($TEMPLATE, 'vendor.min', 'js', $ver)
Так же существует пользовательский "_css/custom.js". Это конечный файл и в нём тоже можно вносить правки, но сперва его нужно подключить в main.tpl. Можно использовать как обычный, так и минифицированный.
Для минификации и сжатия файла следует использовать конструкцию (уже прописана в main.tpl, нужно только раскомментировать):
<script src="{$THEME}_js/{\libraries\FrontCollector::create()->compress($TEMPLATE, 'custom', 'js', $ver)}"></script>
Если используется компрессия, то возьмётся исходник с названием "custom" (вписано вторым параметром), создаст минифицированный файл "custom_$ver" и вернёт новое имя подключаемого минифицированного файла. Исходный "custom" при этом не удаляется, остаётся как донор. Новая генерация делается в случае удаления "custom_$ver" или изменения версии. В этом случае предыдущий минифицированный файл удалится.
Работа с SVG и PNG спрайтами
PNG
При создании sprite автоматически создается и CSS для него, который попадает в "_css/final.min".
- Папка "_img/sources/png" должна содержать только png изображения, из них формируется спрайт.
- Чтобы сгенерировать новый файл sprite.png - измените версию в шаблоне в main.tpl (переменная $ver)
или удалите нынешний "_css/final.min" (это будет триггером к пересозданию стилей и png спрайта). - Имена файлов png должны содержать только латиницу (англ), так как с этих имён формируются классы для использования.
- Сформированные стили с классами автоматически попадают в "_css/final.min"
- Если файл назывался "united-states.png", то класс для использования будет .sprite-icon__united-states
- Файл "_img/sprite.css" не используется, создаётся для наглядности работы скрипта,
чтобы проще было найти, с каким классом сформировалась ссылка на спрайт.
Пример использования в коде (если всё сделано правильно, то сразу выведет вашу иконку):
<div class="sprite-icon__united-states"></div>
SVG
- Папка "_img/sources/svg" должна содержать только svg изображения, из них формируется спрайт.
- Чтобы сгенерировать новый файл sprite.svg - измените версию в шаблоне в main.tpl (переменная $ver)
или удалите нынешний "_img/sprite.svg" (!!! НЕ final.min, здесь нет опечатки !!!). - Имена файлов svg должны содержать только латиницу (англ), так как с этих имён формируются якорь для использования.
- Если файл назывался "phone.svg", то его якорь будет "#svg-icon__phone"
- Примечание. Некоторые svg иконки могут создавать спрайт не так как ожидается (из-за своей структуры).
В этом случае подключайте иконку вне спрайта или переформатируйте её для удаления (<?xml>, <style>, <title>, <desc>, <metadata>, class="")
Пример использования в коде (если всё сделано правильно, то сразу выведет вашу иконку):
<svg class="svg-icon"><use xlink:href="#svg-icon__phone"></use></svg>
class="svg-icon" - ваш класс с размерами иконки.
xlink:href="#svg-icon__phone" - ваша иконка из спрайта.