Tema blokları
Bölümler arasında paylaşılan, iç içe geçebilen bloklar. Satıcı bölümün içini bloklardan kurar.
Blok tek bir bölüme ait olmak zorunda değildir. bloklar/<ad>.liquid dosyası bir tema bloğudur: kendi
şeması, kendi görünümü vardır ve onu kabul eden her bölümde (ve başka blokların içinde) kullanılabilir.
<p {{ block.nitelik }} {{ block | duzenle: 'yazi' }}>{{ block.settings.yazi }}</p>
{% schema %}
{ "name": "Metin", "settings": [{ "type": "textarea", "id": "yazi", "label": "Yazı", "default": "Merhaba" }] }
{% endschema %}Bloğun kök ögesi {{ block.nitelik }} taşır (düzenleyici tıklanan bloğu seçer; yoksa yükleme reddedilir).
Şablon block (ayarlar, çocuklar), section ve closest nesnelerini görür.
Bölümde kullanmak
Bölüm hangi blokları kabul ettiğini şemasında söyler, çocuklarını {% icerik 'bloklar' %} ile çizer:
<section class="vitrin">{% icerik 'bloklar' %}</section>
{% schema %}
{ "name": "Vitrin", "blocks": [{ "type": "@theme" }] }
{% endschema %}blocks ögesi | Anlamı |
|---|---|
{ "type": "@theme" } | Temanın bütün açık blokları (_ ile başlamayan dosyalar). |
{ "type": "metin" } | Yalnız bu tema bloğu (bloklar/metin.liquid); limit verilebilir. |
{ "type": "slayt", "name": "Slayt", "settings": [...] } | Satır içi blok: yalnız bu bölümde, dosyasız; bölüm section.blocks döngüsüyle çizer. |
Adı _ ile başlayan blok (bloklar/_kart-fiyat.liquid) özeldir: @theme ile gelmez, yalnız onu adıyla
anan bölüm ya da blok kullanır.
İç içe bloklar
Tema bloğunun şeması da blocks alabilir; çocuklarını aynı etiketle çizer. En çok 8 kat.
<div {{ block.nitelik }} class="grup">{% icerik 'bloklar' %}</div>
{% schema %}
{ "name": "Grup", "blocks": [{ "type": "@theme" }] }
{% endschema %}Sabit bloklar
Bölümün düzeninde yeri belli olan blok, sırası satıcıya bırakılmadan yerinde çizilir:
{% icerik 'blok', tur: 'not', id: 'dip' %}Şablonda kaydı yoksa varsayılan ayarlarıyla çizilir; satıcı ayarlarını değiştirince kayıt "sabit": true
olarak bölümün bloklarına yazılır (sırada yer almaz).
closest
{% icerik 'bloklar', urun: urun %} gibi ek değerler çocuk bloklara closest.urun olarak geçer — ürün kartı
bloğu döngüdeki ürünü böyle bilir:
{% for urun in section.settings.urunler %}
<li>{% icerik 'bloklar', urun: urun %}</li>
{% endfor %}<h3 {{ block.nitelik }}>{{ closest.urun.title }}</h3>
{% schema %}{ "name": "Ürün adı" }{% endschema %}Kimlikler
Şablonda bölüm ve blok kimlikleri şablon içinde benzersiz olmalıdır (iç içe bloklar dahil); düzenleyici ve önizleme blokları kimliğiyle bulur. Yükleme aynı kimliği iki kez görürse reddeder.
Sayfa şablonları
Sayfanın iskeleti JSON şablondur — hangi bölümler, hangi sırayla, hangi ayarlarla. Tema varsayılanını getirir, satıcı düzenler.
Genel ayarlar, hazır görünümler ve diller
Temanın bütün sayfalarını etkileyen ayarlar (renk, yazı tipi…), tek tıkla uygulanan hazır görünümler ve çevrilebilir tema metinleri.