Bölümler ve şema
Bölüm dosyası, ayarlar, bloklar ve hazır kurgular. Satıcının düzenleyicide gördüğü her şey şemadan gelir.
Her bölüm bolumler/<ad>.liquid dosyasıdır. Dosya adı bölümün kalıcı adıdır (küçük harf, rakam, -); satıcının
sayfaları bu adla kaydedilir, sonraki sürümlerde değiştirme.
{%- assign s = section.settings -%}
<div class="baglantilar">
{%- if s.heading != blank -%}<h3>{{ s.heading }}</h3>{%- endif -%}
<ul>
{%- for b in section.blocks -%}
<li {{ b.nitelik }}><a href="{{ b.settings.href | default: '/' }}">{{ b.settings.label }}</a></li>
{%- endfor -%}
</ul>
</div>
{% schema %}
{
"name": "Bağlantılar",
"settings": [
{ "type": "text", "id": "heading", "label": "Başlık", "maxLength": 120, "localized": true }
],
"blocks": [
{
"type": "link",
"name": "Bağlantı",
"settings": [
{ "type": "text", "id": "label", "label": "Yazı", "maxLength": 60, "localized": true },
{ "type": "url", "id": "href", "label": "Bağlantı" }
]
}
],
"max_blocks": 12,
"presets": [
{ "name": "Bağlantılar", "settings": { "heading": "Kurumsal" }, "blocks": [{ "type": "link" }, { "type": "link" }] }
]
}
{% endschema %}Bloğun kapsayıcısına {{ b.nitelik }} yaz
Düzenleyici bloğu bu nitelikle bulur. Yazmazsan satıcı önizlemede bloğa tıklayıp düzenleyemez.
Şema
| Alan | Açıklama |
|---|---|
name | Zorunlu. Düzenleyicide bölüm listesinde görünen ad. |
settings | Bölümün ayarları. Bkz. Ayar türleri. |
blocks | Satıcının ekleyip sıraladığı tekrar eden parçalar: { type, name, settings, limit }. limit: o türden en çok kaç tane. |
max_blocks | Bölümdeki toplam blok sınırı. |
presets | Satıcı bölümü eklediğinde gelen hazır kurgular: ayar değerleri ve bloklar. |
Şema geçerli JSON olmalı; ayar kimlikleri (id) küçük harf, rakam ve _ ile yazılır, harfle başlar.
section nesnesi
Bölümün içinde:
| Alan | Açıklama |
|---|---|
section.id | Bu bölümün sayfadaki kimliği. CSS ve JS'te tekil seçici için. |
section.ad | Bölüm dosyasının adı. |
section.settings.<id> | Ayar değeri; satıcı değiştirmediyse şemadaki default. |
section.blocks | Bloklar, satıcının sırasıyla. Gizlenen blok listede yoktur. |
b.type, b.id | Bloğun türü ve kimliği. |
b.settings.<id> | Bloğun ayarı. |
b.nitelik | Bloğun kapsayıcısına yazılacak nitelik (yukarıdaki uyarı). |
Çizilen bölüm <div class="mk-tema" data-mk-tema="<ad>" id="mk-tema-<section.id>"> içine konur.
Parçalar
Bölümlerin ortak kullandığı HTML'i parcalar/<ad>.liquid'e koy, {% render %} ile çağır:
{%- for p in section.settings.urunler -%}
{% render 'urun-karti', p: p %}
{%- endfor -%}Parçanın şeması olmaz; yalnız ona verdiğin değişkenleri ve genel nesneleri (shop, kart…) görür.
Sınırlar
- Bir bölümün çizimi 500 ms'yi aşarsa kesilir; canlıda o bölüm görünmez, sayfa çizilmeye devam eder.
- Şablon yalnız kendi nesnelerinin alanlarını okur;
constructorgibi iç özelliklere erişilemez. - Bilinmeyen süzgeç hata verir (yazım hatasını yüklemede yakalarsın).