# korzilla.ru — Laravel 13 + Filament 5

Сайт перенесён с Tilda. Подробности — в `README.md`, аудит исходного сайта — в `docs/audit.md`, инструкция для редакторов — в `docs/editor-guide.md`.
Деплой на прод (109.73.193.24, HestiaCP, пользователь `site`, раскладка как у teeu: приложение в `private/korzilla`, `public_html` → симлинк на `public`) — `DEPLOY.md`: коммит и `bash bin/deploy.sh`. Контент живёт в базе на проде (`tilda:import` на проде не запускать).

## Главный принцип

HTML блоков Tilda — единственный источник правды. Дизайн не пересобирается шаблонами: страница выводится ровно так, как её отдавала Tilda (`PageRenderer`), а админка правит в HTML только найденные поля (`BlockContentEditor`, `BlockItems`) через точечные замены по смещениям (`HtmlDocument` + `HtmlPatch`). Не сериализуйте HTML блоков через DOMDocument и подобное: это меняет разметку во всём блоке.

## Команды (Windows/Laragon)

- PHP: `D:/laragon/bin/php/php-8.3.30-Win32-vs16-x64/php.exe`, Composer: `D:/laragon/bin/composer/composer.phar`
- Тесты: `php artisan test` (SQLite in-memory)
- Импорт из зеркала Tilda: `php artisan tilda:import` (УДАЛЯЕТ страницы и блоки в базе), патчи библиотек: `php artisan tilda:patch-assets`
- После правок `.env`/`config` или рендера: `php artisan optimize:clear && php artisan cache:clear` (HTML страниц кэшируется по `ContentVersion`)

## Соглашения

- Данные Tilda: картинки — `public/uploads/tild…`, библиотеки — `public/tilda/…`, миниатюры генерируются в `public/thb/…`. Не создавайте в `public/` каталогов с именами маршрутов (`admin`, `blog`, …): веб-сервер отдаст каталог вместо Laravel.
- Атрибуты `#allrecords` хранятся списком пар `[имя, значение]`: JSON-колонка MySQL сортирует ключи объектов.
- `SITE_TRACKING=false` вырезает Метрику, Битрикс24 и `start.korzilla.ru/authsite/auth.js`, чтобы тестовые заявки не уходили в боевую CRM.
- Тексты интерфейса и комментарии — на русском.
