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
|
range
يحدّد مجالًا من الأعداد لتكرارها. يمكن تحديد المجال من خلال كلِّ من الأعداد الحرفية والمتغيرة، ويمكن سحبها من المتغير.
الدخل |
---|
{% for i in (3..5) %}
{{ i }}
{% endfor %}
{% assign num = 4 %}
{% assign range = (1..num) %}
{% for i in range %}
{{ i }}
{% endfor %}
|
الخرج |
---|
3 4 5
|
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
|
تشمل استخدامات cycle
ما يلي:
- تطبيق أصناف فردية أو زوجية على صفوف في جدول.
- تطبيق صنف فريد على product thumbnail الأخيرة للمنتج في صف.
معاملات cycle
تقبل cycle
معامل "مجموعة الدورات" في الحالات التي تحتاج فيها إلى كتل cycle
متعددة في قالب واحد. إذا لم يتوفر أي اسم لمجموعة الدورات، فيُفترَض أن تكون الاستدعاءات المتعددة التي لها المعاملات نفسها مجموعة واحدة.
الدخل |
---|
{% cycle "first": "one", "two", "three" %}
{% cycle "second": "one", "two", "three" %}
{% cycle "second": "one", "two", "three" %}
{% cycle "first": "one", "two", "three" %}
|
الخرج |
---|
one
|
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 %}