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 da página a ser criada, mas sem nenhum conteúdo real.
Cada modelo apresentará uma seleção de componentes disponíveis para uso.
Modelos editáveis também estão disponíveis e são o tipo recomendado de modelos para maior flexibilidade e os recursos mais recentes.
Um modelo é um nó do tipo cq:Template e tem as seguintes propriedades e nós filhos:
Nome |
Tipo |
Descrição |
. |
cq:Template | Modelo atual. Um modelo é do tipo de nó cq:Template. |
allowedChildren | String[] | Caminho de um modelo que tem permissão para ser um filho deste modelo. |
allowedParents | String[] | Caminho de um modelo que tem permissão para ser um pai deste modelo. |
allowedPaths | String[] | Caminho de uma página que pode ser baseada neste modelo. |
jcr:created | Data | Data de criação do modelo. |
jcr:description | String | Descrição do modelo. |
jcr:title | String | Título do modelo. |
classificação | Longo | Classificação do modelo. Usado para exibir o modelo na interface do usuário do. |
jcr:content | cq:PageContent | Nó que contém o conteúdo do template. |
thumbnail.png | nt:arquivo | Miniatura do modelo. |
icon.png | nt:arquivo | Ícone do modelo. |
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 seu conteúdo inicial (geralmente, Conteúdo de nível superior somente) e a propriedade sling:resourceType, o caminho para o componente de página usado para renderizar a página (tudo no nó filho jcr:content).
Há dois aspectos a considerar:
Um modelo é criado em um nó do tipo cq:Template.
Várias propriedades podem ser definidas, em particular:
Este nó contém um nó jcr:content (cq:PageContent) que pode ser usado como base para o nó de conteúdo das páginas resultantes; 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.
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:
sling:resourceType
para fazer referência ao componente que contém os scripts sling usados para renderizar o conteúdoO AEM vem com vários modelos padrão disponíveis imediatamente. Em alguns casos, você pode querer usar os modelos como estão. Nesse caso, você precisa garantir que o modelo esteja disponível para o seu site.
Por exemplo, o AEM vem com vários modelos, incluindo uma página de conteúdo e uma página inicial.
Título | Componente | Local | Propósito |
---|---|---|---|
Página Inicial | homepage | geometrixx | O modelo da página inicial do Geometrixx. |
Página de conteúdo | contentpage | geometrixx | O modelo da página de conteúdo do Geometrixx. |
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
Como Tipo, selecione XPath.
No Query insira a seguinte string: //element()*, cq:Template)
Clique em Executar. A lista é exibida na caixa de resultados.
Na maioria dos casos, você usará um modelo existente e desenvolverá um novo para uso próprio. Consulte Desenvolvimento de modelos de página para obter mais informações.
Para habilitar um modelo existente para o seu site e exibi-lo na variável Criar página ao criar uma página logo em Sites do Sites defina a propriedade allowedPaths do nó do modelo como: /content(/.&?lang=pt-BR#42;)?
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.
O Adobe recomenda aplicar somente designs através do Modo Design.
A modificação de designs no CRX DE, por exemplo, não é a prática recomendada e a aplicação de tais designs pode variar do comportamento esperado.
Se os designs forem aplicados usando apenas o Modo de design, as seguintes seções Resolução do caminho de design, Árvore de decisão, e o Exemplo não são aplicáveis.
Ao renderizar o conteúdo com base em um modelo estático, o AEM tentará aplicar o design e os estilos mais relevantes ao conteúdo com base em uma passagem da hierarquia de conteúdo.
O AEM determina o estilo mais relevante para um nó de conteúdo na seguinte ordem:
Nos dois últimos casos, se houver mais de um design aplicável, use o mais próximo do nó de conteúdo.
Esta é uma representação gráfica do Resolução do caminho de design lógica.
Considere uma estrutura de conteúdo simples, como a seguir, em que um design pode ser aplicado a qualquer um dos nós:
/root/branch/leaf
A tabela a seguir descreve como o AEM escolherá um design.
Localizando design para |
Existem Designs Para |
Design escolhido |
Comentar |
leaf
|
|
leaf |
A correspondência mais exata é sempre feita. |
leaf |
|
branch |
Volte para a correspondência mais próxima mais abaixo na árvore. |
leaf |
root |
root |
Se tudo mais falhar, pegue o que resta. |
branch |
branch |
branch |
|
branch |
|
branch |
|
branch |
|
branch |
|
branch |
|
root |
Se não houver uma correspondência exata, use a inferior na árvore. O pressuposto é que isso sempre será aplicável, mas mais acima na árvore pode ser muito específico. |
Modelos de página AEM são simplesmente modelos usados para criar novas páginas. Eles podem conter pouco ou tanto conteúdo inicial quanto necessário, sendo sua função criar as estruturas de nó iniciais corretas, com as propriedades necessárias (principalmente sling:resourceType) definidas para permitir edição e renderização.
É desnecessário dizer que um novo modelo pode ser criado completamente do zero, mas com frequência um modelo existente será copiado e atualizado para economizar seu tempo e esforço. Por exemplo, os templates no Geometrixx podem ser usados para começar.
Para criar um novo modelo com base em um modelo existente:
Copie um template existente (de preferência com uma definição o mais próximo possível do que você deseja alcançar) em um novo nó.
Normalmente, os modelos são armazenados no /apps/<website-name>/templates/<template-name>.
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 nó novo modelo para refletir sua nova função. Você também pode atualizar a variável jcr:description se apropriado. Altere a disponibilidade do modelo da página, conforme apropriado.
Se quiser que o modelo seja exibido no Criar página ao criar uma página logo 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 propriedade do jcr:content no modelo) para criar uma nova instância.
Normalmente, os componentes são armazenados no /apps/<website-name>/components/<component-name>.
Atualize o jcr:title e jcr:description do novo componente.
Substitua thumbnail.png se desejar 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 mais alterações na funcionalidade ou no design do modelo e/ou em seu componente subjacente.
As alterações feitas no /apps/<website>/templates/<template-name> afetará a instância do modelo (como na lista de seleção).
As alterações feitas no /apps/<website>/components/<component-name> afetará a página de conteúdo criada quando o modelo for usado.
Agora você pode criar uma página em seu site usando o novo modelo.
A biblioteca cliente do editor presume a presença do cq.shared
nas páginas de conteúdo e se não contiver o erro de JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
resultará.
Todos os exemplos de páginas de conteúdo contêm 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 em conteúdo de amostra, não deixe de incluir o cq.shared
namespace.
Consulte Uso de bibliotecas do lado do cliente para obter mais informações.
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 Boletim 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
.