Sobre o Desenvolvimento de Componentes

O desenvolvimento de seu próprio componente personalizado permite que você desenvolva elementos compostos que possam ser incorporados na página do site, usando qualquer tecnologia de página de sua escolha. Isso efetivamente permite que você amplie a lista de componentes fornecidos com o Oracle Content Management.

As entradas de todos os componentes registrados são armazenadas no Catálogo de Componentes, que é uma pasta do Oracle Content Management que contém as entradas de todos os componentes registrados.

Não use os seguintes nomes para modelos, temas, componentes, sites ou páginas de sites: authsite, content, pages, scstemplate_*, _comps, _components, _compsdelivery, _idcservice, _sitescloud, _sitesclouddelivery, _themes, _themesdelivery. Embora você possa usar os seguintes nomes para as páginas do site, não os use para modelos, temas, componentes ou sites: documents, sites.

Tipos de Componente

O Catálogo de Componentes suporta estes tipos de componentes:

  • Componente local

  • Componente local renderizado em um iframe

  • Componente remoto

O tipo de componente é armazenado como atributo de extensão, "xScsAppType", da pasta do componente. Veja a seguir os valores válidos.

Tipo Descrição

Componente local

O esperado é que todas as dependências sejam locais.

Componente local renderizado em um iframe

O componente é atendido no mesmo domínio do Oracle Content Management.

Componente remoto

O componente é atendido do local remoto.

Estrutura de Arquivos do Componente

Cada tipo de componente tem um conjunto diferente de arquivos quando criado no Catálogo de Componentes, com base no modo como são implementados.

Componente local:

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

Componente local usando iframe:

/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

Metadados da Pasta

Os dados de registro do componente são armazenados nos metadados da pasta. As propriedades a seguir são utilizadas para identificar exclusivamente o componente e seu tipo.

Propriedade Descrição

nome do aplicativo

Nome da pasta que designa o nome do componente.

descrição do aplicativo

Descrição da pasta.

guid do aplicativo

Cada componente é associado a um GUID e armazenado como atributo de extensão xScsItemGUID. O GUID é gerado pelo servidor quando o componente é criado.

tipo de aplicativo

A propriedade designa o tipo de componente. Ela é armazenada como atributo de extensão xScsApType.

Nota:

A propriedade iconUrl, que é armazenada como atributo de extensão xScsAppIconUrl, tornou-se obsoleta.

Arquivo appinfo.json

O arquivo de registro appinfo.json para cada tipo de componente contém apenas dados que não estão disponíveis nos metadados da pasta. As propriedades do componente que são definidas nos metadados da pasta não são duplicadas no arquivo appinfo.json.

Componente local:

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

Componente local renderizado em um iframe:

{
        "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": {}
        }
}

Não há valores de "url" registrados para componentes locais. Eles usam determinados arquivos que podem ser editados para conteúdo, mas você não pode alterar o local ou o nome.

  • Os componentes locais usam os arquivos assets/render.js e assets/settings.html.

  • Os componentes locais renderizados em um iframe usam os arquivos assets/render.html e assets/settings.html.

  • Os componentes remotos usam qualquer valor "url" especificado.