Je veux utiliser une instruction if
dans Liquid avec plusieurs conditions. Quelque chose comme:
{% if (include.featured == "true" and product.featured == "true") or (include.featured == "false" and product.featured == "false") %}
Plusieurs conditions ne semblent pas fonctionner. La syntaxe est-elle incorrecte ou Liquid ne peut-il pas gérer ce type de déclaration if?
Malheureusement, Liquid a une mauvaise implémentation de l'algèbre booléenne.
En utilisant opérateurs et tags de Liquid, voici une sale façon de le réaliser:
{% if include.featured == true and product.featured == true %}
{% assign test = true %}
{% endif %}
{% if include.featured == false and product.featured == false %}
{% assign test = true %}
{% endif %}
{% if test %}
Yepeeee!
{% endif %}
Une autre façon de condenser cela est de combiner les instructions else if, et les booléens n'ont pas nécessairement besoin du "==" lors de l'évaluation de true:
{% if include.featured and product.featured %}
{% assign test = true %}
{% elsif include.featured == false and product.featured == false %}
{% assign test = false %}
{% endif %}