Bloki, targeting i kolejność
Definicje, instancje, zagnieżdżanie i bloki statyczne.
Bloki, targeting i statyczne elementy
W pliku rodzica:
{
"blocks": [{ "type": "card" }, { "type": "_signature" }],
"max_blocks": 12
}Jawne nazwy ograniczają listę dostępnych bloków. @theme dopuszcza publiczne definicje; nazwy zaczynające się od _ wymagają jawnego wskazania. Aby blok pojawił się w pickerze, musi mieć presets z nazwą.
Bloki dynamiczne renderujesz w kolejności block_order:
<template gs-slot="blocks"></template>Stały blok osadzasz w konkretnym miejscu:
<template gs-block="_signature" gs-id="signature"></template>Typ i ID są literałami. Blok stały ma edytowalne ustawienia, ale nie przyciski przenoszenia i usuwania. Renderuje się z domyślnymi wartościami także wtedy, gdy nie ma jeszcze zapisanych danych. Aby pokazać jego ustawienia od początku, wpisz go do danych szablonu z static: true. Nie dodawaj jego ID do block_order.
{
"title": "Home",
"sections": {
"hero": {
"type": "hero",
"blocks": {
"signature": { "type": "_signature", "static": true },
"first-card": { "type": "card", "settings": { "title": "Oferta" } }
},
"block_order": ["first-card"]
}
},
"order": ["hero"]
}API również sprawdza targeting, typy ustawień, limity i identyfikatory statyczne. Ukrycie kontrolki w panelu nie jest jedynym zabezpieczeniem.
Definicja a instancja
blocks/card.html to jedna definicja. first i second w danych strony to niezależne instancje z własnymi ustawieniami. Korzystaj z block.settings, nie ze stałego ID konkretnej karty. Wstawienie typu do blocks rodzica dopuszcza jego dodawanie, ale samo nie tworzy instancji.
Kolejność wyznacza block_order, nie kolejność kluczy obiektu JSON. Prywatna nazwa _signature nie czyni bloku statycznym — decyduje osadzenie przez tag z konkretnym ID. Targeting dynamiczny dotyczy elementów renderowanych przez gs-slot="blocks".
Sprawdzenie zachowania
Dodaj dwie karty z różnymi tytułami. Zamień ich kolejność, zapisz i odśwież. Usuń jedną i sprawdź, czy druga zachowała ustawienia. Zmień podpis statyczny i sprawdź brak opcji usunięcia. Zweryfikuj pusty tytuł, promień 0 oraz wyłączony checkbox. Przy zagnieżdżeniu nie buduj ścieżek pól ręcznie.