Für ein Theme muss die Datei components.json unter /ThemeName/components.json gespeichert sein. Diese gibt die im Theme verwendeten Komponenten an.
Diese Datei muss gültige JSON enthalten (mindestens ein leeres JSON-Array []).
Die Dateisyntax von components.json listet alle lokalen Komponenten auf und unterstützt die Kategorisierung von Komponenten vollständig. (Remotekomponenten werden im Komponentenkatalog registriert.)
Unabhängig davon, welche Komponenten der Datei components.json auf Theme-Ebene hinzugefügt werden (selbst wenn keine hinzugefügt werden), füllt Oracle Content Management eine Standardgruppe aus Komponenten für Benutzer auf. Diese Standardgruppe wird im Quellcode definiert. Die folgende Liste enthält die Komponenten und (vordefinierten) in Inlineframes gerenderten Komponenten. Darüber hinaus sind alle auf Serviceebene registrierten Remotekomponenten, die für Benutzer in Ihrer Instanz zur Verfügung stehen, in Sitebuilder verfügbar.
Die folgenden lokalen Komponenten sind in Oracle Content Management enthalten.
| Name | Typ | ID |
|---|---|---|
|
Titel |
scs-title |
scs-title |
|
Absatz |
scs-paragragh |
scs-paragragh |
|
Bild |
scs-image |
scs-image |
|
Galerie |
scs-gallery |
scs-gallery |
|
Galerieraster |
scs-gallerygrid |
scs-gallerygrid |
|
Dokument |
scs-document |
scs-document |
|
Schaltfläche |
scs-button |
scs-button |
|
Karte |
scs-map |
scs-map |
|
Trennlinie |
scs-divider |
scs-divider |
|
Abstandhalter |
scs-spacer |
scs-spacer |
|
YouTube |
scs-youtube |
scs-youtube |
|
Social-Leiste |
scs-socialbar |
scs-socialbar |
|
Video |
scs-video |
scs-video |
|
Artikel (benutzerdefinierte Komponente) |
scs-component |
scs-comp-article |
|
Überschrift (benutzerdefinierte Komponente) |
scs-component |
scs-comp-headline |
|
Bild und Text (benutzerdefinierte Komponente) |
scs-component |
scs-comp-image-text |
Diese in Inlineframes gerenderten Komponenten sind in Oracle Content Management enthalten. Sie umfassen keine registrierten Remotekomponenten.
| Name | Typ | ID |
|---|---|---|
|
Unterhaltung |
scs-app |
Unterhaltung |
|
Dokumentmanager |
scs-app |
Dokumentmanager |
|
Ordnerliste |
scs-app |
Ordnerliste |
|
Dateiliste |
scs-app |
Dateiliste |
|
Facebook-Like |
scs-app |
Facebook-Like |
|
Facebook-Empfehlung |
scs-app |
Facebook-Empfehlung |
|
Twitter-Follow |
scs-app |
Twitter-Follow |
|
Twitter-Sharing |
scs-app |
Twitter-Sharing |
Allgemeines Format
Allgemeines Format der Datei components.json:
Eigenschaften für Komponenten werden in jeder Komponente angegeben. "components"- oder "apps"-Eigenschaften der obersten Ebene sind veraltet.
Jede Komponente weist eine "type"-Eigenschaft auf. Komponenten können nur bestimmte Werte verwenden (alle möglichen Werte sind in der Tabelle für Standardkomponenten aufgeführt).
Jede Komponente weist eine eindeutige "id"-Eigenschaft auf. Anhand dieser Eigenschaft kann zwischen Komponenten mit demselben "type"-Wert unterschieden werden. Apps wiesen zuvor die Eigenschaft "appName" auf. "appName" funktioniert zwar noch, wenn die "id"-Eigenschaft nicht verfügbar ist, die "appName"-Eigenschaft ist aber veraltet.
Jede Komponente weist eine "name"-Eigenschaft auf (der Anzeigename in der Benutzeroberfläche). Wenn keine Fallback-Werte angegeben werden, ist der Wert für Komponenten der Name der entsprechenden Standardkomponente und der Wert für Remotekomponenten die ID.
Beispiel für eine components.json-Datei:
[
{
"name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
"list": [
{
"type": "scs-title",
"id": "my-headline",
"name": "My Headline",
...
},
{
...
},...
]
},
{
"name": "My own category name",
"list": [ ... ]
}
]
Die allgemeine Struktur ist ein JSON-Array aus Kategorieobjekten. Jedes Kategorieobjekt weist eine "name"-Eigenschaft und eine "list"-Eigenschaft auf. Die "name"-Eigenschaft kann ein Schlüssel sein, der einer lokalisierten Zeichenfolge zugeordnet ist. Wenn diese Standardkategorien nicht ausreichen, können Sie Ihre eigenen Kategorienamen angeben, die nicht lokalisiert werden. In der folgenden Tabelle sind die verfügbaren Standardkategorien und die entsprechenden Schlüssel aufgelistet.
| Schlüssel | Kategoriename (Englisch) |
|---|---|
|
COMP_CONFIG_CONTENT_CATEGORY_NAME |
Inhalt |
|
COMP_CONFIG_CUSTOM_CATEGORY_NAME |
Benutzerdefiniert |
|
COMP_CONFIG_MEDIA_CATEGORY_NAME |
Medien |
|
COMP_CONFIG_SOCIAL_CATEGORY_NAME |
Social |
|
COMP_CONFIG_TEXT_CATEGORY_NAME |
Text |
Die "list"-Eigenschaft in jedem Kategorieobjekt enthält ein Array aus Komponentenobjekten. Alle Komponenten oder Objekte müssen "type"- und "id"-Eigenschaften aufweisen. Andere Eigenschaften sind optional.
Die "type"-Eigenschaft muss einem der Typen in den Standardkomponenten entsprechen. Wenn der "type"-Wert nicht bereits vorhanden ist, wird die Komponente nicht angezeigt.
Die "id"-Eigenschaft muss für jede Komponente eindeutig sein. Wenn der "id"-Wert bereits vorhanden ist, wird die Komponente nicht angezeigt.
Die "name"-Eigenschaft ist der Anzeigename für die Komponente in der Benutzeroberfläche. Sie ersetzt die vorherige "appName"-Eigenschaft für Apps (jetzt Remotekomponenten).
Alle anderen Eigenschaften werden genauso wie in vorherigen Releases behandelt.
Neue Komponenten zu components.json hinzufügen
Sie dürfen die Standardkomponenten nicht ändern. Sie können aber eine neue Komponente basierend auf einer vorhandenen Standardkomponente erstellen. Beispiel: Sie können eine neue Komponente basierend auf der Komponente "scs-title" erstellen, die Standardtext festlegt. Beim Hinzufügen einer neuen Komponente müssen Sie zumindest die Eigenschaften "type" und "id" angeben.
Die "type"-Eigenschaft muss einem der Typen in den Standardkomponenten entsprechen. Wenn der "type"-Wert nicht bereits vorhanden ist, wird die Komponente nicht angezeigt.
Die "id"-Eigenschaft muss für jede Komponente eindeutig sein. Wenn der "id"-Wert bereits vorhanden ist, wird die Komponente nicht angezeigt.
Beispiel für Code zum Hinzufügen einer neuen Titelkomponente. Diese Komponente wird zusammen mit der Standardtitelkomponente angezeigt.
[
{
"name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
"list": [
{
"type": "scs-title",
"id": "my-headline"
}
]
}
]
Beispiel für Code zum Hinzufügen einer neuen Titelkomponente mit einem Anzeigenamen und Standardtext.
[
{
"name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
"list": [
{
"type": "scs-title",
"id": "my-headline",
"name": "My Headline",
"initialData": {
"userText": "This is a second title component"
}
}
]
}
]
Beachten Sie, dass die Titelkomponente alle Eigenschaften der Standardtitelkomponente als Basis übernimmt und Änderungen auf Theme-Ebene darüber hinaus anwendet, um die neue Komponente zu erstellen.
Abwärtskompatibilität
Die components.json-Dateien im vorherigen Format sind weiterhin lesbar.
Dateien mit "components"- oder "apps"-Eigenschaften der obersten Ebene.
Wenn die Datei eine "apps"-Eigenschaft enthält, werden benutzerdefinierte Remotekomponenten unter dieser Eigenschaft weiterhin geladen.
Wenn die Datei eine "apps"-Eigenschaft der obersten Ebene enthält, erhalten alle darunter aufgelisteten Remotekomponenten den Typ "scs-app".
Wenn die "appName"-Eigenschaft vorhanden ist, setzen Sie "id" auf den "appName"-Wert. Der Anzeigename ist dann mit "name" identisch (falls angegeben) oder verwendet den "id"-Wert als Fallback.