Überblick über Modul- und Designfelder
Innerhalb von Modulen und Designs werden Felder verwendet, um Content-Autoren zu ermöglichen, die Formatierung von Modulen und Designs mit Stilen und die Funktionalität auf Ihrer Website zu steuern. Beim Entwickeln eines Moduls oder Designs fügen Sie Felder in eine fields.json
-Datei ein, die dann in das Design und die Content-Editoren übersetzt wird.
Im Folgenden erfahren Sie mehr darüber, wie Sie Optionen für Modul- und Designfelder erstellen und verwalten. Weitere Informationen zu bestimmten Feldtypen finden Sie im Referenzleitfaden für Modul- und Feldtypen.
Sie können der fields.json
-Datei eines Moduls lokal über das HubSpot-CLI und im In-App-Modul-Editor Felder hinzufügen. Um Felder zu einem Design hinzuzufügen, müssen Sie die fields.json
-Datei des Designs lokal über das CLI aktualisieren.
Beim lokalen Erstellen können die Felder von Modulen und Designs über eine fields.json
-Datei im Ordner des Moduls oder Designs bearbeitet werden. Bei Modulen wird diese Datei automatisch erstellt, wenn Sie den hs create module
-Befehl verwenden. Alle im Modul-Editor verfügbaren Feldoptionen sind als Eigenschaften verfügbar, die Sie in der fields.json
-Datei hinzufügen oder bearbeiten können. Dazu gehören Wiederholfelder, Wiederholgruppen und Bedingungen. Einer der Vorteile der lokalen Bearbeitung ist, dass es einfacher ist, Ihre Module in Versionskontrollsysteme wie Git einzubinden.
Der Design-Manager verfügt über eine integrierte Modul-Editor-Benutzeroberfläche, mit der Sie Modulfelder erstellen, gruppieren und bearbeiten können. Der Modul-Editor enthält eine Modulvorschau, mit der Sie sehen können, wie das Modul alleine aussieht, und mit der Sie Ihre Felder testen können. Da Module immer in einem Kontext angezeigt werden, sollten Sie sie immer in einer Vorlage testen, die Sie verwenden möchten, um zu sehen, welche sich Stile auf Vorlagenebene möglicherweise auf sie auswirken. Beachten Sie, dass ein Modul, das sich in einem gesperrten Ordner befindet, auf diese Weise nicht bearbeitet werden kann.

Bitte beachten: Wenn Sie hauptsächlich lokal arbeiten, den Modul-Editor jedoch zum Konfigurieren von Feldern verwenden möchten, müssen Sie sicherstellen, dass Sie Ihre Änderungen abrufen. Dies ist besonders wichtig für diejenigen, die Versionskontrollsysteme wie Git verwenden.
Standardmäßig werden Modulfelder in Content-Editoren vertikal gestapelt. Sie können jedoch Modulfelder nebeneinander platzieren, indem Sie den Feldern in der fields.json
-Datei eine display_width
-Eigenschaft mit dem Wert half_width
hinzufügen.
Ein einzelnes Feld mit einer display_width
von half_width
wird im Content Editor in halber Breite angezeigt. Wenn das Feld über oder unter diesem Feld in der fields.json
-Datei auf half_width
festgelegt ist, werden sie nebeneinander platziert.
Wenn Felder miteinander in Beziehung stehen, ist es oft sinnvoll, sie visuell gruppiert darzustellen. Module und Designs unterstützen das Gruppieren mehrerer Felder.

Feldgruppen ohne verschachtelte Feldgruppen werden einfach mit Abgrenzungen über und unter der Gruppe angezeigt, und das Label der Gruppe wird am oberen Rand der Gruppe angezeigt.

