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.

bloklar/metin.liquid
<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:

bolumler/vitrin.liquid
<section class="vitrin">{% icerik 'bloklar' %}</section>

{% schema %}
{ "name": "Vitrin", "blocks": [{ "type": "@theme" }] }
{% endschema %}
blocks ögesiAnlamı
{ "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.

bloklar/grup.liquid
<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 %}
bloklar/kart-baslik.liquid
<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.

Bu sayfada