Modelos editáveis editable-templates
Saiba mais sobre como os modelos editáveis são usados ao criar uma página, definir seu conteúdo inicial, conteúdo estruturado, políticas de criação e layout.
Visão geral overview
Ao criar uma página, é necessário selecionar um modelo. O modelo de página é usado como a base da nova página. O modelo pode definir a estrutura da página resultante, qualquer conteúdo inicial e os componentes que podem ser usados (propriedades do design).
-
Modelos editáveis permitem que os autores criem e usem modelos.
-
Modelos editáveis podem ser usados para criar páginas que são editáveis com o
Os modelos de páginas usados para criar páginas editáveis com o Universal Editor usam um subconjunto limitado da funcionalidade de modelo editável. Portanto, o restante deste documento se concentra nos modelos editáveis usados para criar páginas que são editáveis com o Editor de páginas.
Modelos editáveis e páginas editadas com o editor de páginas page-editor
Ao criar modelos para criar páginas editáveis com o Editor de páginas, normalmente os autores especializados são identificados.
- Esses autores especializados são chamados de autores de modelo
- Os autores do modelo devem ser membros do grupo
template-authors
. - Os modelos editáveis retêm uma conexão dinâmica com qualquer página criada a partir deles. Isso garante que qualquer alteração no modelo seja refletida nas próprias páginas.
- Modelos editáveis tornam o componente de página mais genérico para que o componente de página principal possa ser usado sem personalização.
Com modelos editáveis, as partes que fazem uma página são isoladas dentro de componentes. É possível configurar as combinações necessárias de componentes em uma interface do usuário, eliminando a necessidade de um novo componente de página ser desenvolvido para cada variação de página.
Este documento:
- Fornece uma visão geral da criação de um modelo editável
- Descreve as tarefas de administrador/desenvolvedor necessárias para criar modelos editáveis
- Descreve os fundamentos técnicos de modelos editáveis
- Descreve como o AEM avalia a disponibilidade de um modelo
Criação de um novo modelo editável creating-a-new-template
A criação de modelos editáveis é feita principalmente com o console de modelo e o editor de modelo, por um autor de modelo. Esta seção fornece uma visão geral desse processo e segue com uma descrição do que ocorre em nível técnico.
Ao criar um modelo editável, você:
-
Criar uma pasta para os modelos. Isso não é obrigatório, mas é uma prática recomendada.
-
Selecione um tipo de modelo. Isto foi copiado para criar a definição do modelo.
note note NOTE Uma seleção de tipos de modelo é fornecida pronta para uso. Você também pode criar seus próprios tipos de modelo específicos do site, se necessário. -
Configure a estrutura, as políticas de conteúdo, o conteúdo inicial e o layout do novo modelo.
Estrutura
- A estrutura permite definir os componentes e o conteúdo para o modelo.
- Os componentes definidos na estrutura do modelo não podem ser movidos em uma página resultante nem excluídos de qualquer página resultante.
- Se desejar que os autores de página possam adicionar e remover componentes, adicione um sistema de parágrafo ao modelo.
- Os componentes podem ser desbloqueados e bloqueados novamente para permitir que você defina o conteúdo inicial.
Para obter detalhes sobre como um autor de modelo define a estrutura, consulte Modelos para criar páginas editáveis com o Editor de páginas.
Para obter detalhes técnicos da estrutura, consulte Estrutura neste documento.
Políticas
-
As políticas de conteúdo definem as propriedades de design de um componente.
- Por exemplo, os componentes disponíveis ou as dimensões mínima/máxima.
-
Elas são aplicáveis ao modelo (e às páginas criadas com ele).
Para obter detalhes sobre como um autor de modelo define políticas, consulte Modelos para criar páginas editáveis com o Editor de páginas.
Para obter detalhes técnicos das políticas, consulte Políticas de Conteúdo neste documento.
Conteúdo inicial
- O Conteúdo inicial define o conteúdo que será exibido quando uma página for criada pela primeira vez com base no modelo.
- O conteúdo inicial pode ser editado pelos autores da página.
Para obter detalhes sobre como um autor de modelo define a estrutura, consulte Modelos para criar páginas editáveis com o Editor de páginas.
Para obter detalhes técnicos sobre o conteúdo inicial, consulte Conteúdo inicial neste documento.
Layout
- Você pode definir o layout do modelo para um intervalo de dispositivos.
- O Layout responsivo para modelos funciona como na criação de página.
Para obter detalhes sobre como um autor de modelo define o layout do modelo, consulte Modelos para criar páginas editáveis com o Editor de páginas.
Para obter detalhes técnicos sobre o layout do modelo, consulte Layout neste documento.
-
Ative o modelo e, em seguida, aguarde-o para árvores de conteúdo específicas.
- Um modelo pode ser ativado ou desativado para disponibilizá-lo ou indisponibilizá-lo para os autores da página.
- Um modelo pode ser disponibilizado ou indisponibilizado para determinadas ramificações de página.
Para obter detalhes sobre como um autor de modelo habilita um modelo, consulte Modelos para criar páginas que são editáveis com o Editor de páginas.
Para obter detalhes técnicos sobre como habilitar um modelo, consulte Habilitando e Permitindo um Modelo para Nóse neste documento
-
Use-a para criar páginas de conteúdo.
- Ao usar um modelo para criar uma página, não há diferença visível e nenhuma indicação entre modelos estáticos e editáveis.
- Para o autor da página, o processo é transparente.
Para obter detalhes sobre como um autor de página usa modelos para criar uma página, consulte Criar e organizar páginas.
Para obter detalhes técnicos sobre como criar páginas com modelos editáveis, consulte as Páginas de Conteúdo Resultante neste documento.
cq.shared
nas páginas de conteúdo e, se estiver ausente, o erro de JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
ocorrerá.cq.shared
, portanto, qualquer conteúdo baseado nelas inclui automaticamente cq.shared
. No entanto, se você decidir criar suas próprias páginas de conteúdo do zero sem baseá-las no conteúdo de exemplo, certifique-se de incluir o namespace cq.shared
.Pastas de Modelos template-folders
Para organizar seus templates, você pode usar as seguintes pastas:
global
- Específico do site
Em uma instância padrão do AEM, a pasta global
já existe no console modelo. Isso mantém modelos padrão e atua como um fallback se nenhuma política e/ou tipo de modelo for encontrado na pasta atual. Você pode adicionar seus modelos padrão a esta pasta ou criar uma pasta (recomendado).
global
.admin
.Os tipos de modelo e as políticas são herdados em todas as pastas de acordo com a seguinte ordem de precedência:
- A pasta atual
- Pai(s) da pasta atual
/conf/global
/apps
/libs
Uma lista de todas as entradas permitidas é criada. Se alguma configuração se sobrepõe ( path
/ label
), somente a instância mais próxima à pasta atual é apresentada ao usuário.
Para criar uma pasta, faça o seguinte:
- Programaticamente ou com CRXDE Lite
- Usando o Navegador de Configuração
Uso do CRXDE Lite using-crxde-lite
-
Uma nova pasta (em /conf) pode ser criada para sua instância de forma programática ou com o CRXDE Lite.
Deve ser utilizada a seguinte estrutura:
code language-xml /conf <your-folder-name> [sling:Folder] settings [sling:Folder] wcm [cq:Page] templates [cq:Page] policies [cq:Page]
-
Em seguida, você pode definir as seguintes propriedades no nó raiz da pasta:
<your-folder-name> [sling:Folder]
- Nome:
jcr:title
- Tipo:
String
- Valor: o título (da pasta) que você deseja exibir no console Modelos.
- Nome:
-
Além das permissões e dos privilégios de criação padrão (por exemplo,
content-authors
), agora é necessário atribuir grupos e definir os direitos de acesso (ACLs) necessários para que seus autores possam criar modelos na nova pasta.O grupo
template-authors
é o grupo padrão que deve ser atribuído. Consulte a seção ACLs e grupos para obter detalhes.
Usar o navegador de configuração using-the-configuration-browser
-
Vá para Navegação Global > Ferramentas > Navegador de Configuração.
As pastas existentes são listadas à esquerda, incluindo a pasta
global
. -
Clique em Criar.
-
Na caixa de diálogo Criar Configuração, os seguintes campos precisam ser configurados:
- Título: forneça um título para a pasta de configuração
- Modelos editáveis: marque para permitir modelos editáveis nesta pasta
-
Clique em Criar
ACLs e grupos acls-and-groups
Depois que as pastas de modelo forem criadas (via CRXDE ou com o Navegador de configuração), as ACLs deverão ser definidas para os grupos apropriados para as pastas de modelo, a fim de garantir a segurança adequada.
As pastas de modelo do Tutorial WKND podem ser usadas como exemplo.
O grupo de autores de modelo the-template-authors-group
O grupo template-authors
é o grupo usado para gerenciar o acesso a modelos e vem com o AEM como padrão, mas está vazio. Os usuários devem ser adicionados ao grupo para o projeto/site.
template-authors
destina-se somente a usuários que devem ser capazes de criar novos modelos.A tabela a seguir detalha as permissões necessárias para a edição de modelos.
Este grupo template-authors
padrão cobre apenas as configurações do projeto, onde todos os membros template-authors
têm permissão para acessar e criar todos os modelos. Para configurações mais complexas, onde vários grupos de autores de modelo são necessários para separar o acesso aos modelos, mais grupos de autores de modelo personalizados devem ser criados. No entanto, as permissões para os grupos de autores de modelo ainda seriam as mesmas.
Tipo de modelo template-type
Ao criar um template, você precisa especificar um tipo de template:
-
Os tipos de modelo fornecem modelos para um modelo de maneira eficaz. Ao criar um modelo, a estrutura e o conteúdo inicial do tipo de modelo selecionado são usados para criar para o novo modelo.
- O tipo de modelo é copiado para criar o modelo.
- Depois que a cópia ocorre, a única conexão entre o modelo e o tipo de modelo é uma referência estática para fins de informação.
-
Os tipos de modelo permitem definir:
- O tipo de recurso do componente de página.
- A política do nó raiz, que define os componentes permitidos no editor de modelo.
- É recomendável definir os pontos de interrupção para a grade responsiva e a configuração do emulador móvel no no tipo de modelo.
-
O AEM fornece uma pequena seleção de tipos de modelo prontos para uso, como Página HTML5 e Página de formulário adaptável.
- Exemplos adicionais são fornecidos como parte do tutorial do WKND.
-
Os tipos de modelo normalmente são definidos pelos desenvolvedores.
Os tipos de template prontos para uso são armazenados em:
/libs/settings/wcm/template-types
/libs
. Isso ocorre porque o conteúdo de /libs
pode ser substituído a qualquer momento por uma atualização do AEM.Os tipos de modelo específicos do site devem ser armazenados no local comparável do:
/apps/settings/wcm/template-types
As definições dos tipos de modelos personalizados devem ser armazenadas em pastas definidas pelo usuário (recomendado) ou, como alternativa, em global
. Por exemplo:
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/template-types
/conf/<my-folder>/settings/wcm/template-types
/conf/global/settings/wcm/template-types
/settings/wcm/...
), caso contrário, os tipos de modelo não serão encontrados.Criação de Tipos de Modelo creating-template-types
Se você tiver criado um modelo que possa servir como base de outros modelos, poderá copiá-lo como um tipo de modelo.
- Crie um modelo como faria com qualquer Modelo de página. Consulte Modelos para criar páginas editáveis com o Editor de páginas. Isso servirá como base para o tipo de template.
- Usando o CRXDE Lite, copie o modelo criado do nó
templates
para o nótemplate-types
na pasta de modelo. - Exclua o modelo do nó
templates
na pasta de modelo. - Na cópia do modelo que está sob o nó
template-types
, exclua todas as propriedadescq:template
ecq:templateType
de todos os nósjcr:content
.
Você também pode desenvolver seu próprio tipo de modelo usando um modelo editável de exemplo como base, disponível no GitHub.
CÓDIGO NO GITHUB
Você pode encontrar o código desta página no GitHub
- Abrir o projeto aem-sites-example-custom-template-type no GitHub
- Baixar o projeto como um arquivo ZIP
Definições de modelo template-definitions
As definições dos modelos editáveis estão armazenadas em pastas definidas pelo usuário (recomendado) ou, como alternativa, em global
. Por exemplo:
/conf/<my-folder>/settings/wcm/templates
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/templates
/conf/global/settings/wcm/templates
O nó raiz do modelo é do tipo cq:Template
com uma estrutura de esqueleto de:
<template-name>
initial
jcr:content
root
<component>
...
<component>
jcr:content
@property status
policies
jcr:content
root
@property cq:policy
<component>
@property cq:policy
...
<component>
@property cq:policy
structure
jcr:content
root
<component>
...
<component>
cq:responsive
breakpoints
thumbnail.png
Os principais elementos são:
-
<template-name>
[initial](#initial-content)
jcr:content
[structure](#structure)
[policies](#policies)
thumbnail.png
jcr:content jcr-content
Este nó retém propriedades para o modelo:
-
Nome:
jcr:title
-
Nome:
status
- "Tipo:
String
- Valor:
draft
,enabled
oudisabled
- "Tipo:
Estrutura structure
Define a estrutura da página resultante:
-
É mesclado com o conteúdo inicial (
/initial
) ao criar uma página. -
As alterações feitas na estrutura são refletidas em qualquer página criada com o modelo.
-
O nó
root
(structure/jcr:content/root
) define a lista de componentes que estão disponíveis na página resultante.- Os componentes definidos na estrutura do modelo não podem ser movidos para ou excluído de qualquer página resultante.
- Após um componente ser desbloqueado, a propriedade
editable
é definida comotrue
. - Após desbloquear um componente que já contém conteúdo, esse conteúdo é movido para a ramificação
initial
.
-
O nó
cq:responsive
contém definições para o layout responsivo.
Conteúdo inicial initial-content
Define o conteúdo inicial que uma nova página terá após a criação:
- Contém um nó
jcr:content
que é copiado para quaisquer páginas novas. - É mesclado com a estrutura (
/structure
) ao criar uma página. - Nenhuma página existente será atualizada se o conteúdo inicial for alterado após a criação.
- O nó
root
contém uma lista de componentes para definir o que está disponível na página resultante. - Se o conteúdo for adicionado a um componente no modo estrutura e esse componente for posteriormente desbloqueado (ou vice-versa), esse conteúdo será usado como conteúdo inicial.
Layout layout
Ao editar um modelo para definir o layout, este usa o layout responsivo padrão, que pode ser configurado na página pelo autor de conteúdo.
Políticas de conteúdo content-policies
As políticas de conteúdo definem as propriedades de design de um componente. Por exemplo, os componentes disponíveis ou as dimensões mínima/máxima. Elas são aplicáveis ao modelo (e às páginas criadas com o modelo). As políticas de conteúdo podem ser criadas e selecionadas no editor de modelo.
-
A propriedade
cq:policy
, no nóroot
/conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root
Fornece uma referência relativa à política de conteúdo para o sistema de parágrafos da página. -
A propriedade
cq:policy
, nos nós de componente explícito emroot
, fornece links para as políticas dos componentes individuais. -
As definições de políticas reais são armazenadas em:
/conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
cq:policy
contém uma referência relativa à configuração propriamente dita.Políticas da página page-policies
As políticas de página permitem definir a política de conteúdo para a página (parsys principal), no modelo ou nas páginas resultantes.
Ativação e permissão de um modelo para uso enabling-and-allowing-a-template-for-use
-
Habilitar o Modelo
Antes de ser usado, um modelo deve ser ativado por:
-
Habilitando o modelo do console Modelos.
-
Definindo a propriedade de status no nó
jcr:content
.-
Por exemplo, em:
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
-
Defina a propriedade:
- Nome: status
- Tipo: String
- Valor:
enabled
-
-
-
Modelos permitidos
-
Defina os caminhos do Modelo Permitidos nas Propriedades de Página da página apropriada ou da página raiz de uma sub-ramificação.
-
Defina a propriedade:
cq:allowedTemplates
No nójcr:content
da ramificação necessária.
Por exemplo, com um valor de:
/conf/<your-folder>/settings/wcm/templates/.*
-
Páginas de conteúdo resultante resultant-content-pages
Páginas criadas a partir de modelos editáveis:
-
São criados com uma subárvore que é mesclada de
structure
einitial
no modelo -
Ter referências às informações mantidas no modelo e no tipo de modelo. Isso é feito com um nó
jcr:content
com as propriedades:-
cq:template
- Fornece a referência dinâmica ao modelo real; permite que as alterações no modelo sejam refletidas nas páginas reais. -
cq:templateType
- Fornece uma referência ao tipo de modelo.
-
O diagrama acima mostra como os modelos, o conteúdo e os componentes se inter-relacionam:
- Controlador -
/content/<my-site>/<my-page>
- A página resultante que faz referência ao modelo. O conteúdo controla todo o processo. De acordo com as definições, ele acessa o modelo e os componentes apropriados. - Configuração -
/conf/<my-folder>/settings/wcm/templates/<my-template>
- O modelo e as políticas de conteúdo relacionadas definem a configuração da página. - Modelo - Pacotes OSGi - Os pacotes OSGi implementam a funcionalidade.
- Exibição -
/apps/<my-site>/components
- Nos ambientes do autor e de publicação, o conteúdo é renderizado por componentes.
Ao processar uma página:
-
Modelos:
- A propriedade
cq:template
de seu nójcr:content
é referenciada para acessar o modelo que corresponde a essa página.
- A propriedade
-
Componentes:
-
O componente de página mesclará a árvore
structure/jcr:content
do modelo com a árvorejcr:content
da página.- O componente de Página permitirá que o autor edite apenas os nós da estrutura do modelo que foram sinalizados como editáveis (e quaisquer secundários).
- Ao renderizar um componente em uma página, o caminho relativo desse componente é obtido do nó
jcr:content
; o mesmo caminho no nópolicies/jcr:content
do modelo será pesquisado.- A propriedade
cq:policy
desse nó aponta para a política de conteúdo real (ou seja, ele contém a configuração de design desse componente).- Isso permite que você tenha vários modelos que reutilizam as mesmas configurações de política de conteúdo.
- A propriedade
-
Disponibilidade de modelo template-availability
Ao criar uma página na interface do administrador do site, a lista de modelos disponíveis depende do local da nova página e das restrições de posicionamento especificadas em cada modelo.
As propriedades a seguir determinam se um modelo T
pode ser usado para que uma nova página seja colocada como filho da página P
. Cada uma dessas propriedades é uma string de vários valores que contém zero ou mais expressões regulares usadas para correspondência com caminhos:
-
A propriedade
cq:allowedTemplates
do subnójcr:content
deP
ou um ancestral deP
. -
A propriedade
allowedPaths
deT
. -
A propriedade
allowedParents
deT
. -
A propriedade
allowedChildren
do modelo deP
.
A avaliação funciona da seguinte forma:
-
A primeira propriedade
cq:allowedTemplates
não vazia encontrada ao aumentar a hierarquia de páginas que começa comP
é comparada com o caminho deT
. Se nenhum dos valores for correspondente,T
será rejeitado. -
Se
T
tiver uma propriedadeallowedPaths
não vazia, mas nenhum dos valores corresponder ao caminho deP
,T
será rejeitado. -
Se ambas as propriedades acima estiverem vazias ou não existirem,
T
será rejeitado, a menos que pertença ao mesmo aplicativo queP
.T
pertence ao mesmo aplicativo queP
se, e somente se, o nome do segundo nível do caminho deT
é o mesmo que o nome do segundo nível do caminho deP
. Por exemplo, o modelo/apps/wknd/templates/foo
pertence ao mesmo aplicativo que a página/content/wknd
. -
Se
T
tiver uma propriedadeallowedParents
não vazia, mas nenhum dos valores corresponder ao caminho deP
,T
será rejeitado. -
Se o modelo de
P
tiver uma propriedadeallowedChildren
não vazia, mas nenhum dos valores corresponder ao caminho deT
,T
será rejeitado. -
Em todos os outros casos,
T
é permitido.
O diagrama a seguir descreve o processo de avaliação do modelo:
-
somente a propriedade
cq:allowedTemplates
-
somente na raiz do site
/content/wknd/jcr:content
allowedPaths
, allowedParents
e allowedChildren
também podem ser colocadas nos modelos para definir regras mais sofisticadas. No entanto, quando possível, é muito mais simples definir outras propriedades cq:allowedTemplates
em subseções do site se houver necessidade de restringir ainda mais os modelos permitidos.cq:allowedTemplates
podem ser atualizadas por um autor na guia Avançado das Propriedades da página. As outras propriedades do template não podem ser atualizadas usando a interface do usuário (padrão), portanto, seria necessário um desenvolvedor para manter as regras e uma implantação de código para cada alteração.Limite de modelos usados em páginas secundárias limiting-templates-used-in-child-pages
Para limitar quais modelos podem ser usados para criar páginas secundárias em uma determinada página, use a propriedade cq:allowedTemplates
do nó jcr:content
da página para especificar a lista de modelos a serem permitidos como páginas secundárias. Cada valor na lista deve ser um caminho absoluto para um modelo de uma página secundária permitida, por exemplo, /apps/wknd/templates/page-content
.
Você pode usar a propriedade cq:allowedTemplates
no nó jcr:content
do modelo para aplicar essa configuração a todas as páginas criadas que usam esse modelo.
Se quiser adicionar mais restrições, por exemplo, em relação à hierarquia do modelo, você pode usar as propriedades allowedParents/allowedChildren
no modelo. Em seguida, é possível especificar explicitamente que as páginas criadas a partir de um modelo T devem ser páginas principais/secundárias das páginas criadas a partir de um modelo T.