Feldgruppen können verschachtelt werden. Eine Feldgruppe, die eine andere Feldgruppe enthält, wird als Schaltfläche angezeigt. Wenn Sie auf die Schaltfläche klicken, um die Gruppe anzuzeigen, wird der Inhalt dieser Gruppe angezeigt.
Feldgruppen können 3 Ebenen tief verschachtelt werden, d. h., Modulfelder können 4 Ebenen tief sein. So lassen sich auf einfache Weise Benutzeroberflächen erstellen, die Feldbeziehungen und eine größere Detailtiefe vermitteln.
Feldgruppenobjekte können als untergeordnete Objekte anderer Feldgruppen aufgelistet werden. Ihre Struktur ist der von Feldern sehr ähnlich, der einzige besondere Parameter ist der Parameter „children“, der ein Array von Feldern und Gruppen ist, die sie enthalten.
Für Feldgruppen kann festgelegt werden, dass sie standardmäßig erweitert werden, indem die boolesche Eigenschaft expanded
in den fields.json-Gruppeneigenschaften auf true
gesetzt wird, wie im Beispielcode oben gezeigt. Feldgruppen werden standardmäßig nicht erweitert. Wenn Sie verschachtelte Feldgruppen verwenden, kann die übergeordnete Gruppe diese Eigenschaft also nicht nutzen.
Feldgruppen erstellen Dictionaries, die die Feldwerte enthalten, die Sie ausgeben möchten. Wenn Sie Feldgruppen verschachteln, ist die verschachtelte Feldgruppe ein Dictionary innerhalb des äußeren Feldgruppen-Dictionarys. Um auf diese Daten zuzugreifen, durchlaufen Sie den Baum je nach Kontext entweder vom Stammdesign oder von der Modulvariable aus.
Stilfelder sind ein spezieller Feldgruppentyp in der fields.json
-Datei eines Moduls oder Designs, der Content-Autoren die Kontrolle über das Styling eines Moduls oder Designs im Seiten- und Design-Editor gibt. Im Folgenden erfahren Sie, wie Sie Stilfelder zu einem Modul oder Design hinzufügen können. Informieren Sie sich über bewährte Methoden zur Verwendung und Organisation von Stilfeldern.
Modulstilfelder
Stilfelder, die einem Modul hinzugefügt werden, erscheinen bei der Bearbeitung des Moduls auf der Registerkarte „Stile“ des Seiten-Editors.
Wenn Sie Stilfelder zur fields.json
-Datei eines Moduls hinzufügen, fügen Sie sie innerhalb einer Stilgruppe hinzu. Diese Gruppe kann jedoch mehrere Gruppen enthalten, wie unten dargestellt:
Die folgenden Felder können als Stilfelder in Modulen verwendet werden. Erfahren Sie mehr über die einzelnen Feldtypen im Leitfaden für Module und Feldtypen.
- Ausrichtung
- Farbverlauf
- Abstand
- Hintergrundbild
- Rahmen
- Boolesch
- Auswahl
- Zahl
- Farbe
- Symbol
- Bild
- Schriftart
- Textausrichtung
Erfahren Sie mehr über Modul- und Designfeldtypen.
In der CMS Boilerplate finden Sie ein Beispiel für ein Stilfeld in der fields.json
-Datei eines Moduls.
Designstilfelder
Stilfelder, die einem Design hinzugefügt werden, erscheinen in der linken Seitenleiste des Design-Editors:
Alle Stilfelder in der fields.json
-Datei eines Designs werden in die linke Seitenleiste des Design-Editors eingefügt und müssen nicht mehr in eine Stilgruppe eingeordnet werden, wie unten dargestellt:
Die folgenden Felder können als Stilfelder in Modulen verwendet werden. Erfahren Sie mehr über die einzelnen Feldtypen im Leitfaden für Module und Feldtypen.
Erfahren Sie mehr über Modul- und Designfeldtypen.
Ein Beispiel für ein Stilfeld in der fields.json
-Datei eines Designs finden Sie in der CMS Boilerplate.
Bitte beachten Sie: Wenn Sie ein Marketplace-Anbieter sind, sollten Sie bestehende Inhaltsfelder nicht durch Stilfelder in bestehenden Modulen ersetzen. Eine Änderung der Feldhierarchie in einer fields.json
-Datei kann dazu führen, dass vorhandene Modulinstanzen ihre Daten verlieren. Stattdessen sollten Sie neue Stilfelder hinzufügen oder eine neue Auflistung erstellen, in der die Felder entsprechend gruppiert sind. Dadurch wird verhindert, dass Ihre Updates Kunden, die sich auf Ihre Design verlassen, Probleme bereiten. Wenn Sie sich für Migrationspfade für alte Module einsetzen möchten, besuchen Sie das Ideen-Forum von HubSpot.
Einige Stilfelder bieten die Möglichkeit, CSS direkt auf der Grundlage des Feldwertes auszugeben. Dies ist besonders hilfreich bei Feldern, die ein komplizierteres Styling wie Farbverläufe steuern können. Die folgenden Stilfelder haben eine generierte .css
-Eigenschaft:
Bei der Erstellung von Modulen, die Informationen formatieren, gibt es oft Typen von Informationen, die sich wiederholen. Ein Rezeptmodul könnte zum Beispiel ein Feld für „Zutat“ haben. Die meisten Rezepte haben aber natürlich mehr als 1 Zutat. Sie könnten ihnen ein Rich-Text-Feld bereitstellen, aber dann verlieren Sie die Möglichkeit, ein einheitliches Styling durchzusetzen und Funktionen für jede Zutat hinzuzufügen. Hier kommen die Wiederholungen ins Spiel. HubSpot bietet zwei Arten von Wiederholungen an: Wiederholfelder und Wiederholgruppen.
Wiederholfelder sind normale Felder, aber Content-Autoren können Instanzen des Feldes hinzufügen, entfernen und neu anordnen. Mit dem obigen Beispiel für ein Rezeptmodul könnte jede Zutat ein sich wiederholendes Textfeld sein.

