Show Menu
SUJETS×

Utilisation de conditions de masquage

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.
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 responsable du filtrage des ressources en fonction de l’existence et de la valeur de la granite:hide propriété, située sur le champ à filtrer. L’implémentation de /libs/cq/gui/components/authoring/dialog/dialog.jsp inclut une instance de FilteringResourceWrapper.
The implementation makes use of the Granite ELResolver API and adds a cqDesign custom variable via the 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 .
A l’aide de l’éditeur de modèles, l’auteur du modèle peut définir dans la boîte de dialogue de conception les options du composant de liste qui sont disponibles pour l’auteur de la page. 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 .
  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.
  3. Un noeud de stratégie est créé sous /conf/we-retail/settings/wcm/policies/weretail/components/content/lis t avec une propriété disableChildren définie sur true .
  4. The hide condition is defined as the value of a granite:hid e property on the dialog property node /conf/we-retail/settings/wcm/policies/weretail/components/content/list
  5. The value of disableChildren is pulled from the design configuration and the expression ${cdDesign.disableChildren} evaluates to false , meaning the option will not be rendered as part of the component.
    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.