Acerca do Desenvolvimento de Componentes

Desenvolver o seu próprio componente customizado permite-lhe desenvolver elementos compostos que podem ser incorporados na página do site utilizando qualquer tecnologia de página à escolha. Com efeito, isto permite-lhe alargar a lista de componentes fornecidos com o Oracle Content Management.

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

Não utilize os seguintes nomes para modelos, temas, componentes, sites ou páginas de site: authsite, conteúdo, páginas, scstemplate_*, _comps, _components, _compsdelivery, _idcservice, _sitescloud, _sitesclouddelivery, _themes, _themesdelivery. Embora possa utilizar os seguintes nomes para as páginas de site, não os utilize para modelos, temas, componentes ou sites: documentos, sites.

Tipos de Componente

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

  • Componente local

  • Componente local renderizado numa moldura inline

  • Componente remoto

O tipo de componente é armazenado como um atributo de extensão, "xScsAppType", da pasta do componente. Seguem-se os valores válidos.

Tipo Descrição

Componente local

Espera-se que todas as dependências sejam locais.

Componente local renderizado numa moldura inline

O componente é fornecido a partir do mesmo domínio que o Oracle Content Management.

Componente remoto

O componente é fornecido a partir de uma localização remota.

Estrutura de Ficheiros do Componente

Cada um dos tipos de componentes tem um conjunto de ficheiros diferente quando criado no Catálogo de Componentes, que se baseia na forma como é implementado.

Componente local:

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

Componente local a utilizar uma moldura inline:

/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 registo do componente são armazenados nos metadados da pasta. As propriedades seguintes são utilizadas para identificar de modo exclusivo o componente e o respetivo tipo.

Propriedade Descrição

nome da aplicação

Nome da pasta que designa o nome do componente.

descrição da aplicação

Descrição da pasta.

guid da aplicação

Cada componente está associado a uma GUID e é armazenado como um atributo de extensão xScsItemGUID. A GUID é gerada pelo servidor quando o componente é criado.

tipo de aplicação

Propriedade que designa o tipo de componente. É armazenada como um atributo de extensão xScsApType.

Nota:

A propriedade iconUrl, que é armazenada como um atributo de extensão xScsAppIconUrl, está obsoleta.

Ficheiro appinfo.json

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

Componente local:

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

Componente local renderizado numa moldura inline:

{
        "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 existem valores "url" registados para os componentes locais. Estes utilizam determinados ficheiros que podem ser editados em termos de conteúdo, mas não é possível alterar a localização ou o nome.

  • Os componentes locais utilizam os ficheiros assets/render.js e assets/settings.html.

  • Os componentes locais renderizados numa moldura inline utilizam os ficheiros assets/render.html e assets/settings.html.

  • Os componentes remotos utilizam os valores "url" que forem especificados.