Show Menu
SUJETS×

Modèles de page

Lors de la création d’une page, vous devez sélectionner un modèle. Le modèle de page est utilisé comme base pour la nouvelle page. Le modèle définit la structure de la page créée, le contenu initial et les composants qui peuvent être utilisés (propriétés de conception). Il présente plusieurs avantages :
  • Page Templates allow specialized authors to create and edit templates .
    • Ces auteurs spécialisés sont connus sous le nom de créateurs (ou auteurs) de modèles .
    • Les créateurs de modèles doivent être membres du groupe template-authors .
  • Les modèles de page conservent une connexion dynamique à toutes les pages créées à partir d'eux. De cette manière, toute modification apportée au modèle est répercutée dans les pages proprement dites.
  • Les modèles de page rendent le composant de page plus générique afin que le composant de page principal puisse être utilisé sans personnalisation.
Avec les modèles de page, les éléments qui créent une page sont isolés dans les 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.
Ce document :
  • Donne un aperçu de la création d'un modèle de page
  • décrit les tâches d’administration/de développement requises pour créer des modèles modifiables ;
  • décrit les bases techniques des modèles modifiables.
  • Décrit comment AEM évalue la disponibilité d’un modèle
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 didacticiel WKND explique en détail comment utiliser les modèles de page en implémentant un exemple et est très utile pour comprendre comment configurer un modèle dans un nouveau projet.

Création d’un modèle

Creating Page Templates is primarily done with the template console and template editor by a template author. Cette section vous donne un aperçu de ce processus. Elle décrit ensuite ce qui se passe au niveau technique.
Lors de la création d’un modèle modifiable :
  1. Créez un dossier pour les modèles . Il ne s’agit pas d’une pratique obligatoire, mais vivement recommandée.
  2. Sélectionnez un type de modèle . Il est copié afin de créer la définition du modèle .
    Une sélection de types de modèle prêts à l’emploi est fournie. Au besoin, vous pouvez également créer vos propres types de modèles spécifiques à un site .
  3. Configurez la structure, les stratégies de contenu, le contenu initial et la disposition du nouveau modèle.
    Structure
    • La structure vous 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 être ni déplacés ni supprimés dans les pages créées.
    • Si vous souhaitez que les créateurs de 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 que vous puissiez 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.
    Stratégies
    • Les stratégies de contenu définissent les propriétés de conception d’un composant.
      • Par exemple, les composants disponibles ou les dimensions minimales/maximales.
    • Elles s’appliquent au modèle (et aux pages créées avec le modèle).
    Pour plus d’informations sur la façon dont un créateur de modèles définit des stratégies, voir  Création de modèles de page .
    Pour connaître les détails techniques des stratégies, consultez la section Stratégies de contenu de ce document.
    Contenu initial
    • Le contenu initial définit le contenu qui s’affiche lors de la création d’une page basée sur le modèle.
    • Le contenu initial peut ensuite être modifié par les créateurs de la page.
    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 du contenu initial, consultez la section Contenu initial de ce document.
    Mise en page
    • Vous pouvez définir la mise en page du modèle pour différents appareils.
    • La mise en page réactive pour les modèles fonctionne de la même manière que pour la création de pages.
    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 connaître les détails techniques de la mise en page du modèle, consultez la section Mise en page de ce document.
  4. Activez le modèle, puis autorisez-le pour des arborescences de contenu spécifiques.
    • Un modèle peut être activé ou désactivé pour être mis à la disposition (ou non) des créateurs de pages.
    • Un modèle peut être rendu disponible ou indisponible pour certaines branches de la page.
    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
  5. Utilisez-le pour créer des pages de contenu.
    • Lorsque vous utilisez un modèle pour créer une page, il n’existe aucune différence visible ni indication permettant de distinguer les modèles statiques des modèles modifiables.
    • Pour le créateur de pages, le processus est transparent.
    For details on how a page author uses templates to create a page, see Creating and Organizing 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.
The editor client library assumes the presence of the cq.shared namespace in content pages, and if it is absent the JavaScript error Uncaught TypeError: Cannot read property 'shared' of undefined will result.
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 .
Ne saisissez jamais d’informations qui doivent être internationalisées dans un modèle.

Dossiers de modèles

Pour organiser vos modèles, vous pouvez utiliser les dossiers suivants :
  • global
  • Spécifique au site
