Modèles templates
Les modèles sont souvent utilisés dans AEM :
-
Lorsque vous créez une page, vous sélectionnez un modèle. Ce modèle est utilisé comme base pour la nouvelle page. Le modèle définit la structure de la page, le contenu initial et les composants qui peuvent être utilisés (propriétés de conception).
-
Lorsque vous créez un fragment de contenu, vous sélectionnez également un modèle. Ce modèle définit la structure, les éléments initiaux et les variations.
Les modèles suivants sont décrits en détail :
Modèles - Pages templates-pages
AEM propose désormais deux types de modèles de base pour la création de pages :
Modèles modifiables editable-templates
Les modèles modifiables font aujourd’hui partie des bonnes pratiques de développement avec AEM.
Les avantages des modèles modifiables sont les suivants :
-
ils peuvent être créés et modifiés par vos auteurs et autrices.
-
ils permettent de définir les éléments suivants, et ce pour toutes les pages créées avec le modèle :
- la structure ;
- le contenu initial ;
- les politiques de contenu.
-
Une fois la page créée, une connexion dynamique est conservée entre la page et le modèle. Ce lien signifie que les modifications apportées à la structure du modèle sont reflétées sur toutes les pages créées avec ce modèle. Les modifications apportées au contenu initial ne sont pas reflétées.
-
Utilisent des politiques de contenu (modifiés à partir de l’éditeur de modèles) pour conserver les propriétés de conception (n’utilise pas le mode Conception dans l’éditeur de page).
-
Sont stockés sous
/conf
. -
Consultez les Modèles modifiables pour plus d’informations.
Modèles statiques static-templates
Modèles statiques :
- ils doivent être définis et configurés par vos développeurs et développeuses.
- Le système de création de modèles d’AEM d’origine, disponible depuis de nombreuses versions.
- Un modèle statique est une hiérarchie de nœuds ayant la même structure que la page à créer, mais sans contenu réel.
- Ils sont copiés pour créer la page, aucune connexion dynamique n’existe par la suite.
- Ils utilisent le Mode de conception pour conserver les propriétés de conception.
- Sont stockés sous
/apps
. - Consultez les Modèles statiques pour plus d’informations.
Disponibilité des modèles template-availability
-
uniquement la propriété
cq:allowedTemplates
; -
uniquement sur la racine du site.
/content/we-retail/jcr:content
allowedPaths
, allowedParents
et allowedChildren
peuvent également être placées sur les modèles pour définir des règles plus élaborées. Cependant, dans la mesure du possible, il est beaucoup plus simple de définir d’autres propriétés cq:allowedTemplates
dans des sous-sections du site si des restrictions supplémentaires des modèles autorisés s’imposent.cq:allowedTemplates
peuvent être mises à jour par un auteur ou une autrice dans l’onglet Avancé des Propriétés de la page. Les autres propriétés de modèle ne peuvent pas être mises à jour à l’aide de l’interface utilisateur (standard). Il faudrait donc qu’un développeur ou une développeuse conserve les règles et qu’un déploiement du code soit effectué pour chaque modification.Lors de la création d’une page dans l’interface d’administration du site, la liste des modèles disponibles dépend de l’emplacement de la nouvelle page et des restrictions d’emplacement spécifiées dans chaque modèle.
Les propriétés suivantes déterminent si un modèle T
peut être utilisé pour qu’une nouvelle page soit placée en tant qu’enfant de la page P
. Chacune de ces propriétés est une chaîne à valeurs multiples contenant aucune ou plusieurs expressions régulières utilisées pour la correspondance avec les chemins :
-
La propriété
cq:allowedTemplates
du sous-nœudjcr:content
deP
ou un ancêtre deP
. -
La propriété
allowedPaths
deT
. -
La propriété
allowedParents
deT
. -
La propriété
allowedChildren
du modèle deP
.
L’évaluation fonctionne comme suit :
-
La première propriété
cq:allowedTemplates
non vide détectée dans la hiérarchie de page commençant parP
est comparée au chemin deT
. Si aucune des valeurs ne correspond,T
est rejeté. -
Si
T
a une propriétéallowedPaths
non vide, mais qu’aucune des valeurs ne correspond au chemin deP
,T
est rejeté. -
Si les deux propriétés ci-dessus sont vides ou inexistantes,
T
est rejeté sauf s’il appartient à la même application queP
.T
appartient à la même application queP
si et seulement si le nom du deuxième niveau du chemin deT
est identique à celui du deuxième niveau du chemin deP
. Par exemple, le modèle/apps/geometrixx/templates/foo
appartient à la même application que la page/content/geometrixx
. -
Si
T
a une propriétéallowedParents
non vide, mais qu’aucune des valeurs ne correspond au chemin deP
,T
est rejeté. -
Si le modèle de
P
a une propriétéallowedChildren
non vide, mais qu’aucune des valeurs ne correspond au chemin deT
,T
est rejeté. -
Dans tous les autres cas,
T
est autorisé.
Le diagramme suivant illustre le processus d’évaluation de modèle :
Limitation des modèles utilisés dans les pages enfants limiting-templates-used-in-child-pages
Pour limiter les modèles servant à créer des pages enfants sous une page donnée, utilisez la propriété cq:allowedTemplates
du nœud jcr:content
de la page pour spécifier la liste des modèles à autoriser en tant que pages enfants. Chaque valeur de la liste doit être un chemin absolu vers un modèle pour une page enfant autorisée, par exemple /apps/geometrixx/templates/contentpage
.
Vous pouvez appliquer la propriété cq:allowedTemplates
sur le nœud jcr:content
du modèle pour que cette configuration soit appliquée à toutes les pages nouvellement créées qui utilisent ce modèle.
Si vous souhaitez ajouter d’autres contraintes, par exemple concernant la hiérarchie des modèles, vous pouvez appliquer les propriétés allowedParents/allowedChildren
sur le modèle. Vous pouvez ensuite spécifier explicitement que les pages créées à partir d’un modèle T doivent être des parents/enfants de pages créées à partir d’un modèle T.
Modèles - Fragments de contenu templates-content-fragments
Voir Modèles de fragments de contenu.