Présentation du format et du fichier components.json

Un thème doit posséder un fichier components.json situé dans /ThemeName/components.json, qui indique les composants utilisés dans le thème.

Le fichier doit contenir un JSON valide, et au minimum un tableau JSON vide [].

La syntaxe du fichier components.json répertorie tous les composants et prend entièrement en charge la catégorisation des composants. (Les composants distants sont inscrits dans le catalogue de composants.)

Peu importe les composants ajoutés au fichier components.json de niveau de thème (y compris aucun), Oracle Content Management remplit un ensemble par défaut de composants à disposition des utilisateurs. Cet ensemble par défaut est défini dans le code source. La liste suivante répertorie les composants et les composants (prédéfinis) affichés dans des cadres incorporés. En outre, les composants distants inscrits au niveau du service et mis à disposition des utilisateurs dans votre instance seront disponibles dans le générateur de site.

Les composants locaux suivants sont inclus avec Oracle Content Management.

Nom Type ID

Titre

scs-title

scs-title

Paragraphe

scs-paragragh

scs-paragragh

Image

scs-image

scs-image

Galerie

scs-gallery

scs-gallery

Grille de galerie

scs-gallerygrid

scs-gallerygrid

Document

scs-document

scs-document

Bouton

scs-button

scs-button

Carte

scs-map

scs-map

Séparateur

scs-divider

scs-divider

Espacement

scs-spacer

scs-spacer

YouTube

scs-youtube

scs-youtube

Barre Social

scs-socialbar

scs-socialbar

Vidéo

scs-video

scs-video

Article (composant personnalisé)

scs-component

scs-comp-article

Titre (composant personnalisé)

scs-component

scs-comp-headline

Image et texte (composant personnalisé)

scs-component

scs-comp-image-text

Ces composants, affichés dans des cadres incorporés, sont inclus avec Oracle Content Management. Ils ne comprennent pas de composants distants inscrits.

Nom Type ID

Conversation

scs-app

Conversation

Gestionnaire de documents

scs-app

Gestionnaire de documents

Liste des dossiers

scs-app

Liste des dossiers

Liste des fichiers

scs-app

Liste des fichiers

Mention J'aime de Facebook

scs-app

Mention J'aime de Facebook

Recommandation de Facebook

scs-app

Recommandation de Facebook

Abonnement à Twitter

scs-app

Abonnement à Twitter

Partage Twitter

scs-app

Partage Twitter

Format général

Le format général du fichier components.json est le suivant :

  • Les propriétés des composants sont indiquées dans chaque composant. Les propriétés "components" ou "apps" de niveau supérieur sont en phase d'abandon.

  • Chaque composant possède une propriété "type". Les composants ne peuvent avoir que certaines valeurs (toutes les valeurs possibles sont répertoriées dans le tableau des composants par défaut).

  • Chaque composant possède une propriété "id" qui doit être unique. Cette propriété permet de distinguer les composants ayant le même "type". Auparavant, les applications possédaient la propriété "appName". "appName" fonctionne toujours si la propriété "id" n'est pas disponible, mais la propriété "appName" est en phase d'abandon.

  • Chaque composant possède une propriété "name" qui correspond au nom d'affichage dans l'interface utilisateur. Si les valeurs de basculement ne sont pas indiquées, la valeur pour les composants est le nom du composant par défaut correspondant, et la valeur pour les composants distants est l'ID.

Voici un exemple de fichier components.json :

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

La structure générale est un tableau JSON d'objets de catégorie. Chaque objet de catégorie possède une propriété "name" et une propriété "list". La propriété "name" peut être une clé qui mappe à une chaîne localisée. Si ces catégories par défaut ne sont pas suffisantes, vous pouvez fournir votre propre nom de catégorie, qui ne sera pas localisé. Le tableau suivant répertorie les catégories par défaut disponibles et les clés correspondantes.

Clé Nom de catégorie (anglais)

COMP_CONFIG_CONTENT_CATEGORY_NAME

Contenu

COMP_CONFIG_CUSTOM_CATEGORY_NAME

Personnalisé

COMP_CONFIG_MEDIA_CATEGORY_NAME

Support

COMP_CONFIG_SOCIAL_CATEGORY_NAME

Social

COMP_CONFIG_TEXT_CATEGORY_NAME

Texte

La propriété "list" de chaque objet de catégorie contient un tableau d'objets de composant. Chaque composant ou objet doit posséder les propriétés "type" et "id". Les autres propriétés sont facultatives.

  • La propriété "type" doit être égale à l'un des types trouvés dans les composants par défaut. Si "type" n'existe pas, le composant ne sera pas affiché.

  • La propriété "id" doit être propre à chaque composant. Si "id" existe déjà, le composant ne sera pas affiché.

  • La propriété "name" correspond au nom d'affichage du composant dans l'interface utilisateur. Elle remplace l'ancienne propriété "appName" pour les applications (désormais composants distants).

  • Toutes les autres propriétés sont traitées de la même façon que dans les autres versions.

Ajout de nouveaux composants à components.json

Vous n'êtes pas autorisé à modifier les composants par défaut. Toutefois, vous pouvez créer un composant à partir d'un composant par défaut existant. Par exemple, vous pouvez créer un composant à partir du composant "scs-title", qui définit un texte par défaut. Pour ajouter un nouveau composant, vous devez au moins indiquer les propriétés "type" et "id".

  • "type" doit être égale à l'un des types trouvés dans les composants par défaut. Si "type" n'existe pas, le composant ne sera pas affiché.

  • "id" doit être propre à chaque composant. Si "id" existe déjà, le composant ne sera pas affiché.

Voici un exemple de code permettant d'ajouter un nouveau composant de titre. Ce composant sera affiché avec le composant de titre par défaut.

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

Voici un exemple de code permettant d'ajouter un nouveau composant de titre avec un nom d'affichage et un texte par défaut.

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

Le composant de titre est créé à partir de toutes les propriétés du composant de titre par défaut qui servent de base et auxquelles sont appliquées des modifications de niveau de thème.

Compatibilité amont

Les fichiers components.json à l'ancien format peuvent encore être lus.

  • Fichiers avec des propriétés "components" ou "apps" de niveau supérieur.

  • Si le fichier contient une propriété "apps", les composants distants définis par l'utilisateur sous cette propriété sont encore chargés.

  • Si le fichier contient une propriété "apps" de niveau supérieur, partez du principe que tous les composants distants répertoriés sous cette propriété sont de type "scs-app".

  • Si la propriété "appName" est présente, définissez "id" sur la valeur "appName". Le nom d'affichage est le même que "name", s'il est indiqué, ou bascule vers la valeur "id".