Bien que vous puissiez imbriquer vos dossiers, lorsque l’utilisateur les visualise dans la console Modèles , ils sont présentés sous la forme d’une structure plate.
Dans une instance AEM standard, le dossier global existe déjà dans la console de modèles. Il contient les modèles par défaut et fait office de dossier de rechange si le dossier actif ne contient pas de stratégies et/ou de types de modèles. Vous pouvez soit ajouter vos modèles par défaut à ce dossier, soit créer un dossier (recommandé).
It is best practice to create a new folder to hold your customized templates and not to use the global folder.
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 :
  1. Le dossier actuel
  2. Parent(s) du dossier actuel
  3. /conf/global
  4. /apps
  5. /libs
Une liste de toutes les entrées autorisées est créée. If any configurations overlap ( path / label ), only the instance closest to the current folder is presented to the user.
Pour créer un dossier, vous pouvez procéder de l’une des façons suivantes :
  • Soit par programmation, soit en utilisant CRXDE Lite
  • En utilisant l’explorateur de configurations

Utilisation de CRXDE Lite

  1. Un nouveau dossier (sous /conf) peut être créé pour votre instance par programmation ou avec un CRXDE Lite.
    La structure ci-dessous doit être utilisée :
    /conf
        <your-folder-name> [sling:Folder]
            settings [sling:Folder]
                wcm [cq:Page]
                    templates [cq:Page]
                    policies [cq:Page]
    
    
  2. Vous pouvez ensuite définir les propriétés ci-dessous 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 .
  3. Outre les autorisations et les droits de création standard (par exemple, content-authors ), vous devez maintenant affecter les groupes et définir les droits d’accès nécessaires (listes de contrôle d’accès) pour que les créateurs puissent créer des modèles dans le nouveau dossier.
    Le groupe template-authors est le groupe par défaut qui doit être affecté. See the section ACLs and Groups for details.

Utilisation de l’explorateur de configurations

  1. Accédez à Navigation globale  -> Outils  > Explorateur de configurations .
    The existing folders are listed to the left including the global folder.
  2. Cliquez sur Créer .
  3. In the Create Configuration dialog the following fields need to be configured:
    • Titre  : indiquez un titre pour le dossier de configuration.
    • Modèles modifiables  : cochez la case pour autoriser les modèles modifiables dans ce dossier.
  4. Cliquez sur Créer
Dans l’explorateur 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. Il ne s’agit toutefois pas de la méthode recommandée.

ACL et groupes

Une fois vos dossiers de modèles créés (soit via CRXDE, soit à l’aide de l’explorateur de configurations), des listes de contrôle d’accès (ACL) doivent être définies pour les groupes appropriés afin que les dossiers de modèles garantissent une protection adéquate.
The template folders for the WKND tutorial can be used as an example.

Groupe template-authors

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 destiné uniquement aux utilisateurs qui doivent pouvoir créer des modèles.
La modification de modèles est très puissante et si elle n'est pas effectuée correctement, les modèles existants peuvent être endommagés. Par conséquent, ce rôle doit être ciblé et ne contenir que des utilisateurs qualifiés.
Le tableau suivant récapitule les autorisations nécessaires pour la modification de modèles.
Chemin Rôle/Groupe Autorisations Description
/conf/< your-folder >/settings/wcm/templates Template Authors lecture, écriture, réplication Les auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans un /conf espace spécifique au site
Utilisateur Web anonyme lire L'utilisateur Web anonyme doit lire les modèles lors du rendu d'une page.
Auteurs de contenu répliquer Les auteurs replicateContent doivent activer les modèles d’une page lors de l’activation d’une page.
/conf/< your-folder >/settings/wcm/policies Template Author lecture, écriture, réplication Les auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans un /conf espace spécifique au site
Utilisateur Web anonyme lire L’utilisateur Web anonyme doit lire les stratégies lors du rendu d’une page.
Auteurs de contenu répliquer Les auteurs de contenu doivent activer les stratégies d’un modèle de page lors de l’activation d’une page.
/conf/<site>/settings/template-types Auteur de modèle lire L’auteur de modèles crée un modèle basé sur l’un des types de modèles prédéfinis.
Utilisateur Web anonyme none L'utilisateur Web anonyme ne doit pas accéder aux types de modèles
This default template-authors group only covers the project setups, where all template-authors members are allowed to access and author all templates. S’agissant des configurations plus complexes, dans lesquelles plusieurs groupes d’auteurs de modèles sont nécessaires pour séparer l’accès aux modèles, il convient de créer davantage de groupes de ce type. Cependant, les autorisations relatives aux groupes d’auteurs de modèles restent les mêmes.

