Noções sobre o Ficheiro components.json e Formato

Um tema deve ter um ficheiro components.json localizado em /NomeTema/components.json, que especifica os componentes utilizados no tema.

Este ficheiro deve conter JSON válido e o mínimo que o ficheiro deve conter é uma matriz JSON vazia [].

A sintaxe do ficheiro components.json lista todos os componentes locais e suporta totalmente a categorização de componentes. (Os componentes remotos são registados no Catálogo de Componentes.)

Independentemente dos componentes acrescentados ao ficheiro components.json ao nível do tema (incluindo nenhum), o Oracle Content Management preenche um conjunto de componentes por omissão que é disponibilizado aos utilizadores. Este conjunto por omissão é definido no código-fonte. A lista seguinte mostra os componentes e os componentes (incorporados) apresentados em molduras inline. Além disso, quaisquer componentes remotos registados ao nível do serviço e disponibilizados aos utilizadores na sua instância estarão disponíveis no Criador de Sites.

Os seguintes componentes locais estão incluídos no Oracle Content Management.

Nome Tipo ID

Título

scs-title

scs-title

Parágrafo

scs-paragragh

scs-paragragh

Imagem

scs-image

scs-image

Galeria

scs-gallery

scs-gallery

Grelha da Galeria

scs-gallerygrid

scs-gallerygrid

Documento

scs-document

scs-document

Botão

scs-button

scs-button

Mapa

scs-map

scs-map

Divisor

scs-divider

scs-divider

Espaçador

scs-spacer

scs-spacer

YouTube

scs-youtube

scs-youtube

Barra de Redes Sociais

scs-socialbar

scs-socialbar

Vídeo

scs-video

scs-video

Artigo (componente customizado)

scs-component

scs-comp-article

Cabeçalho (componente customizado)

scs-component

scs-comp-headline

Imagem e Texto (componente customizado)

scs-component

scs-comp-image-text

Estes componentes, renderizados em molduras inline, estão incluídos no Oracle Content Management. Não incluem componentes remotos registados.

Nome Tipo ID

Conversação

scs-app

Conversação

Gestor de Documentos

scs-app

Gestor de Documentos

Lista de Pastas

scs-app

Lista de Pastas

Lista de Ficheiros

scs-app

Lista de Ficheiros

Gosto no Facebook

scs-app

Gosto no Facebook

Recomendação no Facebook

scs-app

Recomendação no Facebook

Seguir no Twitter

scs-app

Seguir no Twitter

Partilha no Twitter

scs-app

Partilha no Twitter

Formato Geral

O formato geral do ficheiro components.json é o seguinte:

  • As propriedades dos componentes são especificadas em cada componente. As propriedades "components" ou "apps" de nível superior são obsoletas.

  • Cada componente tem uma propriedade "type". Os componentes só podem ter determinados valores (todos os valores possíveis são listados na tabela para os componentes por omissão).

  • Cada componente tem uma propriedade "id", que deve ser exclusiva. Esta propriedade é utilizada para fazer a distinção entre componentes com o mesmo "type". Anteriormente, as aplicações tinham a propriedade "appName". Embora "appName" ainda funcione se a propriedade "id" não estiver disponível, a propriedade "appName" é obsoleta.

  • Cada componente tem uma propriedade "name" que é o nome para apresentação na interface do utilizador. Se não forem especificados valores de reserva, para os componentes o valor é o nome do componente por omissão correspondente e para os componentes remotos o valor é a ID.

Segue-se um exemplo de um ficheiro components.json:

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

A estrutura geral é uma matriz JSON de objetos de categoria. Cada objeto de categoria tem uma propriedade "name" e uma propriedade "list". A propriedade "name" pode ser uma chave que efetua correspondência com uma Cadeia de Caracteres localizada. Se estas categorias por omissão não forem suficientes, pode fornecer o seu próprio nome de categoria, que não será localizado. A tabela seguinte lista as categorias por omissão disponíveis e as chaves correspondentes.

Chave Nome da Categoria (Português)

COMP_CONFIG_CONTENT_CATEGORY_NAME

Conteúdo

COMP_CONFIG_CUSTOM_CATEGORY_NAME

Customizar

COMP_CONFIG_MEDIA_CATEGORY_NAME

Suporte

COMP_CONFIG_SOCIAL_CATEGORY_NAME

Redes Sociais

COMP_CONFIG_TEXT_CATEGORY_NAME

Texto

A propriedade "list" em cada objeto de categoria contém uma matriz de objetos de componente. Cada componente ou objeto deve ter as propriedades "type" e "id". As outras propriedades são opcionais.

  • A propriedade "type" deve ser igual a um dos tipos encontrados nos componentes por omissão. Se o "type" ainda não existir, o componente não será apresentado.

  • A propriedade "id" deve ser exclusiva entre os componentes. Se a propriedade "id" já existir, o componente não será apresentado.

  • A propriedade "name" é o nome para apresentação do componente na interface do utilizador. Substitui a propriedade "appName" anterior para as aplicações (agora componentes remotos).

  • Todas as outras propriedades são tratadas de forma idêntica à das releases anteriores.

Acrescentar Novos Componentes ao components.json

Não tem permissão para modificar os componentes por omissão. Contudo, pode criar um novo componente baseado num componente por omissão existente. Por exemplo, pode criar um novo componente baseado no componente "scs-title", que define um determinado texto por omissão. Para acrescentar um novo componente, é obrigatório especificar, no mínimo, as propriedades "type" e "id".

  • O "type" deve ser igual a um dos tipos encontrados nos componentes por omissão. Se o "type" ainda não existir, o componente não será apresentado.

  • A propriedade "id" deve ser exclusiva entre os componentes. Se a propriedade "id" já existir, o componente não será apresentado.

Segue-se um exemplo de código para acrescentar um novo componente Title. Este componente será apresentado juntamente com o componente de título por omissão.

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

Segue-se um exemplo de código para acrescentar um novo componente Title com um nome para apresentação e texto por omissão.

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

Note que o componente de título assume todas as propriedades do componente Title por omissão como base e aplica modificações ao nível do tema sobre o mesmo para criar o novo componente.

Compatibilidade com Versões Anteriores

Os ficheiros components.json no formato anterior ainda podem ser lidos.

  • Ficheiros com as propriedades "components" ou "apps" de nível superior.

  • Se o ficheiro contiver uma propriedade "apps", os componentes remotos definidos pelo utilizador nesta propriedade continuam a ser carregados.

  • Se o ficheiro contiver uma propriedade "apps" de nível superior, assume-se que quaisquer componentes remotos listados abaixo têm o tipo "scs-app".

  • Se a propriedade "appName" estiver presente, define "id" como o valor "appName". O nome para apresentação será igual a "name", se especificado, ou recorre ao valor "id".