Przejdź do treści
Dokumentacja Dane sekcji: pola panelu, stare klucze i normalizacja
Moduły

Dane sekcji: pola panelu, stare klucze i normalizacja

Jak wygląda zapis treści sekcji, dlaczego część stron miała klucze niewidoczne w panelu i co robi komenda sections:normalize.

Model danych

Treść podstrony to lista sekcji. Każda sekcja ma typ (np. eq_product_detail) i tablicę data z wartościami pól. Zestaw pól opisuje rejestr sekcji — to on decyduje, co edytor pokazuje w formularzu i jak zapisuje wartość: pojedynczy tekst, listę wierszy, powtarzalne grupy albo kwotę.

Zapis sekcji jest scalający: klucze nieobecne w żądaniu zostają nietknięte. Dzięki temu częściowy zapis (np. ze skryptu) nie kasuje treści, której nie dotyczył.

Skąd biorą się „stare klucze"

Strony budowane wcześniej importerami miały w danych klucze pod inną nazwą, niż czyta je widok i formularz panelu. Skutek był podwójny: treści nie dało się poprawić w panelu, a część z nich w ogóle się nie renderowała — widok szukał nazwy kanonicznej.

Najczęstsze przypadki:

  • pasek CTA z text zamiast subheading (gubił podtytuł),
  • pasek CTA z cta_label / cta_url zamiast button_label / button_url (gubił oba przyciski),
  • pola listowe zapisane jako jeden ciąg znaków zamiast listy,
  • klucze po funkcjach, których już nie ma (breadcrumb w nagłówku strony i karcie produktu, target w kategoriach obrazkowych).

Jak to działa teraz

Mapowanie starych nazw na kanoniczne dzieje się w trzech miejscach: przy renderowaniu strony, przy otwieraniu edytora i przy zapisie sekcji. Treść zapisana starym kluczem renderuje się więc od razu, a pierwszy zapis z panelu sprowadza ją do nazwy, którą rozumie formularz.

Klucze bez konsumenta są pomijane — nie dostają pola w panelu, bo nic ich nie czyta.

Przepisanie danych na stałe

php artisan sections:normalize                 # wszystkie witryny
php artisan sections:normalize subdomena       # jedna witryna
php artisan sections:normalize --dry-run       # tylko policz zmiany

Komenda jest idempotentna: drugie uruchomienie nie zgłasza już nic do zmiany. Zapisuje wyłącznie sekcje, nie rusza dat publikacji ani historii wersji, i po zmianie czyści pamięć podręczną witryny.

Kiedy jej użyć

Po zaimportowaniu strony ze starszego payloadu albo po migracji treści z zewnętrznego źródła. Przy zwykłej pracy w panelu nie jest potrzebna — panel od razu zapisuje nazwy kanoniczne.

Wolisz krótką instrukcję? Zajrzyj do Centrum pomocy albo napisz na kontakt@kompasfirm.pl.