Type de modèle

Lors de la création d’un modèle, vous devez spécifier un type :
  • Ces types de modèle fournissent effectivement des modèles pour un modèle. Lors de la création d’un modèle, la structure et le contenu initial du type sélectionné sont utilisés.
    • Le type est copié afin de créer le modèle.
    • Une fois la copie effectuée, la seule connexion entre le modèle et son type est une référence statique à des fins d’information.
  • Les types de modèle vous permettent de définir les éléments suivants :
    • Le type de ressource du composant de page.
    • La stratégie du nœud racine, laquelle définit les composants autorisés dans l’éditeur de modèles.
    • Il est recommandé de définir les points d’arrêt pour la grille réactive et la configuration de l’émulateur mobile au niveau du type d’émulateur.
  • AEM fournit une petite sélection de types de modèle prêts à l’emploi tels que Page HTML5 et Page de formulaire adaptatif.
    • Des exemples supplémentaires sont fournis dans le didacticiel de WKND.
  • En règle générale, les types de modèle sont définis par des développeurs.
Les types de modèle prêts à l’emploi sont stockés sous :
  • /libs/settings/wcm/template-types
Vous ne devez rien modifier dans le chemin /libs . Cela est dû au fait que le contenu de /libs peut être remplacé à tout moment par une mise à jour de AEM.
Les types de modèle spécifiques à un site doivent être stockés dans l’emplacement comparable :
  • /apps/settings/wcm/template-types
Definitions for your customized templates types should be stored in user-defined folders (recommended) or alternatively in 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
The template types have to respect the correct folder structure (i.e. /settings/wcm/... ), otherwise the template types will not be found.

Création de types de modèle

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.
  1. Create a template as you would any Page Template as documented here , which will serve as the basis of your template type.
  2. À l’aide de CRXDE Lite, copiez le nouveau modèle depuis le nœud templates dans le nœud template-types sous le dossier de modèles .
  3. Delete the template from the templates node under the template folder .
  4. In the copy of the template that is under the template-types node, delete all cq:template and cq:templateType jcr:content properties.
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.

Définitions de modèle

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 l’ossature 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

jcr:content

Ce nœud contient des propriétés pour le modèle :
  • Nom  : jcr:title
  • Nom  : status
    • `` Type : String
    • Valeur : draft , enabled ou disabled

Structure

Définit la structure de la page créée :
  • Is merged with the initial content ( /initial ) when creating a new page.
  • Les modifications apportées à la structure sont répercutées dans toute page créée avec le modèle.
  • The root ( structure/jcr:content/root ) node defines the list of components that will be available in the resulting page.
    • 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 non vide est déverrouillé, son contenu est déplacé vers la branche initial .
  • The cq:responsive node holds definitions for the responsive layout.

Contenu initial

Définit le contenu initial dont une nouvelle page disposera au moment de sa création :
  • Contient un nœud jcr:content copié dans toute nouvelle page.
  • Is merged with the structure ( /structure ) when creating a new page.
  • Aucune page existante n’est mise à jour si le contenu initial est modifié après la création.
  • Le nœud root contient une liste de composants permettant de définir les éléments qui seront disponibles dans la page créée.
  • Si du contenu est ajouté à un composant en mode de structure et que ce composant est ensuite déverrouillé (ou inversement), ce contenu est utilisé comme contenu initial.

Mise en page

Lorsque vous modifiez un modèle, vous pouvez définir la mise en page , cette dernière utilise une mise en page réactive standard.

Stratégies de contenu

Les stratégies de contenu définissent les propriétés de conception d’un composant. Par exemple, les composants disponibles ou les dimensions minimales/maximales. Elles s’appliquent au modèle (et aux pages créées avec le modèle). Les stratégies de contenu peuvent être créées et sélectionnées dans l’éditeur de modèles.
  • The property cq:policy , on the root node /conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root Fournit une référence relative à la stratégie de contenu pour le système de paragraphes de la page.
  • The property cq:policy , on the component-explicit nodes under root , provide links to the policies for the individual components.
  • Les définitions de stratégie réelles sont stockées sous : /conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
