Ce document décrit comment personnaliser les consoles de l’IU moderne et compatible avec les écrans tactiles, et ne s’applique pas à l’IU classique.
AEM comporte plusieurs mécanismes pour vous permettre de personnaliser les consoles (et la fonctionnalité de création de pages) de votre instance de création.
Clientlibs
Les bibliothèques clientes (clientlibs) vous permettent d’étendre l’implémentation par défaut afin d’obtenir la nouvelle fonctionnalité, tout en réutilisant les fonctions, objets et méthodes standard. Lors de la personnalisation, vous pouvez créer votre propre bibliothèque cliente sous /apps.
Par exemple, il peut contenir le code requis pour votre composant personnalisé.
Recouvrements
Les recouvrements reposent sur des définitions de nœud et vous permettent de superposer votre fonctionnalité personnalisée (dans /libs
) sur la fonctionnalité standard (dans /apps
). Lors de la création d’un recouvrement, une copie 1:1 de l’original n’est pas nécessaire, car la fusion de ressources Sling prend en compte l’héritage.
Ils peuvent être utilisés de différentes manières pour étendre les consoles AEM. Une petite sélection est abordée ci-dessous (à un niveau élevé).
Pour plus d’informations, voir :
Vous ne devez rien modifier dans le chemin /libs
.
En effet, le contenu de /libs
est remplacé dès que vous mettez à niveau votre instance (et risque de l’être si vous appliquez un correctif ou un Feature Pack).
La méthode recommandée pour la configuration et d’autres modifications est la suivante :
Recréez l’élément requis (tel qu’il existe dans /libs
) sous /apps
.
Apportez les modifications désirées dans /apps
.
Par exemple, les emplacements suivants dans la structure /libs
risquent d’être recouverts :
Consoles (toutes les consoles basées sur les pages de l’IU Granite), par exemple :
/libs/wcm/core/content
Consultez l’article de la base de connaissances Résolution des problèmes liés à l’IU tactile d’AEM pour découvrir d’autres conseils et outils.
Vous pouvez personnaliser le mode par défaut (colonnes, carte ou liste) pour une console :
Vous pouvez réorganiser les modes en recouvrant l’entrée requise à partir de l’emplacement suivant :
/libs/wcm/core/content/sites/jcr:content/views
La première entrée est la valeur par défaut.
Les nœuds disponibles correspondent aux options d’affichage disponibles :
column
card
list
Par exemple, dans un recouvrement de liste :
/apps/wcm/core/content/sites/jcr:content/views/list
Définissez la propriété suivante :
sling:orderBefore
String
column
Vous pouvez créer vos propres composants et inclure les bibliothèques clientes correspondantes pour des actions personnalisées. Par exemple, une action Promouvoir sur Twitter à l’emplacement :
/apps/wcm/core/clientlibs/sites/js/twitter.js
Elle peut ensuite être connectée à un élément de la barre d’outils sur la console :
/apps/<yourProject>/admin/ext/launches
Par exemple, en mode de sélection :
content/jcr:content/body/content/header/items/selection/items/twitter
Vous pouvez utiliser une condition de rendu personnalisé pour recouvrir l’action standard et imposer des conditions spécifiques qui doivent être remplies avant le rendu.
Par exemple, créez un composant pour contrôler les conditions de rendu selon le groupe :
/apps/myapp/components/renderconditions/group
Pour les appliquer à l’action Créer un site sur la console Sites :
/libs/wcm/core/content/sites
Créez le recouvrement :
/apps/wcm/core/content/sites
Ajoutez ensuite la condition de rendu pour l’action :
jcr:content/body/content/header/items/default/items/create/items/createsite/rendercondition
En utilisant des propriétés sur ce nœud, vous pouvez définir les groups
autorisés à effectuer l’action spécifique ; par exemple, les administrators
.
Cette fonction est optimisée pour les champs de colonnes de texte ; pour les autres types de données, il est possible de remplacer cq/gui/components/siteadmin/admin/listview/columns/analyticscolumnrenderer
dans /apps
.
Pour personnaliser les colonnes en mode Liste :
Recouvrez la liste des colonnes disponibles.
Sur le nœud :
/apps/wcm/core/content/common/availablecolumns
Ajoutez des colonnes ou supprimez des colonnes existantes.
Consultez Utilisation des recouvrements (et fusion de ressources Sling) pour plus d’informations.
Facultatif :
Si vous souhaitez connecter des données supplémentaires, vous devez écrire un PageInforProvider avec une
pageInfoProviderType
.
Par exemple, voir la classe/le lot (tiré de GitHub) ci-dessous.
Vous pouvez maintenant sélectionner la colonne dans le configurateur de colonnes du mode Liste.
Lorsqu’une console est utilisée, un cas d’utilisation fréquent est la nécessité pour l’utilisateur de choisir des ressources (par exemple, des pages, des composants, des ressources, etc.). Cela peut prendre la forme d’une liste dans laquelle l’auteur doit sélectionner un élément.
Pour que la liste garde une taille raisonnable et reste pertinente par rapport au cas d’utilisation, un filtre peut être mis en œuvre sous la forme d’un prédicat personnalisé. Voir cet article pour en savoir plus.