Descripción del archivo components.json y el formato

Un tema debe tener un archivo components.json ubicado en /NombreTema/components.json, que especifica los componentes utilizados en el tema.

Este archivo debe contener un JSON válido y como mínimo una matriz de JSON vacía [].

La sintaxis del archivo components.json incluye todos los componentes locales y admite totalmente la categorización de componentes. (Los componentes remotos se registran en el catálogo de componentes).

Independientemente de qué componentes se agreguen al archivo components.json del nivel de tema (incluido ninguno), Oracle Content Management rellena un juego de componentes por defecto disponibles para los usuarios. Este juego por defecto se define en el código de origen. En la lista siguiente se muestran los componentes y los componentes (iniciales) representados en marcos en línea. Además, todos los componentes remotos registrados en el nivel de servicio y puestos a disposición de los usuarios en su instancia estarán disponibles en el creador de sitios.

Los siguientes componentes locales están incluidos con Oracle Content Management.

Nombre Tipo Identificador

Título

scs-title

scs-title

Párrafo

scs-paragragh

scs-paragragh

Imagen

scs-image

scs-image

Galería

scs-gallery

scs-gallery

Cuadrícula de galería

scs-gallerygrid

scs-gallerygrid

Documento

scs-document

scs-document

Botón

scs-button

scs-button

Mapa

scs-map

scs-map

Divisor

scs-divider

scs-divider

Espaciador

scs-spacer

scs-spacer

YouTube

scs-youtube

scs-youtube

Barra social

scs-socialbar

scs-socialbar

Vídeo

scs-video

scs-video

Artículo (componente personalizado)

scs-component

scs-comp-article

Cabecera (componente personalizado)

scs-component

scs-comp-headline

Imagen y texto (componente personalizado)

scs-component

scs-comp-image-text

Estos componentes, representados en marcos en línea, se incluyen con Oracle Content Management. No incluyen los componentes remotos registrados.

Nombre Tipo Identificador

Conversación

scs-app

Conversación

Gestor de documentos

scs-app

Gestor de documentos

Lista de carpetas

scs-app

Lista de carpetas

Lista de archivos

scs-app

Lista de archivos

Me gusta de Facebook

scs-app

Me gusta de Facebook

Recomendar en Facebook

scs-app

Recomendar en Facebook

Seguir en Twitter

scs-app

Seguir en Twitter

Compartir en Twitter

scs-app

Compartir en Twitter

Formato general

A continuación se muestra el formato general del archivo components.json:

  • Las propiedades de los componentes se especifican en cada componente. Las propiedades "components" o "apps" de nivel superior están en desuso.

  • Cada componente tiene una propiedad "type". Los componentes solo pueden tener determinados valores (en la tabla se muestran todos los valores posibles para los componentes por defecto).

  • Cada componente tiene una propiedad "id", que debe ser única. Esta propiedad se utiliza para distinguir entre componentes con el mismo "type". Anteriormente, las aplicaciones tenían la propiedad "appName". Aunque la propiedad "appName" todavía funciona si no está disponible la propiedad "id", la propiedad "appName" está en desuso.

  • Cada componente tiene una propiedad "name" que es el nombre mostrado en la interfaz de usuario. Si no se han especificado valores de reserva, para los componentes, el valor es el nombre del componente por defecto correspondiente; y para los componentes remotos, el valor es el identificador.

A continuación se muestra un ejemplo de un archivo 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 estructura general es una matriz de JSON de objetos de categoría. Cada objeto de categoría tiene una propiedad "name" y una propiedad "list". La propiedad "name" puede ser una clave que se asigna a una cadena localizada. Si estas categorías por defecto no son suficientes, puede proporcionar su propio nombre de categoría, el cual no se localizará. En la tabla siguiente se muestran las categorías por defecto disponibles y las claves correspondientes.

Clave Nombre de categoría (inglés)

COMP_CONFIG_CONTENT_CATEGORY_NAME

Contenido

COMP_CONFIG_CUSTOM_CATEGORY_NAME

Personalizado

COMP_CONFIG_MEDIA_CATEGORY_NAME

Medios

COMP_CONFIG_SOCIAL_CATEGORY_NAME

Social

COMP_CONFIG_TEXT_CATEGORY_NAME

Texto

La propiedad "list" en cada objeto de categoría contiene una matriz de objetos de componente. Cada componente u objeto debe tener las propiedades "type" e "id". Las demás propiedades son opcionales.

  • La propiedad "type" debe ser igual a uno de los tipos encontrados en los componentes por defecto. Si "type" no existe aún, no se mostrará el componente.

  • La propiedad "id" debe ser única en todos los componentes. Si se detecta que "id" ya existe, no se mostrará el componente.

  • La propiedad "name" es el nombre mostrado del componente en la interfaz de usuario. Esta sustituye a la propiedad "appName" anterior para las aplicaciones (ahora, los componentes remotos).

  • Todas las demás propiedades se tratan del mismo modo que en las versiones anteriores.

Agregar nuevos componentes a components.json

No está permitido modificar los componentes por defecto. Sin embargo, puede crear un nuevo componente basado en un componente por defecto existente. Por ejemplo, puede crear un nuevo componente basado en el componente "scs-title", que define texto por defecto. El requisito mínimo para agregar un nuevo componente es especificar las propiedades "type" e "id".

  • "type" debe ser igual a uno de los tipos encontrados en los componentes por defecto. Si "type" no existe aún, no se mostrará el componente.

  • "id" debe ser único en todos los componentes. Si se detecta que "id" ya existe, no se mostrará el componente.

A continuación se muestra un ejemplo de cómo se agrega un nuevo componente de título: Este componente se mostrará junto con el componente de título por defecto.

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

A continuación se muestra un ejemplo de código para agregar un nuevo componente de título con un nombre mostrado y un texto por defecto:

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

Tenga en cuenta que el componente de título toma todas las propiedades del componente de título por defecto como base y aplica modificaciones en el nivel de tema sobre ella para crear el nuevo componente.

Compatibilidad con versiones anteriores

Los archivos components.json del formato anterior se podrán seguir leyendo.

  • Archivos con propiedades "components" o "apps" de nivel superior.

  • Si el archivo contiene una propiedad "apps", se seguirán cargando componentes remotos definidos por el usuario en esta propiedad.

  • Si el archivo contiene una propiedad "apps" de nivel superior, debe asumir que todos los componentes remotos que se muestran debajo tienen el tipo "scs-app".

  • Si la propiedad "appName" está presente, defina el "id" en el valor "appName". El nombre mostrado será el mismo que "name", si se ha especificado, o recurrirá al valor "id".