HubSpotのモジュールとテーマは、制作担当者がフィールドを使用してカスタマイズできます。開発者はfields.jsonファイルを駆使してフィールドの作成と整理を行います。
fields.json
ファイルにフィールドを組み込み、テーマエディターとコンテンツエディターに変換します。
fields.json
ファイルには、HubSpot CLIを使用してローカル環境で、またはアプリ内のモジュールエディター上でフィールドを追加できます。テーマにフィールドを追加するには、CLIを使用してテーマのfields.json
ファイルをローカル環境で更新する必要があります。
fields.json
ファイル経由で編集できます。モジュールの場合、hs create module
コマンドを使用すると、このファイルが自動作成されます。モジュールエディターで利用可能な全てのフィールドオプションは、fields.json
ファイルで追加または編集できるプロパティーとして使用できます。これには、リピーターフィールド、グループ、条件が含まれます。ローカル編集の利点の1つとして、gitのようなバージョン管理システムにモジュールを含めやすくなることが挙げられます。
fields.json
ファイルのフィールドにdisplay_width
プロパティーを追加し、値をhalf_width
に設定して、モジュールフィールドを横並びに配列することもできます。
display_width
をhalf_width
に設定した単一フィールドは、コンテンツエディターでは半分の幅で表示されます。fields.json
内でこのフィールドの上または下にあるフィールドをhalf_width
に設定すると、フィールドが横並びに配置されます。
fields.json
で"group"
というtype
のオブジェクトを作成します。次に、グループ化したいフィールドを格納するchildren
配列を含めます。
children
パラメーター内に別の"group"
タイプのオブジェクトを追加することで、グループ内にさらにフィールドグループを作成できます。それから、上記と同じ方法でフィールドグループを構築し、children
を使ってフィールドを格納します。フィールドグループは3レベルでネストできます。
パラメーター | タイプ | 説明 |
---|---|---|
display | 文字列 | フィールドグループの表示スタイル。次のいずれかになります。
|
icon | オブジェクト | ラベルの左側にアイコンを追加します。次のパラメーターがあります。
|
expanded | ブール値 | フィールドグループがデフォルトで展開されるかどうかを指定します。 |
group_occurrence_meta
プロパティーを含めます。このプロパティーには次のプロパティーが格納されます。
featured_enabled
:true
に設定すると、特集項目が有効になります。featured_limit
:使用できる特集項目の最大数。occurrence
プロパティーも含める必要があります。
hs_meta
プロパティーを照会します。以下のコードでは、forループを使用して、特集項目に設定されているフィールドグループ項目を確認し、各項目のタイトルをh3
ヘッダーとして表示しています。
{{ repeated_group_item.hs_meta.occurrence.featured }}
fields.json
ファイルの特殊なフィールド グループ タイプで、これによって制作担当者がモジュールやテーマのスタイルをページエディターとテーマエディター上で制御できるようになります。モジュールまたはテーマにスタイルフィールドを追加する方法を以下に示します。スタイルフィールドの使用と整理に関するベストプラクティスをご参照ください。
fields.json
ファイルに追加する場合は、全てのフィールドを1つのスタイルグループ内に追加します。ただし、次のようにこのグループ内に複数のグループを含めることができます。
fields.json
ファイル内のスタイルフィールドの例については、CMSボイラープレート(英語)をご参照ください。
fields.json
ファイル内にある全てのスタイルフィールドは、テーマエディターの左のサイドバーに追加され、スタイルグループに追加する必要はありません。
fields.json
ファイル内のスタイルフィールドの例については、CMSボイラープレート(英語)をご参照ください。
fields.json
ファイルのフィールド階層を変更すると、既存のモジュールインスタンスのデータが失われることがあります。代わりに、新しいスタイルフィールドの追加、またはフィールドを適切にグループ化した新しいリストの作成ができます。これにより、貴社の更新によって、貴社のテーマを利用している顧客のコンテンツが破損するような変更は避けられます。以前のモジュールの移行パスについては、HubSpotアイデアフォーラム(英語)をご参照ください。.css
プロパティーが使用されます。
パラメーター | タイプ | 説明 | デフォルト値 |
---|---|---|---|
max | 整数 | このグループの最大出現回数。制作担当者がUIにこの数以上のアイテムを追加できないようにします。 | null |
min | 整数 | このフィールドグループの最小出現数。UIに表示されるアイテムがこの数より少なくなるのを防ぎます。 | null |
sorting_label_field | 文字列 | ドラッグ操作可能なカード上のUIに表示するテキストを取得できるフィールドのIDです。デフォルト値は、グループ内の最初のフィールドです。 |
inherited_value
プロパティーは、他のフィールドからデフォルト値を継承するようにフィールドを設定できます。フィールドのデフォルト値全体を別のフィールド値から設定するには、default_value_path
にターゲットフィールドのフィールド名パスを指定します。default_value_path
を設定すると、フィールドに設定されたdefault
は全て無視されます。
他のフィールドの値にアクセスするには、モジュールのHubLコードでのアクセスと同様に、パスの先頭にmodule.
を含める必要があります。
font
とfont_set
の組み合わせによって決まるため、フォントフィールドの継承にはこの両方を含める必要があります。詳しくはフォントフィールドをご確認ください。property_value_path
に継承するプロパティーを細かく指定できます。inherited_value
で参照されるパスにも、複雑なフィールドのフィールド値からのキーを含めることができます。
例えば、色フィールドには、色自体と不透明度を含むオブジェクト値があります。そのため、不透明度なしで色自体の値を取得するには、パスの末尾に.color
を指定します。例えばフォントフィールドは、個別の色フィールドから色だけを継承できます。
default_value_path
とproperty_value_paths
の効果を組み合わせて、あるフィールドからデフォルト値を継承しながら、別のフィールドから特定のプロパティー値を継承することもできます。
default_value_path
またはproperty_value_paths
によって関連付けられた他のフィールドから影響を与えることはできなくなります。
fields.json
ファイル内のフィールドにvisibility
オブジェクトを追加することで、フィールドが表示される条件を構成できます。例えば、サンキューメッセージが選択されているときにはリッチテキスト領域を表示する一方で、リダイレクトが選択されているときはページセレクターを表示するようにフォームモジュールを設定できます。
表示条件はcontrolling_field_path
の値を基準に設定することも、property
パラメーターを使用してフィールド内の特定のプロパティーを基準に設定することもできます。また、個々のフィールドに表示条件を適用したり、フィールドのグループに表示条件を適用して、そのグループ内の全ての要素の表示条件を管理したりすることもできます。
パラメーター | タイプ | 説明 |
---|---|---|
controlling_field_path | 文字列 | 表示条件を制御するフィールドのパス。
|
controlling_value_regex | 文字列 | フィールドを表示するために存在する必要がある制御フィールドの正規表現。正規表現は(部分文字列ではなく)文字列全体に一致する必要があり、大文字と小文字も区別されます。 |
operator | 文字列 | controlling_value_regex 値との一致方法を定義する演算子。次のいずれかの演算子を使用できます。
|
property | 文字列 | 文字列ターゲットフィールドの特定のプロパティーに基づいて表示条件を設定します。例えば、画像フィールドのsrc プロパティーが特定の値と等しい場合に、このフィールドが表示されるようにできます。デフォルトでは、このフィールドに値が指定されていない場合、表示条件は文字列に変換されたcontrolling_value_regex 値に基づくことになります。 |
visibility
オブジェクト内にoccurrence_options
オブジェクトを含めると、繰り返されるフィールドの値数をターゲットにすることもできます。このオブジェクトには、比較するcount
とoperator
の定義を含める必要があります。例えば、別の繰り返しフィールドに少なくとも2つの項目がある場合にのみテキストフィールドを表示するには、visibility
を次のように定義します。
operater
の値を使用できます。
"NOT_EQUAL"
"EQUAL"
"EMPTY"
"NOT_EMPTY"
"GREATER_THAN"
"GREATER_THAN_OR_EQUAL"
"LESS_THAN"
"LESS_THAN_OR_EQUAL"
visibility
属性で同時に複数の条件をサポートすることはできません。複数の演算子を使用して複数の条件を追加し、演算の順序も指定するには、advanced_visibility
を使用します。
パラメーター | タイプ | 説明 |
---|---|---|
visibility_rules | 文字列 | デフォルトでは、このパラメーターの値はSIMPLE に設定されます。advanced_visibility を使用する場合は、ADVANCED に設定します。 |
boolean_operator | 文字列 | 条件付き基準のブール演算子。AND またはOR のいずれかにできます。 |
criteria | 配列 | フィールドを表示するために一致する必要がある条件付き基準を定義する、visibilityオブジェクトからなる配列。 |
controlling_field_path | 文字列 | 表示条件を制御するフィールドのドットパス。
|
controlling_value_regex | 文字列 | フィールドを表示するために一致する必要がある、制御フィールドの値。MATCHES_REGEX 演算子を使用する場合、正規表現は(部分文字列ではなく)文字列全体に一致する必要があり、大文字と小文字も区別されます。controlling_field_path が設定されている一方、controlling_value_regex は設定されていないフィールドは、制御フィールドの値がnullでも空白でもない場合に表示されます。 |
operator | 文字列 | controlling_value_regex 値との一致方法を定義する演算子。次のいずれかの演算子を使用できます。
MATCHES_REGEX を使用する場合は、正規表現の構文が必要です。 |
fields.json
ファイルを表示してください。
payment
)は、コンテンツ制作担当者が特定の支払いリンクを作成するために使用する、必須のフィールド(ドロップダウンメニュー)です。HubSpotでは、コンテンツ制作担当者が最初にこのモジュールをページに追加すると、次のUIが表示されます。
checkout_location
、button_text
、icon
)が表示されます。このようになるのは、payment
フィールドによって制御され、paymentフィールドのid
パラメーターのID値を必要とするvisibility
属性が、これらのフィールドに設定されているためです。
icon
フィールド自体はadvanced_visibility
を使用しており、payment
フィールドに支払いリンクが存在し、かつ、add_icon
チェックボックスがオンにされている場合にのみ表示されます。
fields.json
内で可視性を設定するだけでなく、デザインマネージャーでフィールドの「表示条件」オプションを編集して可視性を設定することもできます。
fields.json
ファイル内でvisibility
属性を確認できます。
disabled_controls
オブジェクトで設定されます。フィールドを編集可能にするための条件は、rules
オブジェクト内で設定され、advanced_visibilityと同じ形式に従います。
以下のコードは、rules
基準の単純な実装と高度な実装の両方を示しています。
simple_page
フィールドには、text_field
がtesting
に設定されている場合にフィールドを無効にするロジックが含まれています。fancy_page
フィールドには、text_field
またはtext_field_2
のいずれかがそれぞれtesting
とtesting2
に等しくない値に設定されている場合にフィールドを無効にするロジックが含まれています。パラメーター | タイプ | 説明 |
---|---|---|
message | 文字列 | フィールドが無効な場合にコンテンツエディターに表示するメッセージ。 |
rules | オブジェクト | フィールドの編集を有効にするための条件。 |
criteria | 配列 | フィールドを表示するために満たす必要がある基準を定義する条件オブジェクトの配列。この配列には、boolean_operator パラメーターを使用してAND またはOR ロジックで区切られた複数の条件オブジェクトを含めることができます。 |
boolean_operator | 文字列 | 条件付き基準のブール演算子。AND またはOR のいずれかにできます。指定しなかった場合、デフォルトでAND になります。 |
controlling_field_path | 文字列 | 表示条件を制御するフィールドのドットパス。
|
controlling_value_regex | 文字列 | フィールドを表示するために一致する必要がある、制御フィールドの値。MATCHES_REGEX 演算子を使用する場合、正規表現は(部分文字列ではなく)文字列全体に一致する必要があり、大文字と小文字も区別されます。controlling_field_path が設定されている一方、controlling_value_regex は設定されていないフィールドは、制御フィールドの値がnullでも空白でもない場合に表示されます。 |
operator | 文字列 | controlling_value_regex 値との一致方法を定義する演算子。次のいずれかの演算子を使用できます。
MATCHES_REGEX を使用する場合は、正規表現の構文が必要です。 |
editor-preview.json
ファイルを追加します。このファイルで、関連するCSSセレクターが含まれる、ハイライト表示する対象のスタイルフィールドごとに、次の形式を使用して配列を含めます。
editor-preview.json
ファイルでご確認ください。
パラメーター | 説明 |
---|---|
theme-directory-path | テーマディレクトリーへのパス。 |
editor-preview.json
ファイルを確認し、フィールドとセレクターが適切にマッピングされるように調整する必要があります。Generate-selectorsコマンドでは、どのフィールドがどのセレクターに影響するかについて基本的な推測が行われるだけなので、テーマがどのように作成されているかに基づいて修正する必要があります。例えばこのコマンドでは、モジュールがスタイル設定をオーバーライドしていたり、マクロが使用されたりしていても検出できません。
設定されているマッピングをテストするには、テーマをアカウントにアップロードし、そのアカウント内でテーマエディターを表示します([設定]>[ウェブサイト]>[テーマ]>[テーマを表示])。