Auf diese Weise kann der Content-Autoren so viele Zutaten hinzufügen, wie er möchte. Aus der Sicht des Entwicklers erhalten Sie ein Array, das Sie in einer Schleife durchlaufen lassen können, um die Liste der Zutaten unter Anwendung der gewünschten Formatierung und Funktionalität zu drucken.
Wiederholfelder werden am besten für sehr einfache Szenarien verwendet. Häufig sind Wiederholgruppen sinnvoller.
Bitte beachten: Es ist derzeit nicht möglich, die Standardreihenfolge von sich wiederholenden Feldern festzulegen.
Wiederholgruppen sind Feldgruppen, bei denen die Wiederholungsoption aktiviert ist. Mithilfe von Wiederholgruppen können Content-Autoren Gruppen von Feldern hinzufügen, entfernen und neu anordnen. Nehmen wir das Beispiel des Rezeptmoduls: Sie möchten Ihre Zutatenliste mit einer Einkaufslistenfunktion verknüpfen.

Die Menge einer Zutat wäre entscheidend für die Einkaufsliste. Das könnte man zwar in das Textfeld eingeben, dann müsste das Modul jedoch das Textfeld auswerten und hoffen, dass wir die Menge erfolgreich von der Zutat trennen können. Hier sind Wiederholgruppen sehr nützlich. Die Ausgabe dieser Felder ist ein Objekt, das in einer Schleife durchlaufen werden kann.
Um die Bearbeitung zu vereinfachen und zu verhindern, dass Content-Editoren Werte angeben, die Sie nicht programmatisch berücksichtigt haben, können Sie Mindest- und Höchstwerte für die Anzahl der Elemente festlegen, die Content-Autoren einem Wiederholfeld oder einer Wiederholgruppe hinzufügen können.
Für Wiederholgruppen können Sie auch festlegen, welches Feld bei der Anzeige der Wiederholung als Label für dieses Element dient.

