Les modèles modifiables ont été élaborés pour :
Permettre aux personnes spécialisées dans la création de créer et de modifier des modèles.
template-authors
.Fournir des modèles qui conservent un lien dynamique avec les pages que ces personnes ont servi à créer. De cette manière, toute modification apportée au modèle est répercutée dans les pages proprement dites.
Rendre le composant de page plus générique, ce qui permet d’utiliser le composant de page principal sans personnalisation.
Avec les modèles modifiables, les éléments qui constituent une page sont isolés au sein des composants. Vous pouvez configurer les combinaisons de composants nécessaires dans une interface utilisateur, rendant ainsi inutile le développement d’un nouveau composant de page pour chaque variante de page.
Des modèles statiques sont également disponibles.
Ce document :
donne une vue d’ensemble de la création de modèles modifiables ;
décrit les tâches d’administration ou de développement requises pour créer des modèles modifiables ;
décrit les bases techniques des modèles modifiables ;
Dans ce document, nous partons du principe que vous êtes déjà rompu à la création et la modification de modèles. Consultez le document Création de modèles de page qui détaille les fonctionnalités des modèles modifiables telles qu’elles sont présentées au créateur d’un modèle.
Le tutoriel suivant peut également s’avérer intéressant pour configurer un modèle de page modifiable dans un nouveau projet :
Prise en main d’AEM Sites Partie 2 - Création d’une page et d’un modèle de base
La création de modèles modifiables s’effectue essentiellement à l’aide de la console de modèles et de l’éditeur de modèles. Cette tâche est de la responsabilité d’une personne spécialisée dans la création de modèles. Cette section vous donne un aperçu de ce processus. Elle décrit ensuite ce qui se passe au niveau technique.
Pour plus d’informations sur l’utilisation de modèles modifiables dans un projet AEM, voir Création d’un projet AEM à l’aide de Lazybones.
Lors de la création d’un modèle modifiable :
Créez un dossier pour les modèles. Ce dossier n’est pas obligatoire, mais il fait partie des bonnes pratiques recommandées.
Sélectionnez un type de modèle. Ce type est copié afin de créer la définition du modèle.
Une sélection de types de modèles prêts à l’emploi est fournie. Vous pouvez également créer vos propres types de modèles spécifiques à un site, si nécessaire.
Configurez la structure, les politiques de contenu, le contenu initial et la mise en page du nouveau modèle.
Structure
La structure permet de définir les composants et le contenu de votre modèle.
Les composants définis dans la structure du modèle ne peuvent pas être déplacés sur une page créée ni supprimés des pages créées.
We.Retail
exemple de contenu, vous pouvez choisir des composants de base ou utiliser des composants principaux.Si vous souhaitez que les personnes créant les pages puissent ajouter et supprimer des composants, ajoutez un système de paragraphes au modèle.
Les composants peuvent être déverrouillés et reverrouillés pour vous permettre de définir le contenu initial.
Pour plus d’informations sur la façon dont un créateur de modèles définit la structure, voir Création de modèles de page.
Pour connaître les détails techniques de la structure, consultez la section Structure de ce document.
Politiques
Les politiques de contenu définissent les propriétés de conception d’un composant.
Ces politiques s’appliquent au modèle (et aux pages créées avec le modèle).
Pour plus d’informations sur la façon dont une personne créant des modèles définit des politiques, voir Création de modèles de page.
Pour connaître les détails techniques des politiques, consultez la section Politiques de contenu de ce document.
Contenu initial
Pour plus d’informations sur la façon dont un créateur de modèles définit la structure, voir Création de modèles de page.
Pour plus d’informations techniques sur le contenu initial, reportez-vous à la rubrique Contenu initial de ce document.
Disposition
Pour plus d’informations sur la façon dont le créateur d’un modèle définit la mise en page de ce dernier, voir Création de modèles de page.
Pour plus d’informations techniques sur la mise en page d’un modèle, reportez-vous à la rubrique mise en page de ce document.
Activez le modèle, puis autorisez-le pour des arborescences de contenu spécifiques.
Pour plus d’informations sur la façon dont un créateur de modèles active un modèle, voir Création de modèles de page.
Pour obtenir des informations techniques sur l’activation d’un modèle, consultez la section Activation et autorisation d’un modèle à utiliser dans ce document
Utilisez-le pour créer des pages de contenu.
Pour plus d’informations sur la façon dont un créateur de pages utilise le modèle afin de créer une page, voir Création et organisation des pages.
Pour obtenir des informations techniques sur la création de pages à l’aide de modèles modifiables, consultez la section Pages de contenu créées de ce document.
Ne saisissez jamais d’informations qui doivent être internationalisées dans un modèle. Pour l’internationalisation, il est recommandé d’utiliser la fonction de localisation des composants principaux.
Les modèles sont des outils puissants pour rationaliser votre processus de création de page. Cependant, un nombre excessif de modèles peut submerger les auteurs et semer la confusion dans la création de pages. Une bonne règle d’or consiste à maintenir le nombre de modèles au-dessous de 100.
Adobe ne recommande pas d’avoir plus de 1 000 modèles en raison des impacts potentiels sur le rendement.
La bibliothèque cliente de l’éditeur suppose la présence de l’espace de noms cq.shared
dans les pages de contenu. S’il est absent, l’erreur JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
s’affiche.
cq.shared
est inclus dans tous les exemples de pages de contenu. Par conséquent, tout contenu basé sur ces pages inclut automatiquement cq.shared
. Toutefois, si vous décidez de créer vos propres pages de contenu à partir de zéro, sans vous servir de l’exemple de contenu, vous devez veiller à inclure l’espace de noms cq.shared
.
Pour plus d’informations, voir Utilisation des bibliothèques côté client.
Pour organiser vos modèles, vous pouvez utiliser les dossiers suivants :
Bien que vous puissiez imbriquer vos dossiers, lorsque l’utilisateur ou l’utilisatrice les visualise dans la console Modèles, ils sont présentés sous la forme d’une structure plate.
Dans une instance d’AEM standard, le dossier global existe déjà dans la console de modèles. Ce dossier contient les modèles par défaut et fait office de dossier de rechange si le dossier actif ne contient pas de politiques et/ou de types de modèles. Vous pouvez ajouter vos modèles par défaut à ce dossier ou créer un dossier (recommandé).
Il est conseillé de créer un dossier pour stocker vos modèles personnalisés et de ne pas utiliser le dossier global.
Les dossiers doivent être créés par un utilisateur disposant des droits admin
.
Les types de modèles et les politiques sont hérités dans tous les dossiers selon l’ordre de priorité suivant :
/conf/global
/apps
/libs
Une liste de toutes les entrées autorisées est créée. Si des configurations se chevauchent (path
/label
), seule l’instance la plus proche du dossier actif s’affiche pour l’utilisateur.
Il existe plusieurs manières de créer un dossier.
Un nouveau dossier (sous /conf) peut être créé pour votre instance, soit par programmation soit avec CRXDE Lite.
La structure suivante doit être utilisée :
/conf
<your-folder-name> [sling:Folder]
settings [sling:Folder]
wcm [cq:Page]
templates [cq:Page]
policies [cq:Page]
Vous pouvez ensuite définir les propriétés suivantes sur le nœud racine du dossier :
<your-folder-name> [sling:Folder]
Nom : jcr:title
Type : String
Valeur : titre (du dossier) que vous souhaitez afficher dans la console Modèles.
Outre les autorisations et les droits de création standard (par exemple, content-authors
), vous devez maintenant attribuer les groupes et définir les droits d’accès nécessaires (listes de contrôle d’accès, ACL) pour que les créateurs et les créatrices puissent créer des modèles dans le nouveau dossier.
Le groupe template-authors
est le groupe par défaut qui doit être attribué. Pour plus d’informations, consultez la section suivante ACL et groupes.
Pour plus d’informations sur la gestion et l’affectation de droits d’accès, consultez la section Gestion des droits d’accès.
Accédez à Navigation globale > Outils > Explorateur de configurations.
Les dossiers existants sont répertoriés à gauche, y compris le dossier Global.
Cliquez sur Créer.
Les champs suivants doivent être configurés dans la boîte de dialogue Créer une configuration :
Cliquez sur Créer.
Dans le navigateur de configurations, vous pouvez modifier le dossier global et activer l’option Modèles modifiables si vous souhaitez créer des modèles dans ce dossier. Toutefois, cette pratique n’est pas recommandée.
Pour plus d’informations, consultez la documentation relative au Navigateur de configuration.
Une fois les dossiers modèles créés (soit par CRXDE, soit par le navigateur de configuration), des ACL doivent être définies pour les groupes appropriés pour les dossiers modèles afin d’assurer une sécurité adéquate.
Les dossiers de modèles de l’We.Retail
implémentation de référence peuvent être utilisés à titre d’exemple.
Le groupe template-authors
est utilisé pour gérer l’accès aux modèles. Il est fourni en standard avec AEM, mais il est vide. Les utilisateurs doivent donc être ajoutés au groupe pour le projet/site.
Le groupe template-authors
est uniquement pour les utilisateurs et les utilisatrices qui doivent pouvoir créer des modèles.
La modification des modèles est une fonctionnalité très puissante qui, si elle n’est pas exécutée correctement, peut entraîner l’échec des modèles existants. Par conséquent, ce rôle doit être ciblé et ne doit inclure que des utilisateurs et utilisatrices qualifiés.
Le tableau suivant présente les autorisations nécessaires à l’édition de modèles.
Chemin | Rôle/Groupe | Autorisations |
Description |
---|---|---|---|
/conf/<your-folder>/settings/wcm/templates |
Créateurs de modèles |
lecture, écriture, réplication | Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans l’espace spécifique au site /conf . |
Utilisateur web anonyme | lecture | L’utilisateur web anonyme doit lire les modèles lors du rendu d’une page. | |
Auteurs de contenu | réplication | Lors de l’activation d’une page, les créateurs et créatrices de contenu doivent activer les modèles correspondants. | |
/conf/<your-folder>/settings/wcm/policies |
Template Author |
lecture, écriture, réplication | Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans l’espace spécifique au site /conf . |
Utilisateur web anonyme | lecture | L’utilisateur web anonyme doit lire les politiques lors du rendu d’une page. | |
Auteurs de contenu | réplication | Les auteurs et autrices de contenu doivent activer les politiques d’un modèle de page lors de l’activation d’une page. | |
/conf/<site>/settings/template-types |
Créateur de modèles | lecture | La personne créant des modèles crée un modèle basé sur l’un des types de modèles prédéfinis. |
Utilisateur web anonyme | aucune | L’utilisateur web anonyme ne doit pas accéder aux types de modèles. |
Ce groupe template-authors
par défaut couvre les configurations de projet dans lesquelles tous les membres de template-authors
sont autorisés à accéder à l’ensemble des modèles et à en créer. Pour les configurations plus complexes, lorsque plusieurs groupes de personnes créant des modèles sont nécessaires pour séparer l’accès aux modèles, vous devez créer davantage de groupes de personnes créant des modèles personnalisés. Toutefois, les autorisations des groupes de personnes créant des modèles restent les mêmes.
Ne stockez pas de modèles dans /conf/global
. Cependant, pour certaines installations héritées, il se peut qu’il y ait encore des modèles à cet emplacement. Dans ce cas uniquement, les chemins d’accès suivants /conf/global
doivent être configurés explicitement.
Chemin | Rôle/Groupe | Autorisations |
Description |
---|---|---|---|
/conf/global/settings/wcm/templates |
Créateurs de modèles | lecture, écriture, réplication | Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans /conf/global |
Utilisateur web anonyme | lecture | L’utilisateur web anonyme doit lire les modèles lors du rendu d’une page. | |
Auteurs de contenu | réplication | Les personnes créant du contenu doivent activer les modèles d’une page lors de l’activation de celle-ci. | |
/conf/global/settings/wcm/policies |
Template Author |
lecture, écriture, réplication | Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans /conf/global |
Utilisateur web anonyme | lecture | L’utilisateur web anonyme doit lire les politiques lors du rendu d’une page. | |
Auteurs de contenu | réplication | Les auteurs et autrices de contenu doivent activer les politiques d’un modèle de page lors de l’activation d’une page. | |
/conf/global/settings/wcm/template-types |
Créateur de modèles | lecture | La personne créant des modèles crée un modèle basé sur l’un des types de modèles prédéfinis. |
Utilisateur web anonyme | aucune | L’utilisateur web anonyme ne doit pas accéder aux types de modèles. |
Lors de la création d’un modèle, indiquez un type de modèle :
Les types de modèle fournissent de façon efficace des modèles pour un modèle. Lors de la création d’un modèle, la structure et le contenu initial du type de modèle sélectionné sont utilisés pour créer le modèle.
Les types de modèle permettent de définir :
AEM fournit une petite sélection de types de modèle prêts à l’emploi tels que la Page HTML5 et la Page de formulaire adaptatif.
We.Retail
exemple de contenu.Les types de modèle sont généralement définis par les développeurs et les développeuses.
Les types de modèles prêts à l’emploi sont stockés sous :
/libs/settings/wcm/template-types
Ne modifiez rien dans le chemin d’accès /libs
. Cela est dû au fait que le contenu du /libs
sera remplacé lors de la prochaine mise à niveau de votre instance (et peut être remplacé lorsque vous appliquez un correctif ou un pack de fonctionnalités).
Les types de modèle spécifiques à un site doivent être stockés dans l’emplacement comparable :
/apps/settings/wcm/template-types
Les définitions de vos types de modèle personnalisés doivent être stockées dans des dossiers définis par l’utilisateur (ce qui est recommandé) ou bien dans global
. Par exemple :
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/template-types
/conf/<my-folder>/settings/wcm/template-types
/conf/global/settings/wcm/template-types
Les types de modèle doivent respecter la structure de dossiers correcte (à savoir /settings/wcm/...
). Dans le cas contraire, ils seront introuvables.
Les groupes de terminaux utilisés pour un modèle modifiable (défini en tant que chemin d’accès relatif de la propriété cq:deviceGroups
) définissent les terminaux mobiles disponibles comme émulateurs dans le mode de mise en page de la création de pages. Vous pouvez définir cette valeur à deux emplacements :
Lors de la création d’un modèle modifiable, la valeur est copiée du type de modèle vers le modèle individuel. Si la valeur n’est pas définie sur le type, elle peut être définie sur le modèle. Une fois le modèle créé, il n’hérite d’aucun élément du type.
La valeur de cq:deviceGroups
doit être définie en tant que chemin d’accès relatif, tel que mobile/groups/responsive
, et non comme chemin d’accès absolu, comme /etc/mobile/groups/responsive
.
Avec les modèles statiques, la valeur de cq:deviceGroups
peut être définie à la racine du site.
Avec les modèles modifiables, cette valeur est désormais stockée au niveau du modèle et n’est pas prise en charge au niveau racine de la page.
Si vous avez créé un modèle qui peut servir de base pour d’autres modèles, vous pouvez le copier en tant que type de modèle.
templates
dans le nœud template-types
sous le dossier de modèles.templates
sous le dossier de modèles.template-types
, supprimez toutes les propriétés cq:template
et cq:templateType
de tous les nœuds jcr:content
.Vous pouvez également développer votre propre type de modèle en utilisant un exemple de modèle modifiable comme base (disponible sur GitHub).
Code sur Github
Vous pouvez trouver le code de cette page sur GitHub.
Les définitions des modèles modifiables sont stockées dans des dossiers définis par l’utilisateur (ce qui est recommandé) ou bien dans global
. Par exemple :
/conf/<my-folder>/settings/wcm/templates
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/templates
/conf/global/settings/wcm/templates
Le nœud racine du modèle est de type cq:Template
avec la structure suivante :
<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
Les éléments principaux sont les suivants :
<template-name>
[initial](#initial-content)
jcr:content
[structure](#structure)
[policies](#policies)
thumbnail.png
Ce nœud contient des propriétés pour le modèle :
Nom : jcr:title
Nom : status
Type : String
Valeur : draft
, enabled
, ou disabled
.
Définit la structure de la page créée :
Est fusionnée avec le contenu (/initial
) lors de la création d’une page.
Les modifications apportées à la structure sont répercutées dans toutes les pages créées avec le modèle.
Le nœud root
(structure/jcr:content/root
) définit la liste des composants qui seront disponibles dans la page créée.
Les composants définis dans la structure du modèle ne peuvent être ni déplacés ni supprimés dans les pages créées.
Une fois qu’un composant est déverrouillé, la propriété editable
est définie sur true
.
Dès qu’un composant ayant déjà du contenu est déverrouillé, son contenu est déplacé vers la branche initial
.
Le nœud cq:responsive
contient des définitions pour la mise en page réactive.
Définit le contenu initial dont une nouvelle page disposera au moment de sa création :
jcr:content
copié dans toute nouvelle page./structure
) lors de la création d’une page.root
contient une liste de composants permettant de définir les éléments qui seront disponibles dans la page créée.Lors de la modification d’un modèle, vous pouvez définir la mise en page et utiliser une mise en page réactive standard qui peut également être configurée.
Les politiques de contenu (ou de conception) définissent les propriétés de conception d’un composant, telles que les disponibilité du composant ou les dimensions minimales/maximales. Ces politiques s’appliquent au modèle (et aux pages créées avec le modèle). Les politiques de contenu peuvent être créées et sélectionnées dans l’éditeur de modèles.
La propriété cq:policy
, sur le nœud root
/conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root
Fournit une référence relative à la politique de contenu pour le système de paragraphes de la page.
La propriété cq:policy
, sur les nœuds component-explicit sous root
, fournit des liens vers les politiques relatives aux composants individuels.
Les définitions de politique réelles sont stockées sous :
/conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
Les chemins d’accès des définitions de politique dépendent du chemin du composant. La cq:policy
contient une référence relative à la configuration proprement dite.
L’éditeur de page ne propose pas de mode de conception pour les pages créées à partir de modèles modifiables.
L’arborescence policies
d’un modèle modifiable présente la même hiérarchie que la configuration du mode de conception d’un modèle statique sous :
/etc/designs/<my-site>/jcr:content/<component-name>
La configuration du mode de conception d’un modèle statique a été définie par composant de page.
Les stratégies de page vous permettent de définir stratégie de contenu pour la page (parsys principal), dans le modèle ou les pages créées.
Activer le modèle
Pour qu’un modèle puisse être utilisé, il doit être activé par l’un des moyens suivants :
Activer le modèle à partir de la console des Modèles.
Définir la propriété de statut sur le nœud jcr:content
.
Par exemple, sous :
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
Définissez la propriété :
enabled
Modèles autorisés
Définissez les chemins d’accès aux modèles autorisés dans les Propriétés de la page de la page appropriée ou de la page racine d’une sous-branche.
Définissez la propriété :
cq:allowedTemplates
Sur le nœud jcr:content
de la branche requise.
Par exemple, avec la valeur suivante :
/conf/<your-folder>/settings/wcm/templates/.*
Les pages créées à partir de modèles modifiables :
sont créées avec une sous-arborescence qui est fusionnée à partir de structure
et initial
dans le modèle ;
contiennent des références aux informations contenues dans le modèle et le type de modèle. Vous pouvez utiliser cette fonctionnalité avec un nœud jcr:content
ayant les propriétés suivantes :
cq:template
Fournit la référence dynamique au modèle proprement dit ; fait en sorte que les modifications apportées au modèle soient répercutées sur les pages proprement dites.
cq:templateType
Fournit une référence au type de modèle.
Le schéma ci-dessus montre la corrélation entre les modèles, le contenu et les composants :
Contrôleur – /content/<my-site>/<my-page>
Page résultante référençant le modèle. Le contenu contrôle l’ensemble du processus. En fonction des définitions, il accède au modèle et aux composants appropriés.
Configuration – /conf/<my-folder>/settings/wcm/templates/<my-template>
Le modèle et les politiques de contenu associées définissent la configuration de la page.
Modèle – Lots OSGi
Les lots OSGi mettent en œuvre la fonctionnalité.
Vue – /apps/<my-site>/components
Dans les environnements de création et de publication, le contenu est rendu par des composants.
Lors du rendu d’une page :
Modèles :
cq:template
de son nœud jcr:content
sera référencée afin d’accéder au modèle correspondant à cette page.Composants :
Le composant de page fusionnera l’arborescence structure/jcr:content
du modèle avec l’arborescence jcr:content
de la page.
Le composant de page autorise uniquement l’auteur ou l’autrice à modifier les nœuds de la structure du modèle qui ont été marqués comme étant modifiables (ainsi que ses éventuels enfants).
Lors du rendu d’un composant sur une page, le chemin d’accès relatif de ce composant est prélevé dans le nœud jcr:content
; une recherche est ensuite effectuée dans le même emplacement sous le nœud policies/jcr:content
du modèle.
La propriété cq:policy
de ce nœud pointe vers la politique de contenu proprement dite (en d’autres termes, elle contient la configuration de conception de ce composant).
Cette fonctionnalité vous permet de disposer de plusieurs modèles réutilisant les mêmes configurations de politiques de contenu.