Datei components.json und Format

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.