Paramètre export_to_template_context

Last updated:

export_to_template_context est un paramètre qui met les paramètres d'une balise HubL à la disposition de l'environnement du modèle sans restituer réellement la balise HubL. Ce paramètre peut être utilisé avec toutes les balises HubL. Le dictionnaire widget_data est utilisé pour récupérer ces paramètres, les stocker dans des variables et/ou les intégrer dans la logique de votre modèle.

En rendant les paramètres d'une balise HubL disponibles dans l'environnement du modèle sans restituer réellement la balise HubL, vous pouvez permettre aux utilisateurs de prendre des décisions dans l'éditeur de contenu qui affectent la restitution du modèle. Par exemple, supposons que vous voulez restituer un certain bloc de code uniquement lorsque l'utilisateur donne une valeur à un champ. Cela devient possible avec ce paramètre.

Vous devez d'abord ajouter export_to_template_context=True à la balise HubL. Vous devez alors utiliser un paramètre widget_data.module.parameter_you_want_to_retreive.

{% module "job_title" path="@hubspot/text", label="Enter a Job Title", value="Chief Morale Officer", export_to_template_context=True %} {# Makes the parameters available to be stored and used in template logic #} {{ widget_data.job_title.body.value }} {# Prints the value of the HubL tag but can also be used in template logic #}

Vous trouverez ci-dessous quelques applications de ce concept.

Utilisation dans des modules personnalisés

Le paramètre export_to_template_context=True n'est pas pris en charge dans les modules personnalisés, car il n'a pas d'utilité réelle pour eux. Vous n'avez pas besoin d'utiliser export_to_template_context pour obtenir la valeur d'un module dans un modèle, car vous pouvez déjà y accéder. Si vous devez masquer visuellement le résultat du module, vous pouvez créer le module pour qu'il ne produise rien ou inclure un champ booléen qui active ou désactive le rendu du module.

Images d'arrière-plan sélectionnables par l'utilisateur

Dans cet exemple, une balise HubL d'image est créée, mais elle est ensuite exportée vers le contexte du modèle plutôt que d'être restituée. Le paramètre src est récupéré avec la balise widget_data et restitué comme source d'une image d'arrière-plan dans une balise de style.
{% module "background_image" path="@hubspot/image" label='Select a background image', src='http://cdn2.hubspot.net/hub/428357/file-2117441560-jpg/img/dev-bg-compressed.jpg', export_to_template_context=True %} <!--Sample markup --> <div class="bg-image-section" style="background:url('{{ widget_data.background_image.src }}'); background-size:cover; min-height: 500px;"> <h1>Supercharge your app with HubSpot</h1> <h3>Build powerful integrations for a global community of users</h3> </div>

Bien qu'il soit possible de le faire dans des modèles codés, il est généralement préférable de créer un module personnalisé afin d'offrir aux utilisateurs de l'éditeur de page la meilleure expérience possible. Les balises HubL comme celle-ci apparaissent comme des champs individuels, alors que vous pouvez avoir plusieurs champs associés. En utilisant un module personnalisé, tous ses champs s'affichent groupés dans l'éditeur de page.

Champ de choix pour restituer le balisage prédéfini

L'exemple suivant utilise le paramètre export_to_template_context en association avec un module de choix pour modifier un message de bannière sur une page Carrières. L'utilisateur sélectionne un département via l'interface utilisateur et l'intitulé change sans que l'utilisateur ait à modifier le contenu.

{% module "department" path="@hubspot/choice", label="Choose department", value="Marketing", choices="Marketing, Sales, Dev, Services" export_to_template_context=True %} {% if widget_data.department.value == "Marketing" %} <h3>Want to join our amazing Marketing team?!</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% elif widget_data.department.value == "Sales" %} <h3>Are you a Sales superstar?</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% elif widget_data.department.value == "Dev" %} <h3>Do you love to ship code?</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% else %} <h3>Want to work with our awesome customers?</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% endif %}

Cette même fonctionnalité peut être reproduite en utilisant un champ de choix dans un module personnalisé. L'interface utilisateur du module personnalisé facilite le choix d'options comportant à la fois une valeur et un libellé.

Récupération des paramètres à partir de modules déjà restitués sur le modèle

Si vous souhaitez récupérer un paramètre d'un module ou d'une balise dont le rendu est déjà en cours sur une page, vous pouvez accéder au module dans un dictionnaire intitulé widgets. Le paramètre export_to_template_context n'est pas nécessaire. La syntaxe est la suivante :

// HubL {{ content.widgets.name_of_module.body.parameter }} {{ content.widgets.my_text.body.value }}
Remarque : La méthode ci-dessus ne prend pas en charge la récupération de valeurs à partir de champs dans des modules globaux, car content.widgets n'accédera pas aux modules globaux.

Étant donné que les différents champs stockent les données dans des formats différents, il est souvent pratique d'utiliser les informations du développeur pour savoir comment accéder aux données spécifiques que vous souhaitez afficher.

Impression des informations du module HubL sur la liste des blogs

Si les modèles de blog sont généralement utilisés pour les blogs, ils peuvent également être réutilisés pour créer divers autres types de listes. Vous pouvez utiliser les techniques décrites ci-dessus pour y parvenir.

Par exemple, vous pouvez créer une liste de presse concernant votre entreprise, mais plutôt que de créer un lien vers les articles, vous souhaitez que la liste renvoie à une autre page.

Vous pouvez voir ce concept en action sur academy.hubspot.com/projects. La page de liste des projets est un modèle de liste de blog, mais chaque article est lié à une page HubSpot ordinaire. Le créateur de contenu spécifie le lien de destination dans l'éditeur.

Dans l'en-tête du code de l'article de blog individuel, vous devez définir un champ de texte. Si vous ne voulez pas que le texte soit restitué sur l'article, vous devez utiliser export_to_template_context.

{% module "custom_blog_link" path="@hubspot/text", label="Link to external press item", export_to_template_context=True %}

Ce champ de texte est modifiable dans chaque article de blog. Ensuite, nous devons définir un lien dans notre liste. Toutefois, comme les données du widget n'existent que dans le contexte de l'article, nous devons utiliser une syntaxe différente pour récupérer les données du widget afin de renseigner le lien. Dans ce cas, nous utiliserons content.widgets.custom_blog_link.body.value. Bien que le champ widget_data ne soit pas accessible à la liste de blog, la valeur de ce champ est toujours stockée dans le contexte des widgets du contenu individuel.

Une boucle basique de liste de blog qui restitue ce lien personnalisé avec chaque article est présentée ci-dessous. Si vous utilisez cette technique, veillez à ajouter le sous-répertoire créé automatiquement pour chaque article de blog à votre fichier robots.txt afin d'éviter que ces articles vides ne soient recherchés par Google et les autres robots d'exploration.

{% for content in contents %} <a href="{{ content.widgets.custom_blog_link.body.value }}"> Click here to see this press feature! </a> {% endfor %}

Cet article vous a-t-il été utile ?
Ce formulaire est destiné à recueillir les avis sur la documentation pour les développeurs. Si vous souhaitez faire part de votre avis sur les produits HubSpot, veuillez le partager sur le forum des idéesde la communauté.