Vous consultez actuellement l'aide de la version:

Des conditions de masquage peuvent être utilisées pour déterminer si une ressource de composant est rendue ou non. Cela peut être le cas, par exemple, lorsqu’un créateur de modèles configure le composant principal Composant de liste dans l’éditeur de modèles et décide de désactiver les options afin de créer la liste sur la base des pages enfants. Si vous désactivez cette option dans la boîte de dialogue de création, une propriété est définie, de sorte que, lorsque le composant de liste est rendu, la condition de masquage soit évaluée et l’option d’affichage des pages enfants ne soit pas présentée.

Présentation

Les boîtes de dialogue peuvent devenir très complexes et contenir de nombreuses options. Cependant, l’utilisateur ne pourra peut-être exploiter qu’une petite partie de celles mises à sa disposition. Cela peut avoir une incidence considérable sur l’expérience utilisateur.

Grâce aux conditions de masquage, les administrateurs, développeurs et super-utilisateurs ont la possibilité de masquer des ressources sur la base d’un ensemble de règles. Cette fonctionnalité permet de déterminer les ressources qui doivent être affichées lorsqu’un auteur modifie le contenu.

Remarque :

Le masquage d’une ressource sur la base d’une expression ne remplace pas les autorisations ACL. Le contenu peut toujours être modifié, mais il n’est pas simplement affiché.

Détails relatifs à la mise en œuvre et à l’utilisation

com.adobe.granite.ui.components.FilteringResourceWrapper est chargé de filtrer les ressources en fonction de l’existence et de la valeur de la propriété granite:hide, située sur le champ à filtrer. L’implémentation de /libs/cq/gui/components/authoring/dialog/dialog.jsp comprend une instance de FilteringResourceWrapper.

L’implémentation utilise l’API ELResolver de Granite et ajoute une variable personnalisée cqDesign via ExpressionCustomizer.

Voici quelques exemples de conditions de masquage sur un nœud de conception situé sous etc/design ou sous la forme d’une stratégie de contenu.

${cqDesign.myProperty}
${!cqDesign.myProperty}
${cqDesign.myProperty == 'someText'}
${cqDesign.myProperty != 'someText'}
${cqDesign.myProperty == true}
${cqDesign.myProperty == true}
${cqDesign.property1 == 'someText' && cqDesign.property2 || cqDesign.property3 != 1 || header.myHeader}

Lors de la définition de votre expression de masquage, veuillez tenir compte des points suivants :

  • Pour être valide, le domaine dans lequel se trouve la propriété doit être exprimé (cqDesign.myProperty, par exemple).
  • Les valeurs sont en lecture seule.
  • Les fonctions (si nécessaire) doivent être limitées à un ensemble donné fourni par le service.

Exemple

Vous trouverez des exemples de conditions de masquage dans AEM et dans les composants principaux en particulier. Prenons notamment l’exemple du composant principal Liste.

En utilisant l’éditeur de modèles, l’auteur de modèles peut définir, dans la boîte de dialogue de conception, les options du composant de liste mises à la disposition de l’auteur de pages. Il est ainsi possible d’activer ou de désactiver des options permettant de définir une liste comme étant statique, une liste de pages enfants, une liste de pages balisées, etc.

Si un auteur de modèles choisit de désactiver l’option des pages enfants, une propriété de conception est définie et une condition de masquage est évaluée par rapport à celle-ci, ce qui empêche le rendu de cette option pour l’auteur de pages.

  1. Par défaut, l’auteur de la page peut utiliser le composant principal Liste pour créer une liste à l’aide des pages enfants en choisissant l’option Pages enfants.

    chlimage_1
  2. Dans la boîte de dialogue de création du composant principal Liste, l’auteur de modèles peut sélectionner l’option Désactiver les enfants pour éviter que l’option de génération d’une liste sur la base de pages enfants ne soit présentée à l’auteur de pages.

    chlimage_1
  3. Un nœud de stratégie est créé sous /conf/we-retail/settings/wcm/policies/weretail/components/content/list avec la propriété disableChildren définie sur true.

  4. La condition de masquage est définie en tant que valeur d’une propriété granite:hide sur le nœud de propriété de la boîte de dialogue /conf/we-retail/settings/wcm/policies/weretail/components/content/list.

    chlimage_1
  5. La valeur de disableChildren est extraite de la configuration de conception et l’expression ${cdDesign.disableChildren} est évaluée sur false, ce qui signifie que le rendu de l’option ne sera pas effectué dans le cadre du composant.

    Pour afficher l’expression de masquage en tant que valeur de la propriété granite:hide dans GitHub, cliquez ici.

  6. L’option Pages enfants n’est plus rendue pour l’auteur de pages lors de l’utilisation du composant de liste.

    chlimage_1

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne