Liquid/iteration
الوسوم Tags ذات النوع التكراري Iteration
تشغّل الوسوم التكرارية كتلًا من الشيفرة تكراريًا.
for
ينفّذ كتلة من الشيفرة تكراريًا. اطّلع على قائمة كاملة بالسمات attributes المتاحة داخل حلقة for
من خلال forloop (object).
الدخل | الخرج |
---|---|
{% for product in collection.products %}
{{ product.title }}
{% endfor %}
|
hat shirt pants
|
else
يحدّد حالة احتياطية لحلقة for
والتي ستُشغَّل إذا كان طول الحلقة صفرًا.
الدخل | الخرج |
---|---|
{% for product in collection.products %}
{{ product.title }}
{% else %}
The collection is empty.
{% endfor %}
|
The collection is empty.
|
break
يسبّب توقف تكرار الحلقة عندما تواجه وسم break
.
الدخل | الخرج |
---|---|
{% for i in (1..5) %}
{% if i == 4 %}
{% break %}
{% else %}
{{ i }}
{% endif %}
{% endfor %}
|
1 2 3
|
continue
يسبّب أن تتخطى الحلقة التكرار الحالي عندما تواجه وسم continue
.
الدخل | الخرج |
---|---|
{% for i in (1..5) %}
{% if i == 4 %}
{% continue %}
{% else %}
{{ i }}
{% endif %}
{% endfor %}
|
1 2 3 5
|
عاملات حلقة for
limit
يحدّد الحلقة بعدد محدّد من التكرارات.
الدخل | الخرج |
---|---|
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array limit:2 %}
{{ item }}
{% endfor %}
|
1 2
|
offset
يبدأ الحلقة عند دليل محدَّد.
الدخل | الخرج |
---|---|
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array offset:2 %}
{{ item }}
{% endfor %}
|
3 4 5 6
|
مرّر الكلمة الخاصة continue
، لبدء حلقة من حيث توقفت الحلقة الأخيرة باستخدام نفس المكرّر.
الدخل | الخرج |
---|---|
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array limit: 3 %}
{{ item }}
{% endfor %}
{% for item in array limit: 3 offset: continue %}
{{ item }}
{% endfor %}
|
1 2 3
4 5 6
|
range
يحدّد مجالًا من الأعداد لتكرارها. يمكن تحديد المجال من خلال كلِّ من الأعداد الحرفية literal والمتغيرة variable، ويمكن سحبها من المتغير.
الدخل | الخرج |
---|---|
{% for i in (3..5) %}
{{ i }}
{% endfor %}
{% assign num = 4 %}
{% assign range = (1..num) %}
{% for i in range %}
{{ i }}
{% endfor %}
|
3 4 5
1 2 3 4
|
reversed
يعكس ترتيب الحلقة. انتبه إلى أن هذا العامل يختلف عن المرشّح reverse
.
الدخل | الخرج |
---|---|
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array reversed %}
{{ item }}
{% endfor %}
|
6 5 4 3 2 1
|
cycle
يدور ضمن حلقات عبر مجموعة من السلاسل النصية ويطبع هذه السلاسل النصية بالترتيب الذي مُرِّرت به كوسطاء، إذ يُطبَع وسيط السلسلة النصية التالية في كل مرة يُستدعَى بها cycle
.
يجب استخدام cycle
ضمن كتلة حلقة for.
الدخل | الخرج |
---|---|
{% cycle "one", "two", "three" %}
{% cycle "one", "two", "three" %}
{% cycle "one", "two", "three" %}
{% cycle "one", "two", "three" %}
|
one
two
three
one
|
تشمل استخدامات cycle
ما يلي:
- تطبيق أصناف classes فردية أو زوجية على صفوف في جدول.
- تطبيق صنف فريد على صور المنتج المُصغَّرة الأخيرة في صف.
عاملات cycle
يقبل cycle
عامل "مجموعة cycle" في الحالات التي تحتاج فيها إلى كتل cycle
متعددة في قالب واحد. إذا لم يتوفر أي اسم لمجموعة cycle، فيُفترَض أن تمثّل الاستدعاءات المتعددة التي لها العاملات نفسها مجموعةً واحدة.
الدخل | الخرج |
---|---|
{% cycle "first": "one", "two", "three" %}
{% cycle "second": "one", "two", "three" %}
{% cycle "second": "one", "two", "three" %}
{% cycle "first": "one", "two", "three" %}
|
one
one
two
two
|
tablerow
يولّد هذا الوسم جدول HTML، إذ يجب أن يُغلَّف بوسم فتح <table>
ووسم إغلاق </table>
خاصين بلغة HTML. اطّلع على قائمة كاملة بالسمات attributes المتاحة داخل حلقة tablerow
من خلال tablerow (object).
الدخل | الخرج |
---|---|
<table>
{% tablerow product in collection.products %}
{{ product.title }}
{% endtablerow %}
</table>
|
<table>
<tr class="row1">
<td class="col1">
Cool Shirt
</td>
<td class="col2">
Alien Poster
</td>
<td class="col3">
Batman Poster
</td>
<td class="col4">
Bullseye Shirt
</td>
<td class="col5">
Another Classic Vinyl
</td>
<td class="col6">
Awesome Jeans
</td>
</tr>
</table>
|
عاملات حلقة tablerow
cols
يحدّد عدد الأعمدة التي يجب أن تحتوي عليها الجداول.
الدخل | الخرج |
---|---|
{% tablerow product in collection.products cols:2 %}
{{ product.title }}
{% endtablerow %}
|
<table>
<tr class="row1">
<td class="col1">
Cool Shirt
</td>
<td class="col2">
Alien Poster
</td>
</tr>
<tr class="row2">
<td class="col1">
Batman Poster
</td>
<td class="col2">
Bullseye Shirt
</td>
</tr>
<tr class="row3">
<td class="col1">
Another Classic Vinyl
</td>
<td class="col2">
Awesome Jeans
</td>
</tr>
</table>
|
limit
يخرج من حلقة tablerow
بعد دليل معين.
{% tablerow product in collection.products cols:2 limit:3 %}
{{ product.title }}
{% endtablerow %}
offset
يبدأ بحلقة tablerow
بعد دليل معين.
{% tablerow product in collection.products cols:2 offset:3 %}
{{ product.title }}
{% endtablerow %}
range
يحدّد مجالًا من الأعداد لتكرارها. يمكن تحديد المجال من خلال كلِّ من الأعداد الحرفية والمتغيرة.
<!--variable number example-->
{% assign num = 4 %}
<table>
{% tablerow i in (1..num) %}
{{ i }}
{% endtablerow %}
</table>
<!--literal number example-->
<table>
{% tablerow i in (3..5) %}
{{ i }}
{% endtablerow %}
</table>