Inzicht in bestand components.json en opmaak

Voor elk thema moet het bestand components.json zich bevinden in het pad /Themanaam/components.json. Hierin worden de componenten opgegeven die in het thema worden gebruikt.

Dit bestand moet geldige JSON bevatten (minimaal een lege JSON-array []).

De syntaxis voor het bestand components.json bevat een lijst met alle lokale componenten en biedt volledige ondersteuning voor het categoriseren van componenten. (Externe componenten worden geregistreerd in de componentcatalogus.)

Ongeacht welke componenten u toevoegt aan het bestand components.json (inclusief geen componenten), in Oracle Content Management wordt een standaardset gevuld met componenten die beschikbaar zijn voor gebruikers. De standaardset wordt gedefinieerd in de broncode. In de volgende lijst ziet u de componenten en (basis)componenten die in inline-frames worden weergegeven. Ook alle externe componenten die zijn geregistreerd op serviceniveau en beschikbaar zijn gemaakt voor de gebruikers in uw instance zijn beschikbaar in de sitebuilder.

De volgende lokale componenten worden meegeleverd met Oracle Content Management.

Naam Type ID

Titel

scs-title

scs-title

Alinea

scs-paragraph

scs-paragraph

Afbeelding

scs-image

scs-image

Galerie

scs-gallery

scs-gallery

Galerieraster

scs-gallerygrid

scs-gallerygrid

Document

scs-document

scs-document

Knop

scs-button

scs-button

Kaart

scs-map

scs-map

Divider

scs-divider

scs-divider

Spacer

scs-spacer

scs-spacer

YouTube

scs-youtube

scs-youtube

Sociale balk

scs-socialbar

scs-socialbar

Video

scs-video

scs-video

Artikel (aangepaste component)

scs-component

scs-comp-article

Kop (aangepaste component)

scs-component

scs-comp-headline

Afbeelding en tekst (aangepaste component)

scs-component

scs-comp-image-text

Deze componenten, die worden weergegeven in inline-frames, worden meegeleverd met Oracle Content Management. Geregistreerde externe componenten worden niet meegeleverd.

Naam Type ID

Gesprek

scs-app

Gesprek

Documentbeheer

scs-app

Documentbeheer

Mappenlijst

scs-app

Mappenlijst

Bestandslijst

scs-app

Bestandslijst

Facebook Like

scs-app

Facebook Like

Facebook Recommend

scs-app

Facebook Recommend

Twitter Follow

scs-app

Twitter Follow

Twitter Share

scs-app

Twitter Share

Algemene indeling

Hieronder vindt u de algemene indeling van het bestand components.json:

  • De eigenschappen voor componenten worden opgegeven in elke component. De eigenschappen voor "components" of "apps" op het hoogste niveau zijn afgekeurd.

  • Elke component heeft de eigenschap "type". Components kunnen slechts bepaalde waarden hebben (alle mogelijke waarden voor standaardcomponenten worden weergegeven in de tabel).

  • Elke component heeft de eigenschap "id", die uniek moet zijn. Deze eigenschap wordt gebruikt om onderscheid te maken tussen componenten met dezelfde waarde voor "type". Eerder hadden apps de eigenschap "appName". Hoewel "appName" nog steeds werkt als de eigenschap "id" niet beschikbaar is, is de eigenschap "appName" afgekeurd.

  • Elke component heeft de eigenschap "name". Deze naam is de weergavenaam in de gebruikersinterface. Als er geen fallback-waarden zijn opgegeven, is de waarde voor de component de naam van de bijbehorende standaardcomponent. Voor externe componenten is de waarde de ID.

Hieronder vindt u een voorbeeld van het bestand components.json:

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline",
                "name": "My Headline",
                ...
            },
            {
                ...
            },...
        ]
    },
    {
        "name": "My own category name",
        "list": [ ... ]
    }
]

De algemene structuur is een JSON-array van categorieobjecten. Elk categorieobject heeft de eigenschappen "name" en "list". De eigenschap "name" kan een sleutel zijn die verwijst naar een gelokaliseerde string. Als deze standaardcategorieën onvoldoende zijn, kunt u zelf een categorienaam opgeven. Deze wordt niet gelokaliseerd. De volgende tabel bevat de beschikbare standaardcategorieën en de bijbehorende sleutels.

Sleutel Categorienaam (Engels)

COMP_CONFIG_CONTENT_CATEGORY_NAME

Inhoud

COMP_CONFIG_CUSTOM_CATEGORY_NAME

Aangepast

COMP_CONFIG_MEDIA_CATEGORY_NAME

Media

COMP_CONFIG_SOCIAL_CATEGORY_NAME

Sociaal

COMP_CONFIG_TEXT_CATEGORY_NAME

Tekst

De eigenschap "list" in elk categorieobject bevat een array van componentobjecten. Elke component en elk object moet de eigenschappen "type" en "id" hebben. Overige eigenschappen zijn optioneel.

  • De eigenschap "type" moet gelijk zijn aan het type van een standaardcomponent. Als het "type" nog niet bestaat, wordt de component niet weergegeven.

  • De eigenschap "id" moet uniek zijn voor elke component. Als de "id" al bestaat, wordt de component niet weergegeven.

  • De eigenschap "name" is de weergavenaam voor de component in de gebruikersinterface. Deze eigenschap vervangt de eerdere eigenschap "appName" voor apps (nu externe componenten).

  • Alle overige eigenschappen worden hetzelfde behandeld als in eerdere releases.

Nieuwe componenten toevoegen aan components.json

U mag de standaardcomponenten niet wijzigen. U kunt wel een nieuwe component maken op basis van een bestaande standaardcomponent. U kunt bijvoorbeeld een nieuwe component maken op basis van de component "scs-title", waarmee een standaardtekst wordt ingesteld. Om een nieuwe component toe te voegen, moet u minimaal de eigenschappen "type" en "id" opgeven.

  • Het "type" moet gelijk zijn aan het type van een standaardcomponent. Als het "type" nog niet bestaat, wordt de component niet weergegeven.

  • De "id" moet uniek zijn voor elke component. Als de "id" al bestaat, wordt de component niet weergegeven.

Hier volgt een voorbeeld van het toevoegen van een nieuwe titelcomponent. Deze component wordt weergegeven in combinatie met de standaardtitelcomponent.

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline"
            }
        ]
    }
]

Hier volgt een voorbeeld van het toevoegen van een nieuwe titelcomponent met een weergavenaam en standaardtekst.

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline",
                "name": "My Headline",
                "initialData": {
                    "userText": "This is a second title component"
                }
            }
        ]
    }
]

Merk op dat in de titelcomponent alle eigenschappen van de standaardtitelcomponent worden overgenomen en daarop wijzigingen op themaniveau worden toegepast om de nieuwe component te maken.

Achterwaarste compatibiliteit

De components.json-bestanden in de vorige indeling kunnen nog steeds worden gelezen.

  • Bestanden met de eigenschappen "components" of "apps" op het hoogste niveau.

  • Als het bestand de eigenschap "apps" bevat, worden externe componenten die door de gebruiker zijn gedefinieerd onder deze eigenschap nog steeds geladen.

  • Als het bestand de eigenschap "apps" op het hoogste niveau bevat, wordt aangenomen dat alle externe componenten die eronder worden vermeld, het type "scs-app" hebben.

  • Als de eigenschap "appName" aanwezig is, stelt u "id" in op de waarde van "appName". De weergavenaam wordt ingesteld op de waarde van "name", als die is opgegeven, of via fallback ingesteld op de waarde van "id".