Modelos de página - Estático page-templates-static
Um Modelo é usado para criar uma Página e define quais componentes podem ser usados dentro do escopo selecionado. Um modelo é uma hierarquia de nós que tem a mesma estrutura que a página a ser criada, mas sem nenhum conteúdo real.
Cada modelo apresentará a você uma seleção de componentes disponíveis para uso.
- Os modelos são criados de Componentes;
- Os componentes usam e permitem acesso a widgets, e eles são usados para renderizar o Conteúdo.
Propriedades e nós secundários de um modelo properties-and-child-nodes-of-a-template
Um modelo é um nó do tipo cq:Template e tem as seguintes propriedades e nós secundários:
Um modelo é a base de uma página.
Para criar uma página, o modelo deve ser copiado (árvore de nó) /apps/<myapp>/template/<mytemplate>
) para a posição correspondente na árvore do site: isso é o que acontece se uma página é criada usando o Sites guia .
Essa ação de cópia também fornece à página o conteúdo inicial (geralmente somente Conteúdo de nível superior) e a propriedade sling:resourceType, o caminho para o componente de página que é usado para renderizar a página (tudo no nó filho jcr:content).
Como os Modelos são estruturados how-templates-are-structured
Há dois aspectos a considerar:
- a estrutura do próprio modelo
- a estrutura do conteúdo produzido quando um modelo é usado
A estrutura de um modelo the-structure-of-a-template
Um Modelo é criado em um nó do tipo cq:Template.
Várias propriedades podem ser definidas, em particular:
- jcr:title - título do modelo; aparece na caixa de diálogo ao criar uma página.
- jcr:description - descrição do modelo; aparece na caixa de diálogo ao criar uma página.
Esse nó contém um nó jcr:content (cq:PageContent) que pode ser usado como a base para o nó de conteúdo das páginas resultantes; isso faz referência, usando sling:resourceType, ao componente a ser usado para renderizar o conteúdo real de uma nova página.
Esse componente é usado para definir a estrutura e o design do conteúdo quando uma nova página é criada.
O conteúdo produzido por um Modelo the-content-produced-by-a-template
Os modelos são usados para criar páginas do tipo cq:Page
(como mencionado anteriormente, uma página é um tipo especial de componente). Cada Página AEM tem um nó estruturado jcr:content
. Isto:
- é do tipo cq:PageContent
- é um tipo de nó estruturado com uma definição de conteúdo definida
- tem uma propriedade
sling:resourceType
para fazer referência ao componente que contém os scripts sling usados para renderizar o conteúdo
Modelos padrão default-templates
AEM vem com vários templates padrão disponíveis para uso imediato. Em alguns casos, convém usar os modelos como estão. Nesse caso, é necessário garantir que o modelo esteja disponível para seu site.
Por exemplo, AEM vem com vários modelos, incluindo uma página de conteúdo e uma página inicial.
Exibição de modelos padrão displaying-default-templates
Para ver uma lista de todos os modelos no repositório, proceda da seguinte maneira:
-
No CRXDE Lite, abra o Ferramentas e clique em Query.
-
Na guia Query
-
As Tipo, selecione XPath.
-
No campo de entrada Consulta, digite a seguinte string:
//element(*, cq:Template)
-
Clique em Executar. A lista é exibida na caixa de resultados.
Na maioria dos casos, você pega um template existente e desenvolve um novo para seu próprio uso. Consulte Desenvolvendo modelos de página para obter mais informações.
Para habilitar um modelo existente para o seu site e deseja que ele seja exibido na Criar página ao criar uma página diretamente em Sites do Sites no console, defina a propriedade allowedPaths do nó do modelo para: /content(https://experienceleague.adobe.com/.*?lang=pt-BR)?
Como os designs de modelo são aplicados how-template-designs-are-applied
Quando os estilos são definidos na interface do usuário usando Modo Design, o design é mantido no caminho exato do nó de conteúdo para o qual o estilo está sendo definido.
Se os designs forem aplicados apenas usando o Modo Design, as seguintes seções: Resolução do Caminho de Design, Árvore de decisãoe o Exemplo não são aplicáveis.
Resolução do Caminho de Design design-path-resolution
Ao renderizar o conteúdo com base em um template estático, o AEM tentará aplicar o design e os estilos mais relevantes ao conteúdo com base em uma travessia da hierarquia de conteúdo.
AEM determina o estilo mais relevante para um nó de conteúdo na seguinte ordem:
- Se houver um design para o caminho completo e exato do nó de conteúdo (como quando o design é definido no Modo de design), use esse design.
- Se houver um design para o nó de conteúdo do pai, use esse design.
- Se houver um design para qualquer nó no caminho do nó de conteúdo, use esse design.
Nos últimos dois casos, se houver mais de um design aplicável, use o mais próximo do nó de conteúdo.
Árvore de decisão decision-tree
Essa é uma representação gráfica da variável Resolução do Caminho de Design lógica.
Exemplo example
Considere uma estrutura de conteúdo simples da seguinte maneira, onde um design pode se aplicar a qualquer um dos nós:
/root/branch/leaf
A tabela a seguir descreve como o AEM escolherá um design.
Desenvolvendo modelos de página developing-page-templates
AEM modelos de página são simplesmente modelos usados para criar novas páginas. Eles podem conter o mínimo ou o máximo necessário de conteúdo inicial, sendo que a função deles é criar as estruturas de nó iniciais corretas, com as propriedades necessárias (principalmente sling:resourceType) definidas para permitir a edição e renderização.
Criação de um novo modelo (com base em um modelo existente) creating-a-new-template-based-on-an-existing-template
Escusado será dizer que um novo modelo pode ser criado completamente do zero, mas geralmente um modelo existente será copiado e atualizado para poupar tempo e esforço. Por exemplo, os modelos no Geometrixx podem ser usados para começar.
Para criar um novo template baseado em um template existente:
-
Copie um template existente (de preferência, com uma definição o mais próxima possível do que você deseja alcançar) em um novo nó.
Normalmente, os modelos são armazenados em /apps/<website-name>/templates/<template-name>.
note note NOTE A lista de modelos disponíveis depende do local da nova página e das restrições de posicionamento especificadas em cada modelo. Consulte Disponibilidade do modelo. -
Altere o jcr:title do novo nó template para refletir sua nova função. Você também pode atualizar o jcr:description se for caso disso. Certifique-se de alterar a disponibilidade do modelo da página, conforme apropriado.
note note NOTE Se desejar que seu modelo seja exibido na variável Criar página ao criar uma página diretamente em Sites do Sites , defina o allowedPaths
propriedade do nó do modelo para:/content(/.*)?
-
Copie o componente no qual o modelo se baseia (isso é indicado pela variável sling:resourceType da jcr:content no modelo ) para criar uma nova instância.
Os componentes geralmente são armazenados em /apps/<website-name>/componentes/<component-name>.
-
Atualize o jcr:title e jcr:description do novo componente.
-
Substitua thumbnail.png se quiser que uma nova imagem em miniatura seja mostrada na lista de seleção do modelo (tamanho 128 x 98 px).
-
Atualize o sling:resourceType do modelo jcr:content para fazer referência ao novo componente.
-
Faça outras alterações na funcionalidade ou no design do modelo e/ou seu componente subjacente.
note note NOTE Alterações feitas na /apps/<website>/templates/<template-name> afetará a instância do template (como na lista de seleção).
Alterações feitas na /apps/<website>/componentes/<component-name> afetará a página de conteúdo criada quando o modelo for usado.Agora é possível criar uma página no seu site usando o novo modelo.
cq.shared
namespace nas páginas de conteúdo e se estiver ausente do erro de JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
resultará em .Todas as páginas de conteúdo de exemplo contêm
cq.shared
, portanto, qualquer conteúdo baseado neles inclui automaticamente cq.shared
. No entanto, se você decidir criar suas próprias páginas de conteúdo do zero sem basear-nas no conteúdo de amostra, deverá incluir a variável cq.shared
namespace.Consulte Usar bibliotecas do lado do cliente para obter mais informações.
Disponibilizar um modelo existente making-an-existing-template-available
Este exemplo ilustra como permitir que um modelo seja usado para determinados caminhos de conteúdo. Os modelos que estão disponíveis para o autor da página ao criar novas páginas são determinados pela lógica definida em Disponibilidade do modelo.
-
No CRXDE Lite, navegue até o modelo que deseja usar para a página, por exemplo, o modelo Informativo.
-
Altere o
allowedPaths
propriedade e outras propriedades usadas para disponibilidade do modelo. Por exemplo,allowedPaths
:/content/geometrixx-outdoors/[^/]+(/.*)?
significa que este modelo é permitido em qualquer caminho em/content/geometrixx-outdoors
.