Componentes para fragmentos de conteúdo components-for-content-fragments
Componentes para criação de fragmentos components-for-fragment-authoring
Consulte a API de gerenciamento de fragmento de conteúdo - lado do cliente.
Componentes para criação de página components-for-page-authoring
Os fragmentos de conteúdo do Adobe Experience Manager (AEM) são criados e gerenciados como ativos independentes da página. Eles permitem criar conteúdo não vinculado a canais, juntamente com variações (podem ser específicas de cada canal). É possível usar esses fragmentos e suas variações ao criar suas páginas de conteúdo. Você também pode usar um ativo de fragmento de conteúdo existente arrastando-o do navegador de ativos para a página (assim como para outros componentes baseados em ativos, como o componente de base Imagem). O componente de fragmento de conteúdo pronto para uso exibe apenas um elemento do fragmento de conteúdo referenciado. Usando a caixa de diálogo de componentes, você pode definir o elemento, a variação e o intervalo de parágrafos de fragmento que deseja exibir na página.
Definição definition
O componente Fragmento de Conteúdo é usado para conter uma referência a um ativo de fragmento de conteúdo (ativos de texto efetivamente aprimorados). O tipo de recurso do fragmento de conteúdo é:
dam/cfm/components/contentfragment/contentfragment
A referência é definida na propriedade:
fileReference
Somente o editor da interface habilitada para toque oferece suporte total aos componentes do fragmento de conteúdo, que incluem a biblioteca do cliente:
cq.authoring.editor.plugin.cfm
Essa biblioteca adiciona recursos, específicos dos fragmentos de conteúdo, ao editor. Por exemplo, o suporte para a capacidade de adicionar e configurar fragmentos de conteúdo na página, a capacidade de pesquisar ativos de fragmento de conteúdo no navegador de ativos e conteúdo associado no painel lateral está disponível.
Conteúdo intermediário in-between-content
O componente Fragmento do Conteúdo t permite que você solte componentes adicionais entre os diferentes parágrafos do elemento exibido. Basicamente, o elemento exibido é composto de parágrafos diferentes (cada parágrafo é marcado por um retorno de carro). Entre cada um desses parágrafos, é possível inserir conteúdo usando outros componentes.
De um ponto de vista técnico, cada parágrafo do elemento exibido reside em seu próprio parsys, e cada componente adicionado entre os parágrafos é inserido (abaixo do capô) no parsys.
Em outras palavras, se a instância do componente Fragmento de conteúdo for composta de três parágrafos, o componente terá três parsys diferentes no repositório. Todo o conteúdo intermediário adicionado ao fragmento de conteúdo está realmente localizado dentro desses parsys.
No repositório, o conteúdo intermediário é armazenado em relação à sua posição dentro da estrutura geral do parágrafo, ou seja, não é anexado ao conteúdo real do parágrafo.
Para ilustrar isso, considere que você tem o seguinte:
-
Uma instância de um fragmento de conteúdo composto por três parágrafos
-
E que parte do conteúdo já foi inserido após o segundo parágrafo
- Isso significa que o conteúdo é armazenado no segundo parsys.
Basicamente, se a estrutura de parágrafo dessa ocorrência for alterada (alterando a variação, o elemento ou o intervalo de parágrafos exibidos), isso poderá afetar o conteúdo intermediário exibido quando o conteúdo do fragmento de conteúdo:
-
É editado e outro parágrafo é adicionado antes do segundo parágrafo:
- O conteúdo intermediário é exibido após o parágrafo recém-criado (o segundo parsys agora contém o parágrafo recém-criado).
-
É editado e o segundo parágrafo é removido:
- O conteúdo intermediário é exibido após o parágrafo que era o terceiro (o segundo parsys agora contém o terceiro parágrafo anterior).
-
Está configurado para que somente o primeiro parágrafo seja exibido:
- O conteúdo intermediário não é exibido (o segundo parsys não é mais renderizado devido à nova configuração).
Personalização do componente Fragmento de Conteúdo customizing-the-content-fragment-component
Para usar o componente Fragmento de conteúdo pronto para uso como um blueprint para a extensão, você deve respeitar o seguinte contrato:
-
Reutilize o script de renderização HTL e seu POJO associado para que você possa ver como o recurso de conteúdo intermediário é implementado.
-
Reutilizar o nó do fragmento de conteúdo:
cq:editConfig
- Os ouvintes
afterinsert
/afteredit
/afterdelete
são usados para acionar eventos JS. Esses eventos são manipulados na biblioteca do clientecq.authoring.editor.plugin.cfm
para exibir o conteúdo associado no painel lateral. - Os
cq:dropTargets
estão configurados para serem compatíveis com a ação de arrastar ativos do fragmento de conteúdo. - O
cq:inplaceEditing
está configurado para oferecer suporte à criação de um fragmento de conteúdo no editor de páginas. O editor local de fragmentos está definido na biblioteca clientecq.authoring.editor.plugin.cfm
e permite que um link rápido abra o elemento/variação atual no editor de fragmentos.
- Os ouvintes
Regravação de ativos antes da renderização asset-rewriting-before-rendering
O gerenciamento de fragmento de conteúdo usa um processo de renderização interno para gerar a saída de HTML final para uma página. Isso é usado internamente pelo componente Fragmento de conteúdo, mas também pelo processo em segundo plano que atualiza os fragmentos referenciados nas páginas de referência.
Internamente, o Sling Rewriter é usado para essa renderização. A respectiva configuração é encontrada em /libs/dam/config/rewriter/cfm
e pode ser ajustada, se necessário. Consulte o Apache Sling Rewriter para obter mais informações.
/libs/dam/config/rewriter/cfm
serializerType
deve ser atualizado para:serializerType="html5-serializer"
A configuração pronta para uso usa os seguintes transformadores:
-
transformer-cfm-payloadfilter
- para recuperar somente a partebody
(<body>...</body>
) do HTML do fragmento -
transformer-cfm-parfilter
- filtra parágrafos indesejados se um intervalo de parágrafos for especificado (como pode ser feito com o componente Fragmento de Conteúdo) -
transformer-cfm-assetprocessor
- é usado internamente para recuperar uma lista dos ativos incorporados ao fragmento
O processo de renderização é exposto por meio de com.adobe.cq.dam.cfm.content.FragmentRenderService
e pode ser usado (por exemplo) por componentes personalizados, se necessário.