Liquid Bsale Estructuras Lógicas - Bsale-IO/template-docs GitHub Wiki
Home > Liquid Bsale > Estructuras Lógicas
Dentro de liquid puedes emplear estructuras lógicas para dar dinamismo a tu template.
Los operadores lógicos sirven para comparar 2 valores dentro de secuencias if
o unless
Operador | Significado |
---|---|
== |
igual a |
!= |
diferente a |
> |
Mayor a |
< |
Menor a |
>= |
Mayor o igual a |
<= |
Menor o igual a |
or |
se cumple esta condición o esta otra |
and |
se cumple esta condición y esta otra |
contains |
contiene el siguiente texto |
Imprime el dato sólo si se cumple la condición dentro del IF
//dibujar del descuento sólo si es mayor a 0
{% if product.discountRate > 0 %}
{{ product.discountRate }}
{% endif %}
Resultado
60
Al contrarío de IF, UNLESS dibuja el dato si la respuesta a falsa (si no se cumple la condición)
//dibuja el descuento si no es menor a 0
{% unless product.discountRate < 0 %}
{{ product.discountRate }}
{% endunless %}
Resultado
60
Permite definir una alternativa si no se cumple la condición dentro del IF o UNLESS
//dibujar del descuento sólo si es mayor a 60, sino escribe _"no hay descuento"_
{% if product.discountRate > 60 %}
{{ product.discountRate }}
{% else %}
No hay descuento
{% endif %}
Resultado
No hay descuento
//dibujar del descuento sólo si no es menor a 0, sino escribe _"no hay descuento"_
{% unless product.discountRate < 0 %}
{{ product.discountRate }}
{% else %}
No hay descuento
{% endunless %}
Resultado
60
// dibujar del descuento si es mayor a 0,
// si es mayor a 50 escribe super descuento
// de lo contrario escribe _"no hay descuento"_
{% if product.discountRate > 0 %}
{{ product.discountRate }}
{% elsif product.discountRate > 50 %}
Super Descuento {{ product.discountRate }}
{% else %}
No hay descuento
{% endif %}
Resultado
Super Descuento 60
Un loop es un evento que se repite un número definido de veces. Los loop for
son capaces de recorrer los arreglos y objetos devolviendo los valores de estos.
Dentro de cada loop for
es necesario definir una variable que ira aumentando y mercando la posición del valor en el arreglo u objeto.
{% for i in collection %}
- i : define la posición en el recorrido.
En una colección de 3 productos i
representa cada producto, de esta forma
{% for i in collection %}
{{ i.title }} //nombre
{{i.description}} //descripcion
{{i.finalPrice}} //precio
{% endfor%}
Resulta en
- Botas Botas de cuero con hebillas plateadas $10.000
- Camisa Azul Camisa de Seda Azul $20.000
- Camisa Verde Camisa de tele verde $15.000
La variante de un loop for
puede tener cualquier nombre y no es necesario que se llame i
, se recomienda que el nombre de la variante tenga relación con el tipo de contenido del arreglo u objeto de esta forma:
// para 'productos' en la colección
{% for product in collection %}
{{ product.title }} //nombre
{{ product.description}} //descripcion
{{ product.finalPrice}} //precio
{% endfor %}
código | definición |
---|---|
{{forloop.first}} |
boolean primera posición del arreglo u objeto |
{{forloop.last}} |
boolean ultima posición del arreglo u objeto |
{{forloop.index}} |
número posición dentro del arreglo u objeto (comienza en 1) |
Ejemplos de utilización forloop.first
{% for product in collection %}
{% if forloop.first %}
Primero
{% else %}
otro
{% endif %}
{% endfor %}
Resultado
Primero
otro
otro
otro
...
Ejemplos de utilización forloop.last
{% for product in collection %}
{% if forloop.last %}
Ultimo
{% else %}
otro
{% endif %}
{% endfor %}
Resultado
...
otro
otro
otro
Ultimo
Ejemplos de utilización forloop.index
{% for product in collection %}
{% if forloop.index == 2 %}
Segundo
{% else %}
otro
{% endif %}
{% endfor %}
Resultado
otro
Segundo
otro
otro
otro
...
Ejemplos de utilización break
si se cumple la condición se rompe el ciclo
{% for product in collection %}
{% if forloop.index == 3 %}
{% break %}
{% else %}
otro
{% endif %}
{% endfor %}
Resultado
otro
otro
...