Os modelos são usados em vários pontos no AEM:
Quando criar uma página, é necessário selecionar um modelo; isso será usado como a base para a nova página. O modelo define a estrutura da página resultante, qualquer conteúdo inicial e os componentes que podem ser usados (propriedades de design).
Quando criar um Fragmento de conteúdo, também é necessário selecionar um modelo. Este modelo define a estrutura, os elementos iniciais e as variações.
Os seguintes modelos são abordados detalhadamente:
AEM agora oferta dois tipos básicos de modelos para criar páginas:
Ao usar um modelo para criar uma nova página, não há diferença visível (para o autor da página) e nenhuma indicação do tipo de modelo que está sendo usado.
Modelos editáveis agora são considerados práticas recomendadas para desenvolvimento com AEM.
As vantagens dos modelos editáveis:
Foram introduzidas para permitir que você defina o seguinte para qualquer página criada com o modelo:
Após a criação da nova página, uma conexão dinâmica é mantida entre a página e o modelo; isso significa que as alterações na estrutura do modelo serão refletidas em qualquer página criada com esse modelo (as alterações no conteúdo inicial não serão refletidas).
Usa políticas de conteúdo (editadas no editor de modelo) para persistir nas propriedades de design (não usa o modo Design no editor de página).
São armazenados em /conf
Consulte Modelos editáveis para obter mais informações.
Um artigo da comunidade AEM está disponível explicando como desenvolver um site Experience Manager com modelos editáveis, consulte Criar um site da Adobe Experience Manager 6.5 usando Modelos editáveis.
Modelos estáticos:
/apps
A partir AEM 6.5 o uso de Modelos estáticos não é considerado uma prática recomendada. Em vez disso, use Modelos editáveis.
AEM ferramentas de modernização podem ajudá-lo a migrar de modelos estáticos para editáveis.
AEM oferta várias propriedades para controlar os modelos permitidos em Sites. No entanto, combiná-las pode levar a regras muito complexas que são difíceis de rastrear e gerenciar.
Portanto, o Adobe recomenda que você start de forma simples, definindo:
somente a propriedade cq:allowedTemplates
somente na raiz do site
Para ver um exemplo, consulte We.Retail: /content/we-retail/jcr:content
As propriedades 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
nas subseções do site, caso haja necessidade de restringir ainda mais os modelos permitidos.
Uma vantagem adicional é que as propriedades cq:allowedTemplates
podem ser atualizadas por um autor na guia Avançado das Propriedades da página. As outras propriedades do modelo 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.
Ao criar uma nova 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
tem permissão para ser usado para uma nova página ser colocada como um filho da página P
. Cada uma dessas propriedades é uma string de vários valores contendo zero ou mais Expressões Regulares usadas para correspondência com caminhos:
A propriedade cq:allowedTemplates
do subnó jcr:content
de P
ou um ancestral de P
.
A propriedade allowedPaths
de T
.
A propriedade allowedParents
de T
.
A propriedade allowedChildren
do modelo de P
.
A avaliação funciona do seguinte modo:
A primeira propriedade cq:allowedTemplates
não vazia encontrada ao ascender à hierarquia de páginas começando com P
é comparada com o caminho de T
. Se nenhum dos valores corresponder, T
será rejeitado.
Se T
tiver uma propriedade allowedPaths
não vazia, mas nenhum dos valores corresponder ao caminho de P
, T
será rejeitado.
Se ambas as propriedades acima estiverem vazias ou inexistentes, T
será rejeitado, a menos que pertença ao mesmo aplicativo que P
. T
pertence ao mesmo aplicativo como P
se e somente se o nome do segundo nível do caminho T
for igual ao nome do segundo nível do caminho P
. Por exemplo, o modelo /apps/geometrixx/templates/foo
pertence ao mesmo aplicativo que a página /content/geometrixx
.
Se T
tiver uma propriedade allowedParents
não vazia, mas nenhum dos valores corresponder ao caminho de P
, T
será rejeitado.
Se o modelo de P
tiver uma propriedade allowedChildren
não vazia, mas nenhum dos valores corresponder ao caminho de T
, T
será rejeitado.
Em todos os outros casos, T
é permitido.
O diagrama a seguir descreve o processo de avaliação do modelo:
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 para uma página secundária permitida, por exemplo /apps/geometrixx/templates/contentpage
.
Você pode usar a propriedade cq:allowedTemplates
no nó jcr:content
do modelo para aplicar essa configuração a todas as páginas recém-criadas que usam esse modelo.
Se desejar adicionar mais restrições, por exemplo, em relação à hierarquia do modelo, você pode usar as propriedades allowedParents/allowedChildren
no modelo. Você pode especificar explicitamente que as páginas criadas a partir de um modelo T devem ser pais/filhos de páginas criadas a partir de um modelo T.
Consulte Modelos de fragmento de conteúdo para obter informações completas.