Un modèle sert à créer une page. Il définit les composants pouvant être utilisés dans l’étendue sélectionnée. Un modèle est une hiérarchie de nœuds qui a la même structure que la page à créer, mais sans contenu réel.
Chaque modèle présente une sélection de composants disponibles.
Les Modèles modifiables sont également disponibles. Il s’agit du type de modèle recommandé pour une flexibilité maximale et les fonctionnalités les plus récentes.
Un modèle est un nœud de type cq:Template et possède les propriétés et les nœuds enfants suivants :
Nom |
Type |
Description |
. |
cq:Template | Modèle actuel. Un modèle possède le type de nœud cq:Template. |
allowedChildren | Chaîne[] | Chemin d’accès du modèle autorisé comme enfant de ce modèle. |
allowedParents | Chaîne[] | Chemin d’accès du modèle autorisé comme parent de ce modèle. |
allowedPaths | Chaîne[] | Chemin d’accès d’une page qui peut être basée sur ce modèle. |
jcr:created | Date | Date de création du modèle. |
jcr:description | Chaîne | Description du modèle. |
jcr:title | Chaîne | Titre du modèle. |
classement | Long | Classement du modèle. Utilisé pour afficher le modèle dans l’interface utilisateur. |
jcr:content | cq:PageContent | Nœud contenant le contenu du modèle. |
thumbnail.png | nt:file | Miniature du modèle. |
icon.png | nt:file | Icône du modèle. |
Un modèle sert de fondement pour une page.
Pour créer une page, le modèle doit être copié (node-tree /apps/<myapp>/template/<mytemplate>
) vers la position correspondante dans l’arborescence : c’est ce qui se passe si une page est créée en utilisant l’onglet Sites web.
Cette action de copie confère également à la page son contenu initial (généralement le contenu de niveau supérieur uniquement) et la propriété sling:resourceType, le chemin d’accès au composant de page utilisé pour rendre la page (tout ce qui est présent dans le nœud enfant jcr:content).
Il y a deux aspects à considérer :
Un modèle est créé sous un nœud de type cq:Template.
Différentes propriétés peuvent être définies, en particulier :
Ce nœud contient un nœud jcr:content (cq:PageContent) qui sert de base au nœud de contenu des pages résultantes. Cela référence, au moyen de sling:resourceType, le composant à utiliser pour rendre le contenu réel d’une nouvelle page.
Ce composant est utilisé pour définir la structure et la conception du contenu lors de la création d’une page.
Les modèles servent à créer des pages de type cq:Page
(comme mentionné précédemment, une page est un type spécial de composant). Chaque page AEM possède un nœud structuré jcr:content
. Celui-ci :
sling:resourceType
pour référencer le composant contenant les scripts sling utilisés pour le rendu du contenu.AEM offre un certain nombre de modèles par défaut prêts à l’emploi. Dans certaines situations, vous pouvez utiliser les modèles tels quels. Dans ce cas, vous devez vous assurer que le modèle est disponible pour votre site Web.
Par exemple, AEM s’accompagne de plusieurs modèles, dont contentpage et homepage.
Titre | Composant | Emplacement | Objectif |
---|---|---|---|
Page d’accueil | homepage | geometrixx | Modèle de page d’accueil de Geometrixx. |
Page de contenu | contentpage | geometrixx | Modèle de page de contenu de Geometrixx. |
Pour voir la liste de tous les modèles disponibles dans le référentiel, procédez comme suit :
Dans CRXDE Lite, ouvrez le menu Outils, puis cliquez sur Requête.
Dans l’onglet Requête :
Indiquez le Type XPath.
Dans le champ de saisie Requête, entrez la chaîne suivante :
//element(*, cq:Template)
Cliquez sur Exécuter. La liste s’affiche dans la zone des résultats.
Dans la plupart des cas, c’est à partir d’un modèle existant que vous élaborerez un nouveau modèle pour votre usage personnel. Pour plus d’informations, voir Développement de modèles de page.
Afin d’activer un modèle existant pour votre site web et de l’afficher dans la boîte de dialogue Créer une page lors de la création d’une page directement sous Sites web à partir de la console Sites web, définissez la propriété allowedPaths du nœud de modèle sur : /content(/.&?lang=fr#42;)?
Lorsque des styles sont définis dans l’interface utilisateur à l’aide du mode Conception, la conception est conservée à l’emplacement exact du nœud de contenu pour lequel le style est défini.
Adobe recommande de n’appliquer des conceptions que via le mode de Conception.
La modification de conceptions dans CRX DE, par exemple, n’est pas recommandée et l’application de ces conceptions risque de provoquer un comportement imprévu.
Si les conceptions ne sont appliquées qu’en mode de conception, les sections suivantes, la Résolution du chemin de conception, l’Arborescence de décision et l’Exemple ne sont pas applicables.
Lors du rendu du contenu à partir d’un modèle statique, AEM tentera d’appliquer la conception et les styles les plus pertinents pour le contenu, en parcourant la hiérarchie du contenu.
AEM détermine le style le plus pertinent pour un nœud de contenu dans l’ordre suivant :
Dans les deux derniers cas, s’il existe plusieurs conceptions applicables, utilisez celle la plus proche du nœud de contenu.
Il s’agit d’une représentation graphique de la logique de Résolution du chemin de conception.
Penchez-vous sur une simple structure de contenu comme celle qui suit, où une conception peut s’appliquer à l’un des nœuds :
/root/branch/leaf
Le tableau suivant décrit comment AEM choisira une conception.
Recherche de conception pour |
Conceptions existent pour |
Conception choisie |
Commentaire |
leaf
|
|
leaf |
La correspondance la plus exacte est toujours choisie. |
leaf |
|
branch |
Revenez à la correspondance la plus proche dans l’arborescence. |
leaf |
root |
root |
Si tout le reste échoue, prenez ce qui reste. |
branch |
branch |
branch |
|
branch |
|
branch |
|
branch |
|
branch |
|
branch |
|
root |
S’il n’y a pas de correspondance exacte, prenez celle située plus bas dans l’arborescence. Partez du principe que cette logique est toujours applicable mais remonter trop haut dans l’arborescence peut être trop spécifique. |
Les modèles de pages AEM sont simplement des modèles utilisés pour créer des pages. Ils peuvent contenir autant de contenu initial que nécessaire, leur rôle étant de créer des structures de nœuds correctes avec les propriétés requises (principalement sling:resourceType) définies pour permettre la modification et le rendu.
Inutile de dire qu’un nouveau modèle peut être entièrement créé de toutes pièces, mais en pratique un modèle existant est copié et modifié pour faire gagner du temps. Par exemple, les modèles Geometrixx peuvent servir de point de départ.
Pour créer un modèle d’après un modèle existant :
Copiez un modèle existant (de préférence avec une définition aussi proche que possible de ce que vous souhaitez réaliser) sur un nouveau nœud.
Les modèles sont généralement stockés dans /apps/<nom-siteweb>/templates/<nom-modèle>.
La liste des modèles disponibles dépend de l’emplacement de la nouvelle page et des restrictions de positionnement spécifiées dans chaque modèle. Voir Disponibilité des modèles.
Changez le jcr:title du nouveau nœud de modèle de manière à refléter son nouveau rôle. Vous pouvez également mettre à jour jcr:description si nécessaire. Veillez à modifier la disponibilité du modèle de la page, le cas échéant.
Pour afficher le modèle dans la boîte de dialogue Créer une page lors de la création d’une page directement sous Sites web à partir de la console Sites web, définissez la propriété allowedPaths
du nœud de modèle sur : /content(/.*)?
.
Copiez le composant sur lequel le modèle est basé (ceci est indiqué par la propriété sling:resourceType du nœud jcr:content dans le modèle) pour créer une nouvelle instance.
Les composants sont généralement stockés dans /apps/<nom-siteweb>/components/<nom-composant>.
Mettez à jour les propriétés jcr:title et jcr:description du nouveau composant.
Remplacez thumbnail.png si vous souhaitez afficher une nouvelle vignette dans la liste de sélection de modèles (taille 128 x 98 px).
Mettez à jour le sling:resourceType du nœud jcr:content du modèle pour référencer le nouveau composant.
Apportez d’autres modifications aux fonctionnalités ou à la conception du modèle et/ou de son composant sous-jacent.
Les modifications apportées au nœud /apps/<site Web>/templates/<nom-modèle> sont répercutées sur l’instance du modèle (comme dans la liste de sélection).
Les modifications apportées au nœud /apps/<site Web>/components/<nom-composant> sont répercutées sur la page de contenu créée lorsque le modèle est utilisé.
Vous pouvez à présent créer une page sur votre site Web en vous servant du nouveau modèle.
La bibliothèque cliente de l’éditeur suppose que l’espace de noms cq.shared
existe dans les pages de contenu. Si cet élément est absent, l’erreur JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
est renvoyée.
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.
Cet exemple illustre comment autoriser l’utilisation d’un modèle pour certains chemins de contenu. Les modèles disponibles pour l’auteur de la page lors de la création de pages sont déterminés par la logique définie dans Disponibilité du modèle.
Dans CRXDE Lite, accédez au modèle que vous souhaitez utiliser pour votre page, par exemple, le modèle Newsletter.
Modifiez la propriété allowedPaths
et les autres propriétés utilisées pour la disponibilité du modèle. Par exemple, allowedPaths
: /content/geometrixx-outdoors/[^/]+(/.*)?
signifie que ce modèle est autorisé dans tous les chemins sous /content/geometrixx-outdoors
.