export_to_template_context
export_to_template_context
は、HubLタグを実際に表示することなく、HubLタグのパラメーターをテンプレート環境で使用するためのパラメーターです。このパラメーターは、全てのHubLタグに使用できます。これらのパラメーターを取得し、変数に保存し、テンプレートのロジックに含めるには、widget_data
dict(ディクショナリー)を使用します。
表示されていないHubLタグのパラメーターをテンプレートのコンテキストで使用できれば、コンテンツエディターでのテンプレートの表示方法をユーザーが決めることが可能になります。例えば、ユーザーがフィールドに値を入力したときに、特定のコードブロックのみを表示する必要があるとします。これは、このパラメーターを使用することで実現できます。
まず、HubLタグにexport_to_template_context=True
を追加する必要があります。次に、widget_data.module.parameter_you_want_to_retreive
を使用します。
以下では、この考え方の適用例をいくつか紹介します。
export_to_template_context=True
は、カスタムモジュールにとっては実質的な機能はないため、カスタムモジュールではサポートされません。テンプレート内のモジュールにはすでにアクセスできるので、モジュール内の値を取得するためにexport_to_template_context
を使用する必要がないことがその理由です。もう1つの理由は表示です。モジュールの出力を非表示にする必要がある場合は、何も出力しないようにモジュールを作成できます。つまり、モジュールで何かを表示するかどうかを有効または無効にするブール値フィールドを含めます。
widget_data
タグでsrc
パラメーターを取得し、styleタグの背景画像のソースとして表示します。これはコードテンプレートでも実現できますが、通常はカスタムモジュールを作成して、ページエディターのユーザーに最適な編集環境を提供することをお勧めします。このようなHubLタグは個別のフィールドとして表示されますが、関連するフィールドが複数存在する場合もあります。カスタムモジュールを使用すると、ページエディターではモジュールの全てのフィールドがグループ化された状態で表示されます。
以下の例では、export_to_template_context
パラメーターと選択モジュールを組み合わせて、求人ページのバナーメッセージを変更しています。ユーザーがUIを使用して部門を選択すると、ユーザーが実際にコンテンツを編集しなくても見出しが変更されます。
これと同じ機能を、カスタムモジュール内の選択フィールドを使用して再現できます。カスタムモジュールのUIでは、値とラベルの両方を含む選択オプションを非常に簡単に作成できます。
ページにすでに表示されているモジュールまたはタグからパラメーターを取得する場合は、widgets
という名前のdict内でそのモジュールにアクセスできます。export_to_template_context
パラメーターは必須ではありません。構文は次のとおりです。
フィールドによってデータの保存形式が異なるため、表示するデータへのアクセス方法を確認するには、多くの場合、開発者情報を使用すると便利です。
ブログテンプレートは、一般的にはブログに使用されますが、他の種類のリストを作成するために流用することもできます。前述の手法を使用してこの目的を達成できます。
例えば、会社が受信した報道記事のリストレイアウトを作成するとして、記事にリンクせずに、リストを別のページにリンクする場合があります。
academy.hubspot.com/projectsでこの考え方の実例を確認できます。プロジェクト リスト ページはブログ リスト テンプレートですが、個々の記事は通常のHubSpotページにリンクしています。制作担当者はエディターでリンク先を指定します。
個々のブログ記事のコードの先頭で、テキストフィールドを定義します。記事にこのテキストを表示しない場合は、export_to_template_context
を使用します。
このテキストフィールドはブログ記事ごとに編集できます。次に、リスト内のリンクを定義する必要があります。しかし、widget_dataは記事のコンテキストにのみ存在するため、別の構文を使用してウィジェットデータを取得し、リンクに設定する必要があります。この場合は、content.widgets.custom_blog_link.body.value
を使用します。ブログリストではwidget_data
を使用できませんが、そのフィールドの値は個々のコンテンツのウィジェットのコンテキスト内に保存されます。
各記事を含むこのカスタムリンクを表示する基本的なブログリストのループを以下に示します。この方法を使用する場合は、ブログ記事ごとに自動的に作成されたサブディレクトリーをrobots.txtファイルに追加して、空の記事がGoogle などのクローラーによってクロールされないようにする必要があります。
貴重なご意見をありがとうございました。