Что нового

Бесплатно iCSS | Автоматическая загрузка css

  • Автор темы Автор темы BaDDex
  • Дата начала Дата начала

BaDDex

Участник
Регистрация
26 Янв 2023
Сообщения
39
Реакции
65
Автоматическая загрузка CSS
Создайте папку для ваших CSS-файлов
Папка должна быть в вашем шаблоне (templates/ВАШ-ШАБОН/icss)
Названия папки icss
В вашем шаблоне после последний <link бла бла бла >
Разместить

Код:
<!----iCSS----->
{include file="engine/modules/icss.php"}
<!----/iCSS----->
Загрузка модуля через (Управление плагинами).

 
В каком виде будут они выводиться? Одним файлом или каждый файл сам по себе? С preload или без?
 
Итоговый эффект внедрения iCSS-модуля
Бизнес-выгодаЧто именно меняетсяПочему это важно руководителю
Zero-Ops добавление стилейЛюбой .css, помещённый в /templates/skin/icss, автоматически подхватывается без правки шаблонов.Убираем ручные правки кода при каждом изменении UI → сокращаем TTM задач фронтенда.
Снижение операционных рисковНет риска забыть подключить файл или сломать порядок <link>-ов – скрипт собирает список сам.Меньше человеческих ошибок → меньше внеплановых откатов, повышаем SLA интерфейса.
Гибкая модульностьМожно держать стили фичекомандами/микромодулями отдельными файлами, не боясь «CSS-спагетти».Удобно масштабировать продукт, разделяя ответственность; конфликтов слияния в Git меньше.
Единая точка version controlВсе шаблонные изменения сведены к одному PHP-файлу (icss.php) и каталогу стилей.Проще ревью кода и аудит безопасности; DevOps-конвейер чище.
Готовность к дальнейшей оптимизацииСкрипт можно быстро расширить: inline-кэш, автосборка + минификация, динамическая версия по тайм-стемпу.Есть база для будущего перехода к критическому CSS, HTTP/2 push, CDN-хостингу — без смены шаблонов.

Коротко​

  • Что получаем: автоматическое подключение всех CSS из папки icss, без ручного вмешательства в шаблоны.
  • Зачем бизнесу: быстрее выводим UI-изменения, снижаем ошибки, готовим платформу к масштабированию и дальнейшим перф-оптимизациям.
Если говорить строго по-деловому: вы внедряете маленький DevOps-акселератор, который превращает управление фронтендом из «ручного труда» в «клади файл — и он уже на проде».
 
Это тоже самое что и DLE-Asset ? в чем разница? минификация, объединение в один и все?
 
Вот полный код модуля:
PHP:
<?php
$css_folder = ROOT_DIR . '/templates/' . $config['skin'] . '/icss/'; // Путь к вашей папке с CSS
$css_files = glob($css_folder . '*.css'); // Получаем все .css файлы из папки

foreach ($css_files as $css_file) {
    $file_name = basename($css_file); // Получаем только имя файла
    echo '<link rel="stylesheet" type="text/css" href="/templates/' . $config['skin'] . '/icss/' . $file_name . '" />';
}
?>
Сразу всем будет ясно что он делает.
 
Как по мне, это бесполезно, когда дело доходит до обязательного порядка подключения скриптов. лучше уж будет дополнить стандартную функцию, расширив функционал до подключения целой папки
 
Написал небольшой скрипт
В шаблонах используем тег {include folder=""}, либо {include folder="" type=""}.
folder - Путь до папки в шаблоне с указанием {THEME}
type - тип файла, может быть пустым. Принимает значения: all (по умолчанию), js и css.


Чёт меня занесло.
Порядок загрузки файлов можно задать при помощи json файла loadorder.json с содержимым (он должен находиться в указанной папке):
JSON:
{
    "css": [
        ...перечень файлов с расширением
    ],
    "js": [
        ...перечень файлов с расширением
    ]
}
Если файл отсутствует, то скрипт генерирует автоматически этот файл.
 

Вложения

  • skan-papok 180.2.0.xml.zip
    skan-papok 180.2.0.xml.zip
    2.4 КБ · Просмотры: 8
  • 1751538959875.png
    1751538959875.png
    88.3 КБ · Просмотры: 11
  • 1751538972930.png
    1751538972930.png
    14.3 КБ · Просмотры: 9
  • 1751538982873.png
    1751538982873.png
    16.4 КБ · Просмотры: 10
  • 1751539018842.png
    1751539018842.png
    89.8 КБ · Просмотры: 11
  • 1751539107229.png
    1751539107229.png
    210.1 КБ · Просмотры: 11
Последнее редактирование:
Верх