Parameter | Type | Description | Default |
---|---|---|---|
max
| Ganzzahl | Maximale Anzahl der Vorkommen dieser Gruppe. Verhindert, dass der Content-Autor mehr als diese Anzahl von Elementen auf der Benutzeroberfläche hinzufügt. |
null
|
min
| Ganzzahl | Mindestanzahl der Vorkommen dieser Feldgruppe. Verhindert, dass Benutzer weniger als diese Anzahl von Elementen auf der Benutzeroberfläche haben. |
null
|
sorting_label_field
| Zeichenfolge | Dies ist die Feld-ID des Feldes, aus dem der Text übernommen wird, der auf der Benutzeroberfläche auf den verschiebbaren Karten angezeigt werden soll. Standardmäßig ist dies das erste Feld in der Gruppe. |
Die Eigenschaft inherited_value
kann so konfiguriert werden, dass ein Feld seinen Standardwert von anderen Feldern übernimmt. Um festzulegen, dass der gesamte Standardwert eines Feldes vom Wert eines anderen Feldes übernommen wird, legen Sie den default_value_path
auf den Feldnamenpfad des Zielfeldes fest. Wenn default_value_path
festgelegt ist, werden alle Standardwerte
für das Feld ignoriert.
Um auf die Werte anderer Felder zuzugreifen, müssen Pfade module.
am Anfang enthalten, als ob Sie auf den Wert im HubL-Code des Moduls zugreifen würden.
Bei komplexen Feldern (Felder, deren Werte Objekte sind) können die Benutzer detaillierter steuern, welche Eigenschaften durch property_value_path
vererbt werden. Alle Pfade, auf die in inherited_value
verwiesen wird, können bei komplexen Feldern auch Schlüssel aus dem Wert eines Feldes enthalten – so haben beispielsweise Farbfelder Objektwerte, die sowohl die Farbe selbst als auch die Deckkraft enthalten. Um also den tatsächlichen Farbwert einer Farbe ohne die Deckkraft zu erhalten, würde der Pfad mit .color
enden. So kann beispielsweise ein Schriftartfeld nur seine Farbe von einem separaten Farbfeld erben:
Sie können auch die Auswirkungen von default_value_path
und property_value_paths
kombinieren, damit ein Standardwert von einem Feld übernommen wird, während ein bestimmter Eigenschaftswert von einem anderen Feld übernommen wird:
Wenn ein Feld von einem anderen Feld erbt, dann aber auf der Seitenebene oder in den Designeinstellungen direkt überschrieben wird, wird seine Verknüpfung mit dem kontrollierenden Feld getrennt. Alle anderen Felder, die über default_value_path
oder property_value_paths
zugeordnet sind, haben keinen Einfluss mehr auf den Wert des Feldes.
Wenn Sie benutzerdefinierte Modul- und Designfelder definieren, können Sie konfigurieren, wann ein Feld angezeigt wird, indem Sie das visibility
-Objekt zu dem Feld in der fields.json
-Datei hinzufügen. Sie können beispielsweise ein Formularmodul festlegen, um einen Rich-Text-Bereich anzuzeigen, wenn die Danksagung ausgewählt wird, eine Seitenauswahl aber für den Fall, dass eine Weiterleitung ausgewählt wird.
Sie können die Sichtbarkeit anhand des Werts eines controlling_field_path
oder anhand einer bestimmten Eigenschaft innerhalb dieses Felds mithilfe des property
-Parameters festlegen.
Sie können die Sichtbarkeit auch auf ein einzelnes Feld oder auf eine Gruppe von Feldern anwenden, um die Sichtbarkeit für alle Elemente in der Gruppe zu steuern.
Parameter | Type | Description |
---|---|---|
controlling_field_path
| String | Der Punktpfad des Feldes, der die Anzeigebedingung steuert.
|
controlling_value_regex
| String | Der reguläre Ausdruck im Kontrollfeld, der vorhanden sein muss, damit das Feld angezeigt wird. Der reguläre Ausdruck muss mit der gesamten Zeichenfolge (nicht mit einer Teilmenge) übereinstimmen und beachtet Groß-/Kleinschreibung. |
operator
| String | Der Operator, der definiert, wie der
|
property
| String | Legt die Sichtbarkeit anhand einer bestimmten Eigenschaft des Zielfelds fest. Beispielsweise können Sie die Sichtbarkeit aktivieren, wenn die |
Das visibility-Attribut kann nur jeweils ein Kriterium unterstützen. Um mehrere Kriterien mit mehreren Operatoren sowie die Reihenfolge der Vorgänge einzuschließen, können Sie advanced_visibility
verwenden.
Parameter | Type | Description |
---|---|---|
visibility_rules
| String | Standardmäßig ist dieser Wert auf |
boolean_operator
| String | Der boolesche Operator für die bedingten Kriterien. Kann sein |
criteria
| Array | Ein Array von Sichtbarkeitsobjekten, das die bedingten Kriterien definiert, die erfüllt sein müssen, damit das Feld angezeigt wird. |
controlling_field_path
| String | Der Punktpfad des Feldes, der die Anzeigebedingung steuert.
|
controlling_value_regex
| String | Der Wert im Kontrollfeld, der erfüllt werden muss, um das Feld anzuzeigen. Wenn der Ein Feld mit einem |
operator
| String | Der Operator, der definiert, wie der
Regex-Syntax ist erforderlich, wenn |
Als Beispiel sehen Sie unten den ersten Teil des Codes vom Standardzahlungsmodul. Um den vollständigen Code zu überprüfen, können Sie das Modul in HubSpot klonen und dann in Ihre lokale Umgebung herunterladen, um die fields.json
-Datei des Moduls anzuzeigen.
Der obige Code führt zu folgendem Verhalten:
- Das erste Feld (
payment
) ist ein Pflichtfeld (Dropdown-Menü), mit dem der Content-Autor einen bestimmten Zahlungslink auswählen kann. In HubSpot sieht ein Content-Autor beim ersten Hinzufügen des Moduls zur Seite Folgendes:
- Sobald ein Zahlungslink ausgewählt wurde, werden die drei Felder angezeigt, die folgen (
checkout_location
,button_text
undicon
). Dies liegt daran, dass die Felder über einvisibility
-Attribut verfügen, das vompayment
-Feld gesteuert wird und einen ID-Wert imid
-Parameter des Zahlungsfelds erfordert.
Das icon
-Feld selbst verwendet advanced_visibility
, um nur dann angezeigt zu werden, wenn ein Zahlungslink impayment
-Feld vorhanden ist UND wenn das add_icon
-Kontrollkästchen aktiviert ist.
Neben dem Festlegen der Sichtbarkeit innerhalb von fields.json
können Sie auch die Sichtbarkeit im Design-Manager festlegen, indem Sie die Optionen für die Anzeigebedingungen eines Feldes bearbeiten.
Nach dem Festlegen der Sichtbarkeit im Design-Manager können Sie das Modul mithilfe des CLI abrufen, um das visibility
-Attribut in der fields.json
-Datei des Moduls anzuzeigen.
Sie können einem Feld Bedingungen hinzufügen, um das Bearbeiten zu verhindern, wenn die angegebenen Bedingungen erfüllt sind. Sie können auch eine Meldung festlegen, die über dem Feld angezeigt wird, wenn es deaktiviert wird, um Kontext im Content-Editor bereitzustellen.
Die Bedingungen und die Meldung werden im disabled_controls
-Objekt des Feldes festgelegt. Die Bedingungen, um ein Feld bearbeitbar zu machen, werden innerhalb des rules
-Objekts festgelegt, das dem gleichen Format wie advanced_visibility folgt.
Der folgende Code zeigt sowohl eine einfache als auch eine erweiterte Implementierung von rules
-Kriterien:
- Das
simple_page
-Feld enthält Logik, um das Feld zu deaktivieren, wenn dastext_field
auftesting
festgelegt ist. - Das
fancy_page
-Feld enthält Logik zum Deaktivieren des Feldes, wenn entwedertext_field
odertext_field_2
auf einen Wert ungleichtesting
bzw.testing2
festgelegt ist.
Parameter | Type | Description |
---|---|---|
message
| Zeichenfolge | Die Meldung, die im Content-Editor angezeigt werden soll, wenn das Feld deaktiviert ist. |
rules
| Objekt | Die Bedingungen für die Freigabe des Feldes für die Bearbeitung. |
criteria
| Array | Ein Array von Bedingungsobjekten, das die Kriterien definiert, die erfüllt sein müssen, damit das Feld angezeigt wird. Dieses Array kann mehrere Bedingungsobjekte enthalten, die durch |
boolean_operator
| Zeichenfolge | Der boolesche Operator für die bedingten Kriterien. Kann sein |
controlling_field_path
| Zeichenfolge | Der Punktpfad des Feldes, der die Anzeigebedingung steuert.
|
controlling_value_regex
| Zeichenfolge | Der Wert im Kontrollfeld, der erfüllt werden muss, um das Feld anzuzeigen. Wenn der Ein Feld mit einem |
operator
| Zeichenfolge | Der Operator, der definiert, wie der
Regex-Syntax ist erforderlich, wenn |
Im Design-Editor kann die Vorschau-Hervorhebung Content-Autoren helfen zu verstehen, welche Felder welche Seitenelemente steuern. Bei der Vorschau-Hervorhebung werden die Designfelder den CSS-Selektoren zugeordnet, auf die sie sich auswirken. Dabei wird ein Feld um diese Elemente hinzugefügt, wenn der Mauszeiger über das Feld im Design-Editor bewegt wird.
Um die Vorschau-Hervorhebung für Designfelder zu konfigurieren, berücksichtigen Sie eine editor-preview.json
-Datei im Stammverzeichnis des Designs, um Designfelder zu einer Liste mit CSS-Selektoren zuzuordnen. In der Datei berücksichtigen Sie für jedes Stilfeld, das Sie hervorheben möchten, ein Array mit den entsprechenden CSS-Selektoren im folgenden Format:
Im folgenden Code wird beispielsweise hervorgehoben, welche Seitenelemente vom primären Schriftartfeld gesteuert werden. Sie können das vollständige Beispiel in der editor-preview.json
-Datei des Standard-Growth-Designs anzeigen.
Um mit der Erstellung dieser Datei zu beginnen, führen Sie den folgenden CLI-Befehl aus, um die Datei zu erstellen. Während der Dateierstellung wird ein Skript ausgeführt, um die anfänglichen Feld-Selektor-Zuordnungen einzurichten.
Parameter | Description |
---|---|
theme-directory-path
| Der Pfad zum Designverzeichnis. |
Nach dem Ausführen des Befehls müssen Sie die editor-preview.json
-Datei überprüfen und optimieren, um sicherzustellen, dass Felder und Selektoren ordnungsgemäß zugeordnet sind. Während der generate-selectors-Befehl eine rudimentäre Vermutung darüber anstellt, welche Felder sich auf welche Selektoren auswirken, müssen Sie je nachdem, wie Ihr Design aufgebaut ist, Korrekturen vornehmen. Dieser Befehl kann beispielsweise nicht erkennen, wenn Module das Styling überschreiben oder wenn Sie Makros verwenden.
Um diese Zuordnungen zu testen, laden Sie das Design in einen Account hoch und zeigen Sie dann den Design-Editor in diesem Account an (Einstellungen > Website > Designs > Design anzeigen).
Vielen Dank, dass Sie Ihr Feedback mit uns geteilt haben.