За останні тижні startonline.com.ua зібрав купу нового функціоналу. Основний двигун — наша CMS на Laravel + Filament, і вона еволюціонує разом із клієнтськими проєктами. Збираємо ключові оновлення з версій 0.3.0 → 0.3.5.
Система тем і плагінів
Найбільше архітектурне оновлення: CMS тепер не просто сайт-візитка студії, а платформа, на якій можна запускати клієнтські сайти без правок ядра.
ThemeServiceProvider— тема перевизначає вʼю, маршрути, конфігForceLocalemiddleware для односхвних тем (без/ukпрефікса)- Vite читає
CMS_THEME— будує стилі й скрипти конкретної теми - Умовне завантаження маршрутів: якщо у темі є свої
routes/web.php, ядерні пропускаються
На цій інфраструктурі уже живе f1service.com.ua — про нього ми писали у сусідній статті.
Пошук на сайті
Додали живий пошук із іконкою у шапці: AJAX-дропдаун з результатами в реальному часі, повна сторінка результатів, мультимовність. Пошук охоплює сторінки, послуги, продукти та блог.
Модуль «Банер / Слайдер»
Новий тип блоку для будь-якої сторінки:
- Необмежена кількість слайдів з drag-сортуванням
- Мультимовні зображення та тексти на кожен слайд
- Посилання на весь банер або окрема кнопка з URL
- Налаштування стрілок, точок-індикаторів, автоперемикання
Покращення адмін-панелі
- Toggle-контроли для телефону в шапці, контактів у футері
- Вибір батьківського елемента при створенні пунктів меню
- Hover-дропдаун у хедері на десктопі, коректна поведінка на мобільних
- SortableJS drag-drop для вкладеного меню
@stack('styles')в адмін-лейауті — per-page CSS без хаків
Продакшн-розгортання
Сам startonline.com.ua сьогодні переїхав у прод: Ubuntu 24.04 + FastPanel, PHP 8.4, MySQL 8.0, nginx з HTTP/2, Letʼs Encrypt. Laravel-кеш прогрітий (config:cache, route:cache, view:cache, event:cache), прогрев Filament assets, cron для schedule:run.
Що далі
- Перенести ще кілька клієнтських сайтів на тематичну архітектуру
- Додати в CMS модуль форм-конструктора з відправкою у CRM
- Розширити модульну систему (відгуки, FAQ-аккордеон, таймлайн)
Якщо хочете подібну CMS для свого сайту — напишіть нам.