export_to_template_context
export_to_template_context
es un parámetro que hace que los parámetros de una etiqueta HubL estén disponibles para el entorno de la plantilla sin tener que renderizar la etiqueta HubL. Este parámetro se puede utilizar con todas las etiquetas HubL. El diccionario widget_data
se utiliza para recuperar estos parámetros, almacenarlos en variables, y/o incorporarlos a la lógica de tu plantilla.
Al hacer que los parámetros de una etiqueta HubL estén disponibles en el contexto de la plantilla, sin renderizar realmente la etiqueta HubL, puedes permitir que los usuarios tomen decisiones en el editor de contenido que afecten a cómo se renderiza la plantilla. Por ejemplo, digamos que quieres renderizar un determinado bloque de código solo cuando el usuario da un valor a un campo. Esto es posible con este parámetro.
Primero, debes agregar export_to_template_context=True
a la etiqueta HubL. Luego, debes utilizar un widget_data.module.parameter_you_want_to_retreive
.
A continuación, se presentan algunas aplicaciones de este concepto.
export_to_template_context=True
se está admite en los módulos personalizados, ya que no tiene ningún propósito real para ellos. He aquí el motivo: no es necesario utilizar export_to_template_context
para obtener el valor de un módulo dentro de una plantilla, ya puedes acceder a él. El otro aspecto es visual. Si necesitas ocultar visualmente la salida del módulo, puedes construir el módulo para que no muestre nada, o incluir un campo booleano que active o desactive si el módulo muestra algo.
src
se recupera con la etiqueta widget_data
y se representa como la fuente de una imagen de fondo en una etiqueta de estilo.Aunque esto es posible hacerlo en plantillas codificadas, generalmente es mejor construir un módulo personalizado para darles a los usuarios la mejor experiencia en el editor de páginas. Este tipo de etiquetas de HubL aparecen como campos individuales, mientras que puedes tener varios campos relacionados. Al utilizar un módulo personalizado, todos sus campos se muestran agrupados en el editor de páginas.
El siguiente ejemplo utiliza el parámetro export_to_template_context
junto con un módulo de elección para cambiar un mensaje de banner en una página de carreras. El usuario selecciona un departamento a través de la interfaz de usuario y el título cambia sin que el usuario tenga que editar el contenido.
Esta misma funcionalidad se puede reproducir utilizando un campo de elección dentro de un módulo personalizado. La interfaz de usuario del módulo personalizado hace que las opciones de elección con un valor y una etiqueta sean bastante fáciles.
Si se deseas recuperar un parámetro de un módulo o etiqueta que ya se está renderizando en una página, puedes acceder al módulo dentro de un diccionario llamado widgets
. El parámetro export_to_template_context
no es necesario. La sintaxis es la siguiente:
Debido a que los diferentes campos almacenan datos en diferentes formatos, a menudo es útil hacer uso de developer Info para ver cómo se accede a los datos específicos que se quieren mostrar.
Aunque las plantillas de blog se utilizan generalmente para los blogs, también se pueden reutilizar para crear otros tipos de listados. Para ello, puedes utilizar las técnicas descritas anteriormente.
Por ejemplo, es posible que desees crear un diseño de listado de la prensa que ha recibido su empresa, pero en lugar de enlazar a los posts, quieres que el listado enlace a otra página.
Puedes ver este concepto en acción en academy.hubspot.com/projects. La página de listado de proyectos es una plantilla de listado de blog, pero cada post enlaza con una página regular de HubSpot. El creador de contenidos especifica el enlace de destino en el editor.
Dentro del encabezado del código del post de blog individual, se definiría un campo de texto. Si no quieres que el texto se renderice en el post, debes usar export_to_template_context
.
Este campo de texto es editable en cada post del blog. A continuación, tendríamos que definir un enlace en nuestro listado. Pero como el widget_data solo existe en el contexto del post, tenemos que utilizar una sintaxis diferente para obtener los datos del widget y rellenar el enlace. En este caso, utilizaríamos content.widgets.custom_blog_link.body.value
. Aunque los widget_data
no están disponibles para el listado del blog, el valor de ese campo sigue almacenado en el contexto de los widgets del contenido individual.
A continuación se muestra un bucle básico de listado de blogs que muestra este enlace personalizado con cada post. Si utilizas esta técnica, deberás asegurarte de agregar el subdirectorio creado automáticamente para cada post del blog a tu archivo robots.txt para evitar que esos posts vacíos sean rastreados por Google y otros rastreadores.
Gracias por tus comentarios, son muy importantes para nosotros.