Os componentes do Oracle Content Management são implementados utilizando a arquitetura de componente de KnockoutJS. Isto significa que, se estiver a utilizar KnockoutJS para implementar os seus componentes, pode incluir os componentes integrados do Oracle Content Management diretamente no seu modelo.
Nota:
Uma vez que os componentes integrados do Oracle Content Management só podem ser executados na página do Oracle Content Management, não pode utilizar os componentes encadeados se o seu componente for renderizado numa moldura inline.Para aproveitar os componentes encadeados:
Implemente os seus componentes utilizando KnockoutJS.
Utilize RequireJS para incluir o seu componente e utilizar a mesma variável de instância Knockout "ko"
que é criada pelo Oracle Content Management.
Isto é obrigatório porque o Oracle Content Management alarga o Knockout com componentes e estes componentes não estarão disponíveis se utilizar a sua própria instância de KnockoutJS.
Neste passo, irá rever a forma como os componentes Imagem, Parágrafo e Título do Oracle Content Management, são renderizados no seu componente customizado. Um utilizador poderá editar diretamente na página e aceder à secção Definições para o componente encadeado.
Para ver como estes componentes são incluídos no seu modelo, edite o ficheiro render.js
e consulte o objeto sampleComponentTemplate
. A secção por omissão apresentada é mostrada aqui:
'<!-- ko if: alignImage() !== \'right\' -->' + '<div style="display:flex;">' + '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' + '<scs-image params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'imageId\', \'data\': imageData } }"></scs-image>' + '</div>' + '<div data-bind="attr: {style: paragraphStyle}">' + '<scs-title params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'titleId\', \'data\': titleData } }"></scs-title>' + '<scs-paragraph params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'paragraphId\', \'data\': paragraphData } }"></scs-paragraph>' + '</div>' + '</div>' + '<!-- /ko -->' +
Ao consultar o componente encadeado <scs-image>
, verá a seguinte entrada:
'<scs-image params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'imageId\', \'data\': imageData }}"></scs-image>' +
scsComponent
transmitidos à associação do modelo params
inclui o seguinte:
renderMode
: Isto refere-se ao modo onde se encontra o Criador de Sites. Pode utilizar isto para ativar e desativar funções. Por exemplo, quando utilizado pelo componente <scs-title>
, acrescenta o editor de RTF ao executar no modo edit
.
parentId
: É necessário para que o componente do Oracle Content Management saiba que está a renderizar como componente encadeado. Todas as alterações ao componente encadeado serão gravadas nos dados para o componente customizado.
id
: Uma ID única para o componente encadeado. Terá um namespace com a ID para o componente customizado.
data
: Dados iniciais para o componente encadeado. Se o componente não for mais modificado, será apresentado com estes dados iniciais.
Os valores id
e mode
referenciados são transmitidos ao seu componente customizado no objeto SampleComponentViewModel
, pelo que não precisa de modificar o objeto para obter estes valores:
// Store the args self.mode = args.viewMode; self.id = args.id;
A sintaxe para todos os outros componentes encadeados suportados segue o mesmo padrão que <scs-paragraph>
; por exemplo: <scs-image>, <scs-title>, <scs-button>
.
Verificar os Resultados para o Passo 10
Renove a sua página no site para que o Criador de Sites possa escolher alterações para o componente.
Apresente a página no modo de edição.
Arraste e largue o seu componente na página.
Clique no texto As a page author, you can edit. . .
no seu componente e atualize a descrição utilizando o editor de RTF.
Mude para o modo de pré-visualização para ver a sua atualização.
Mude de novo para o modo de edição.
Abra o painel Definições com o seu componente.
Clique na ligação Componentes que aparece agora, porque o seu componente encadeado foi encontrado.
Clique em Parágrafo, que é o componente encadeado encontrado.
Pode agora atualizar as propriedades no componente Paragraph no seu componente.
Nota:
Até serem criadas instâncias do componente, o Oracle Content Management não conhece quaisquer componentes encadeados que possam existir no modelo. Para informar o Oracle Content Management sobre os componentes encadeados ocultos, pode utilizar a APISitesSDK.setProperty('visibleNestedComponents', []);
. Para apresentar componentes encadeados ocultos por omissão, deve atualizar a matriz "nestedComponents": []
no registo de componente.Avance para Passo 11: Suportar Disposições Diferentes.