Komponentendefinition component-definition
Machen Sie sich mit dem JSON-Vertrag zwischen der Komponentendefinition und dem universellen Editor im Detail vertraut.
Überblick overview
Die Datei component-definition.json definiert die Komponenten, die den Inhaltsautorinnen und -autoren für das Projekt zur Verfügung stehen. In diesem Dokument wird der Zweck dieser Datei und seine Verwendung durch den universellen Editor zur Darstellung der Komponenten zur Seitenerstellung für Autorinnen und Autoren ausführlich erläutert.
component-definition.json-Datei von Grund auf neu erstellen. Der Projekt-Textbaustein, den Sie zum Bootstrapping Ihres Projektsverwenden, enthält eine voll funktionsfähige component-definition.json-Datei, die Sie an Ihre Anforderungen anpassen können.Beispiel einer Komponentendefinition example
Im Folgenden finden Sie eine vollständige, aber einfache component-definition.json als Beispiel.
{
"groups":[
{
"title":"General Components",
"id":"general",
"components":[
{
"title":"Text",
"id":"text",
"model": "text",
"filter": "texts",
"plugins":{
"aem":{
"page":{
"resourceType":"wknd/components/text",
"template":{
"text":"Default Text",
"name":"Text"
}
}
},
"aem65":{
"page":{
"resourceType":"wknd/components/text",
"template":{
"text":"Default Text",
"name":"Text"
}
}
}
}
}
]
}
]
}
groups groups
groups definiert die Komponentengruppen, die die Autorin bzw. der Autor im universellen Editor sieht, wenn sie bzw. er auf das Symbol Hinzufügen im Eigenschaftenbereich des Editors klickt, um einer Seite eine neue Komponente hinzuzufügen. Gruppen helfen beim Organisieren der Komponenten. Häufige Gruppen sind Allgemeine Komponenten und Erweiterte Komponenten.
titledefiniert die Textbeschreibung der Gruppe, die in der Benutzeroberfläche des Editors angezeigt wird.ididentifiziert die Gruppe eindeutig.
components components
components definiert, welche Komponenten zu einer Gruppe gehören.
-
titledefiniert die Textbeschreibung der Komponente, die in der Benutzeroberfläche angezeigt wird. -
ididentifiziert die Komponente eindeutig.- Das Komponentenmodell derselben
iddefiniert die Felder der Komponente. - Da es eindeutig ist, kann es z. B. in einer Filterdefinition verwendet werden, um zu bestimmen, welche Komponenten einem Container hinzugefügt werden können.
- Das Komponentenmodell derselben
-
modeldefiniert, welches Modell mit der Komponente verwendet wird.- Das Modell wird dabei zentral in der Komponentendefinition verwaltet und muss nicht in der Instrumentierung angegeben werden.
- Dies ermöglicht es Ihnen, Komponenten über Container hinweg zu verschieben.
-
filterdefiniert welcherFilter mit der Komponente verwendet werden soll.
plugins plugins
plugins definiert, welches Plug-in für das Persistieren der Komponente verantwortlich ist. Häufige Plug-ins sind:
aemfür AEM as a Cloud Service.aem65für AEM 6.5. und AEM 6.5 LTSxwalkfür Authoring mit AEM Sites für Edge Delivery Services.
page oder cf page-cf
Nachdem plugin definiert wurde, müssen Sie angeben, ob es seitenbezogen oder fragmentbezogen ist.
pagegibt an, dass sich die Komponente auf der aktuellen Seite befindet.cfgibt an, dass die Komponente sich auf Inhalten in einem Inhaltsfragment bezieht.
page page
Wenn es sich bei der Komponente um Inhalt auf der Seite handelt, können Sie die folgenden Informationen angeben.
resourceTypedefiniert den Sling-resourceType, der zum Rendern der Komponente verwendet wird.templatedefiniert optionale Schlüssel/Werte, die automatisch in die neu erstellte Komponente geschrieben werden, und definiert, welcher Filter und/oder welches Modell auf die Komponente angewendet werden soll.- Nützlich für Erklärungs-, Beispiel- oder Platzhaltertext.
template template
Durch Bereitstellung optionaler Schlüssel-Wert-Paare kann template diese automatisch in die neue Komponente schreiben. Darüber hinaus können auch die folgenden optionalen Werte angegeben werden.
cf cf
Wenn sich die Komponente auf Inhalte in einem Inhaltsfragment bezieht, können Sie die folgenden Informationen bereitstellen.
namedefiniert einen optionalen Namen, der im JCR für die neu erstellte Komponente gespeichert wird.- Nur informativ und wird in der Benutzeroberfläche im Gegensatz zu
titlenormalerweise nicht angezeigt.
- Nur informativ und wird in der Benutzeroberfläche im Gegensatz zu
cfModeldefiniert das Inhaltsfragmentmodell für die neu erstellte Komponente.cfFolderdefiniert, in welchem Ordner das Inhaltsfragment erstellt werden soll.titledefiniert den Titel des neuen Inhaltsfragments.descriptiondefiniert eine Beschreibung des neuen Inhaltsfragments.templatedefiniert optionale Schlüssel/Werte, die automatisch in das neu erstellte Inhaltsfragment geschrieben werden.- Nützlich für Erklärungs-, Beispiel- oder Platzhaltertext.
cf kann impliziert sein cf-implied
Wenn die Seite so instrumentiert, dass sie auf ein Referenzfeld verweist, wird cf angenommen.
<div data-aue-resource="urn:aem:/content" data-aue-type="container" data-aue-prop="field"></div>
In diesem Fall wird cf angenommen, da data-aue-prop auf ein Referenzfeld verweist. Ohne data-aue-prop nimmt der universelle Editor page an, da in diesem Fall die Komponenten nicht über ein Referenzfeld verknüpft sind.
<div data-aue-resource="urn:aem:/content" data-aue-type="container"></div>
Komponenten sind lediglich Unterknoten unter der Ressource.