Custom Liquid
Custom Liquid هو مخرج الطوارئ في منشئ المتجر: عندما لا يستطيع أي قسم مدمج التعبير عن تصميم ما، تكتبه أنت — قالب Liquid بترميزه الخاص وCSS محصور النطاق، يوضع على الصفحات كأي قسم آخر ويُ ضبط من لوحة الإعدادات نفسها.
الأقسام المدمجة تحصل مجانًا على إعدادات الثيم وأنظمة الألوان ودعم RTL ومتغيرات المنتجات وتكامل السلة. أما Custom Liquid فلا يحصل على أي من ذلك تلقائيًا — فهو الأداة الصحيحة للقسم المميز الذي لا يستطيع الكتالوج التعبير عنه، لا بديلًا عامًا. (قسم التراكب overlap section يغطي الآن التخطيطات المتراكبة/غير المتناظرة التي كانت تتطلب Liquid.)
تشريح التعريف
تعريف Custom Liquid على مستوى المتجر كله، يُعرَّف بمعرّف (مثل hero-split)، ويحمل:
| الجزء | ما هو |
|---|---|
template | مصدر Liquid. إعدادات النسخة متاحة كـ {{ settings.name }}. |
css | ورقة أنماط محصورة النطاق لكل نسخة: .self يستهدف غلاف المكوّن. |
schema | الإعدادات التي يعدّلها التاجر لكل نسخة — نصوص وألوان ووسائط وقوائم اختيار — تُعرض في اللوحة القياسية. |
defaults | القيم الاحتياطية للإعدادات. |
data | بيانات التجارة التي تحلّها واجهة المتجر داخل القالب (أدناه). |
ضع النسخ بإضافة قسم Custom Liquid إلى صفحة واختيار المعرّف. وتعديل التعريف يحدّث كل نسخة تستخدمه.
بيانات التجارة
صرّح بما يحتاجه القالب وتجلبه واجهة المتجر من جهة العميل:
collection— منتجات مجموعة (قابلة للاختيار لكل نسخة عبر إعداد): collection.title، وcollection.productsمع المعرّف والعنوان والرابط والصورة والسعر والسعر المنسق والتوفر. احرس دائمًا بـ{% if collection.loaded %}واكتب الحالة الفارغة — فالبيانات تصل بعد الرسم الأول.cart— عدد العناصر والإجماليات.shop— العملة.
التفاعلات: data-tt-action
لا يمكن لمخرجات Custom Liquid أن تحتوي على JavaScript أبدًا (راجع الأمان أدناه). التفاعلية تأتي من CSS — ومن مفردات صغيرة موثوقة من الإجراءات التصريحية تستدعيها بسمات data:
| الإجراء | السمات | السلوك |
|---|---|---|
toggle | data-tt-target، وdata-tt-class (الافتراضي tt-open) | يبدّل كلاسًا على الأهداف (أو على الزر المشغِّل نفسه)؛ ويعكس aria-expanded |
tab | data-tt-tab="group"، وdata-tt-target | يفعّل مشغِّلًا ولوحة واحدة لكل مجموعة عبر tt-active |
scroll-to | data-tt-target | يمرّر الهدف بسلاسة حتى يظهر |
carousel-prev / carousel-next | data-tt-target | يقلّب حاوية تمرير، مع مراعاة RTL |
<button data-tt-action="toggle" data-tt-target=".answer">Question?</button>
<div class="answer">…</div>
نسّق الحالات في css الخاص بك: .self .tt-open { … }. والمحدِّدات لا تطابق أبدًا إلا داخل مكوّنك — فالإجراء لا يستطيع الوصول إلى سلة السحب، ولا إتمام الشراء، ولا أي شيء آخر في الصفحة.