Zmienne zagnieżdżone
Możesz umieścić {innaZmienna} wewnątrz wartości zmiennej. Gdy plugin rozwiązuje zewnętrzną zmienną, rozwiązuje też wszelkie wewnętrzne referencje, jakie tam znajdzie.
Przykład
Dział zatytułowany „Przykład”Zdefiniuj dwie zmienne:
| Klucz | Wartość |
|---|---|
shopName | (wbudowana: np. Acme Store) |
shopAddress | (wbudowana: np. Ulica 1, 00-001 Warszawa) |
companyInfo | {shopName} — {shopAddress} |
Teraz wpisanie {companyInfo} na stronie CMS daje:
Acme Store — Ulica 1, 00-001 Warszawa
Jak głębokie jest zagnieżdżenie
Dział zatytułowany „Jak głębokie jest zagnieżdżenie”Jeden poziom. Gdy plugin zastępuje {companyInfo}, rozwiązuje referencje {shopName} i {shopAddress} wewnątrz wartości. Gdyby same te wartości zawierały dalsze referencje {...}, nie zostałyby rozwiązane — zostałyby wyrenderowane jako dosłowny tekst.
Limit jednego poziomu jest celowy — zapobiega cyklicznym referencjom i niekontrolowanej ekspansji. Jeśli potrzebujesz głębszej kompozycji, przeprojektuj zmienne tak, aby każdy poziom był jawny.
Wzorce, które działają dobrze
Dział zatytułowany „Wzorce, które działają dobrze”- Kompozycja footera —
{footerSignature}={shopName} • {shopEmail} • {shopAddress} - Bloki prawne —
{legalFooter}=© {shopName} {currentYear}(currentYearustaw ręcznie co roku lub własnym jobem) - Wielokrotnego użytku dyskleimery —
{shippingDisclaimer}=Wysyłka obsługiwana przez {fulfillmentPartnerName}
Czego unikać
Dział zatytułowany „Czego unikać”- Samoreferencji.
promotionTextzawierający{promotionText}renderuje dosłowny placeholder — wewnętrzna referencja nie jest rozwiązywana po raz drugi, ale może mylić redaktorów. Nie rób tego. - Niespodzianek między kanałami. Zagnieżdżony klucz rozwiązuje się w kontekście kanału zewnętrznej zmiennej. Jeśli
{companyInfo}jest skonfigurowane globalnie, a{shopName}ma nadpisania per kanał, używana jest wciąż nazwa specyficzna dla kanału, ponieważ kanał pochodzi z żądania storefrontu, a nie z zewnętrznej zmiennej.