Una guía práctica de las declaraciones if de Hubl de HubSpot para desarrolladores de CMS.
if
, ya que las plantillas se compilan antes de que la información se rellene.if
están envueltas en delimitadores de sentencias, comenzando con una sentencia if
de apertura y terminando con un endif
.
El ejemplo siguiente proporciona la sintaxis básica de una sentencia if, en la que “condición” se sustituiría por la regla booleana que ibas a evaluar como verdadera o falsa.
my_module
y si una variable llamada my_module
están presentes en una plantilla. Observa que sin ningún operador, la sentencia if evaluará si el módulo está definido o no en el contexto de la plantilla.
if
y al probar la variable no se utilizan comillas alrededor del nombre de la variable. En los dos ejemplos anteriores, el módulo y la variable existen en la plantilla, por lo que las sentencias se evalúan para imprimir la marca. Ten en cuenta que estos ejemplos solo prueban si el módulo y la variable están definidos, no si tienen o no un valor.
Ahora veamos una sentencia if
que evalúa si un módulo tiene un valor, en lugar de evaluar si existe en la plantilla. Para ello, debemos utilizar el parámetro export_to_template_context . En el ejemplo siguiente, si se valora el módulo de texto en el editor de contenidos, se imprimiría la marca. Si el campo de texto del módulo estuviera vacío, no se mostraría ninguna marca. Si estás trabajando con módulos personalizados, existe una sintaxis simplificada de widget.widget_name
que se describe en elejemplo aquí.
if
pueden hacerse más sofisticadas con sentencias condicionales adicionales o con una regla que se ejecuta cuando la condición o las condiciones son falsas. Las sentencias elif
te permiten agregar condiciones adicionales a tu lógica que se evaluarán después de la condición anterior. Las sentencias else
definen una regla que se ejecuta cuando todas las demás condiciones son falsas. Puedes tener un número ilimitado de sentencias elif
dentro de una sola sentencia if, pero solo una sentencia else
.
A continuación se muestra el ejemplo de sintaxis básica de la sentencia if que utiliza el operador <=
para comprobar el valor de una variable. En este ejemplo, la plantilla se imprimirá con la leyenda: “El número con nombre de la variable es menor que o igual a 6.”
unless
son condicionales al igual que las sentencias if
, pero funcionan con la lógica inversa. Se renderizará y compilará el código entre las etiquetas de apertura y cierre, a menos que la condición booleana única se evalúe como verdadera. Las sentencias unless comienzan con un unless
y terminan con un endunless
. Las sentencias unless
admiten else
pero no elif
.
A continuación se muestra un ejemplo que imprime un encabezado “En construcción”, a menos que se valore el campo de texto enriquecido. Si el campo de texto enriquecido tiene contenido, entonces ese contenido se mostrará.
ifchanged
. Estas sentencias pueden utilizarse para que solo se muestre la marca cuando una variable ha cambiado desde una invocación anterior de esta etiqueta.
if
en línea. Se pueden utilizar para escribir lógica condicional de forma concisa con operadores y pruebas de expresión.