Implementação de Componente Local

A instância do componente é criada pelo objeto Factory de Componentes.

A entrada do objeto Factory de Componentes no arquivo de registro de componentes é initData.componentFactory. Essa é uma referência a um arquivo JavaScript que o RequireJS usa para carregar a factory de componentes. Ela deve retornar um objeto JavaScript que implemente a interface componentFactory.

O objeto Factory de Componentes deve implementar a API customComponentFactory.createComponent(args), que cria cada instância do componente.

args contém estas definições:

  • SitesSDK: O Sites SDK do Oracle Content Management.

  • id: o ID exclusivo (GUID) do componente adicionado à página.

  • viewMode: o modo atual em que a página está sendo renderizada. Quando uma página está sendo editada, é "Editar". Quando uma página é visualizada, é "Navegar". No runtime, que é quando o site é publicado, o valor é indefinido. Você pode fornecer implementações diferentes com base na funcionalidade que deve ser exposta para cada modo. Por exemplo, links não devem estar ativos quando a página está em execução no modo de Edição.

Nota:

Não é uma exigência usar JQuery ou Knockout para seu componente, mas se você quiser utilizar as funcionalidades do Oracle Content Management, como componentes aninhados, use a versão do Knockout fornecida pelo Oracle Content Management. Essa versão do Knockout estendeu o registro e os handlers de componentes, que do contrário não estariam disponíveis a você.

Para o componente propriamente dito, o SDK é transmitido quando o componente é instanciado, de modo que possa se comunicar com o ciclo de vida da página. As funções de ciclo de vida da página devem ser implementadas pelo componente e são chamadas pelo Oracle Content Management para renderizar o componente na página.

São fornecidas APIs obrigatórias e opcionais para implementar um componente.

APIs Obrigatórias

customComponent.render(container): solicita que o componente insira a si próprio no elemento do contêiner DOM fornecido.

  • container: o elemento do contêiner DOM para o HTML do componente personalizado.

APIs Opcionais

customComponent.dispose(): chamado quando o componente está sendo removido da página. Fornece uma oportunidade para o componente remover qualquer recurso que não seja mais necessário.