Как добавить итерации в эту жидкость для цикла - PullRequest
0 голосов
/ 18 декабря 2018

Как добавить числа, повторяющиеся в цикле for вместо {{i}}. Обратите внимание, что этот цикл не имеет определенного предела, поскольку он будет получать все упорядоченные элементы независимо от их количества.

<img src="https://billiger.de/sale?shop_id=Acaraa&oid={{ order.order_number }}

{% for line_item in order.line_items %}
&aid_{{i}}={{ line_item.product_id }}&name_{{i}}={{ line_item.product.title }}&cnt_{{i}}={{ line_item.quantity }}&val_{{i}}={{ line_item.product.price | divided_by: 1.19  | times: line_item.quantity | money_without_currency}}
{% endfor %}

" width="1" height="1" border="0" alt="" />

Таким образом, цикл должен выглядеть следующим образом

&aid_1=ARTICLE-ID-1&name_1=ARTICLE-NAME-1&cnt_1=ARTICLE-COUNT-1&val_1=ARTICLE-VALUE-1
&aid_2=ARTICLE-ID-2&name_2=ARTICLE-NAME-2&cnt_2=ARTICLE-COUNT-2&val_2=ARTICLE-VALUE-2
&aid_3=ARTICLE-ID-3&name_3=ARTICLE-NAME-3&cnt_3=ARTICLE-COUNT-3&val_3=ARTICLE-VALUE-3

PS: приведенный выше код будет использоваться в файле шаблона shopify

Спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

Объект forloop имеет несколько вспомогательных методов, в том числе для подсчета текущей итерации цикла:

  • forloop.index, который считает итерацию цикла, начиная с 1
  • forloop.index0, который считает итерацию цикла, начиная с 0

В вашем примере вы изменили бы свой код, чтобы использовать соответствующий метод вместо {{i}};т.е.:

<img src="https://billiger.de/sale?shop_id=Acaraa&oid={{ order.order_number }}

{% for line_item in order.line_items %}
&aid_{{forloop.index}}={{ line_item.product_id }}&name_{{forloop.index}}={{ line_item.product.title }}&cnt_{{forloop.index}}={{ line_item.quantity }}&val_{{forloop.index}}={{ line_item.product.price | divided_by: 1.19  | times: line_item.quantity | money_without_currency}}
{% endfor %}

" width="1" height="1" border="0" alt="" />

Я предполагаю, что вы хотите начать отсчет итераций здесь с 1, но просто используйте forloop.index0, если вы хотите начать с 0.

Вот документация для forloop.index для официальной библиотеки Shopify Liquid (в Ruby).

Поскольку вы отметили свой вопрос как PHP, может показаться, что вы используете php-liquid порт библиотеки - он отображается в списке Shopify Liquid портов .

Этот порт, похоже, не имеет подробной документации, но если вы посмотрите на модульные тесты вы увидите, что эти помощники forloop были реализованы.

Надеюсь, это поможет:)

...