Les chemins d’accès des définitions de stratégie dépendent du chemin du composant. cq:policy contient une référence relative à la configuration elle-même.

Stratégies de page

Les stratégies de page vous permettent de définir la stratégie de contenu de la page (système de paragraphes principal), soit dans le modèle soit dans les pages créées.

Activation et autorisation d’un modèle à utiliser

  1. Activation du modèle
    Avant de pouvoir être utilisé, un modèle doit être activé en effectuant l’une des opérations suivantes :
    • Activer le modèle à partir de la console Modèles .
    • Setting the status property on the jcr:content node.
      • Par exemple, on :
        /conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
      • Définissez la propriété :
        • Nom : status
        • Type : Chaîne
        • Valeur : enabled
  2. Modèles autorisés
    /conf/<your-folder>/settings/wcm/templates/.*

Pages de contenu créées

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. Pour cela, on utilise un nœud jcr:content avec 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 stratégies de contenu associées définissent la configuration de la page.
  • Model - OSGi bundles - The OSGI bundles implement the functionality.
  • View - /apps/<my-site>/components - On both the author and publish environments the content is rendered by components.
Lors du rendu d’une page :
  • Modèles :
    • The cq:template property of its jcr:content node will be referenced to access the template that corresponds to that page.
  • Composants :
    • The page component will merge the structure/jcr:content tree of the template with the jcr:content tree of the page.
      • Le composant de page autorisera uniquement l’auteur à 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.
        • The cq:policy property of this node points to the actual content policy (i.e. it holds the design configuration for that component).
          • De cette manière, vous pouvez disposer de plusieurs modèles qui réutilisent les mêmes configurations de stratégie de contenu.

Disponibilité des modèles

Lors de la création d’une page dans l’interface admin du site, 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.
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 zéro ou plusieurs expressions régulières utilisées pour la correspondance avec les chemins :
  • The cq:allowedTemplates property of the jcr:content subnode of P or an ancestor of P .
  • La allowedPaths propriété de T .
  • La allowedParents propriété de T .
  • The allowedChildren property of the template of P .
L’évaluation fonctionne comme suit :
  • The first non-empty cq:allowedTemplates property found while ascending the page hierarchy starting with P is matched against the path of T . Si aucune des valeurs ne correspond, T est rejeté.
  • If T has a non-empty allowedPaths property, but none of the values match the path of P , T is rejected.
  • If both of the above properties are either empty or non-existent, T is rejected unless it belongs to the same application as P . T appartient à la même application que P si et seulement si le nom du deuxième niveau du chemin de T est identique à celui du deuxième niveau du chemin de P . For example, the template /apps/geometrixx/templates/foo belongs to the same application as the page /content/geometrixx .
  • If T has an non-empty allowedParents property, but none of the values match the path of P , T is rejected.
  • If the template of P has a non-empty allowedChildren property, but none of the values match the path of T , T is rejected.
  • Dans tous les autres cas, T est autorisé.
Le diagramme suivant illustre le processus d’évaluation de modèle :
aem offre plusieurs propriétés pour contrôler les modèles autorisés sous Sites . Cependant, leur combinaison peut conduire à des règles très complexes, difficiles à suivre et à gérer.
Par conséquent, l’Adobe vous recommande de début simple en définissant :
  • uniquement la cq:allowedTemplates propriété
  • uniquement sur la racine du site
Pour consulter un exemple, reportez-vous au didacticiel Prise en main du développement de sites AEM – Tutoriel WKND WKND : /content/wknd/jcr:content
Les propriétés 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 cq:allowedTemplates propriétés sur des sous-sections du site si des restrictions supplémentaires s'imposent pour les modèles autorisés.
Un autre avantage est que les cq:allowedTemplates propriétés peuvent être mises à jour par un auteur 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 conserve les règles et qu’un déploiement du code soit effectué pour chaque modification.

Limitation des modèles utilisés dans les pages enfants

To limit what templates can be used to create child pages under a given page, use the cq:allowedTemplates property of jcr:content node of the page to specify the list of templates to be allowed as child pages. Each value in the list must be an absolute path to a template for an allowed child page, for example /apps/wknd/templates/page-content .
You can use the cq:allowedTemplates property on the template's jcr:content node to have this configuration applied to all newly created pages that use this template.
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.