Acerca del desarrollo de componentes

El desarrollo de sus propios componentes personalizados le permite desarrollar elementos compuestos que se pueden embeber en la página del sitio mediante cualquier tipo de tecnología de página que elija. Esto le permite ampliar de forma eficaz la lista de componentes que se proporcionan con Oracle Content Management.

Las entradas de todos los componentes registrados se almacenan en el catálogo de componentes, una carpeta de Oracle Content Management que contiene las entradas de todos los componentes registrados.

No utilice los siguientes nombres para plantillas, temas, componentes, sitios ni páginas de sitios: authsite, content, pages, scstemplate_*, _comps, _components, _compsdelivery, _idcservice, _sitescloud, _sitesclouddelivery, _themes, _themesdelivery. Aunque puede utilizar los siguientes nombres para las páginas del sitio, no los utilice para plantillas, temas, componentes ni sitios: documents, sites.

Tipos de componentes

El catálogo de componentes soporta los siguientes tipos de componentes:

  • Componente local

  • Componente local representado en un marco en línea

  • Componente remoto

El tipo de componente se almacena como un atributo de extensión, "xScsAppType", de la carpeta de componentes. A continuación se muestran los valores válidos.

Tipo Descripción

Componente local

Se espera que todas las dependencias sean locales.

Componente local representado en un marco en línea

El componente se sirve desde el mismo dominio que Oracle Content Management.

Componente remoto

El componente se sirve desde una ubicación remota.

Estructura de archivos del componente

Cada uno de los tipos de componente tiene un juego diferente de archivos cuando se crea en el catálogo de componentes en función de cómo se implante.

Componente local:

/Components/component-name
    appinfo.json
    _folder_icon.jpg
    assets
        settings.html
        render.js

Componente local que utiliza un marco en línea:

/Components/component-name
    appinfo.json
    _folder_icon.jpg
    assets
        settings.html
        render.js
        js
            sites.min.js
            knockout.min.js
            jquery.min.js

Componente remoto:

/Components/component-name
    appinfo.json
    _folder_icon.jpg
    keys.json

Metadatos de carpeta

Los datos de registro del componente se almacenan en los metadatos de la carpeta. Las siguientes propiedades se utilizarán para identificar de forma única al componente y su tipo.

Propiedad Descripción

app name

Nombre de la carpeta que designa el nombre del componente.

app description

Descripción de la carpeta.

app guid

Cada componente se asocia a un GUID y se almacena como un atributo de extensión xScsItemGUID. El GUID se genera en el servidor cuando se crea el componente.

app type

La propiedad designa el tipo de componente. Se almacena como un atributo de extensión xScsApType.

Nota:

La propiedad iconUrl, la cual se almacena como un atributo de extensión xScsAppIconUrl, se ha dejado de usar.

appinfo.json File

El archivo de registro appinfo.json de cada tipo de componente solo contiene datos que no están disponibles en los metadatos de la carpeta. Las propiedades del componente que se definen en los metadatos de la carpeta no se duplican en el archivo appinfo.json.

Componente local:

{
        "settingsData":{
                "settingsHeight":80,
                "settingsRenderOption"; "dialog",
                "settingsWidth":300,
                "componentLayouts":[],
                "triggers":[],
                "actions":[]
        },
        "initialData":{
                "customSettingsData":[],
        }
}

Componente local representado en un marco en línea:

{
        "endpoints": {
              "settings": {
                      "height": "300",
                      "width": "400"
              }
        }
        "initialData": {
                "customSettingsData": {}
        }
}

Componente remoto:

{
        "endpoints": {
              "widget": {
                     "url": "http://www.externaldomain.com/app/render.html"
              }
              "settings": {
                      "url": "http://www.externaldomain.com/app/settings.html",
                      "height": "300",
                      "width": "400"
              }
        }
        "initialData": {
              "customSettingsData": {}
        }
}

No hay ningún valor "url" registrado para los componentes locales. Utilizan determinados archivos cuyo contenido se puede editar, pero no se puede cambiar la ubicación ni el nombre.

  • Los componentes locales utilizan los archivos assets/render.js y assets/settings.html.

  • Los componentes locales representados en un marco en línea utilizan los archivos assets/render.html y assets/settings.html.

  • Los componentes remotos utilizan los valores "url" que se hayan especificado.