Utilisation de conditions de masquage using-hide-conditions
Vous pouvez utiliser des conditions de masquage pour déterminer si une ressource de composant est générée ou non. Par exemple, lorsqu’un créateur de modèles configure le composant principal composant de liste dans le éditeur de modèles et décide de désactiver les options pour créer la liste en fonction des pages enfants. La désactivation de cette option dans la boîte de dialogue de conception définit une propriété de sorte que lorsque le composant de liste est rendu, la condition de masquage est évaluée et l’option d’affichage des pages enfants n’est pas affichée.
Présentation overview
Les boîtes de dialogue peuvent devenir très complexes et contenir de nombreuses options pour l’utilisateur, qui ne peut utiliser qu’une fraction des options à sa disposition. Cela peut entraîner une surcharge des expériences de l’interface utilisateur pour les utilisateurs.
En utilisant les conditions de masquage, les administrateurs, les développeurs et les super-utilisateurs ont un moyen de masquer les ressources en fonction d’un ensemble de règles. Cette fonction leur permet de décider quelles ressources afficher lorsqu’un auteur modifie le contenu.
Détails relatifs à la mise en œuvre et à l’utilisation implementation-and-usage-details
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 example
Vous trouverez des exemples de conditions de masquage dans AEM et dans les composants principaux en particulier. Par exemple, la variable composant principal de 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. Des options telles que l’autorisation ou non d’une liste statique, d’une liste de pages enfants, d’une liste de pages balisées, etc. peuvent être activées ou désactivées.
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 entraîne l’absence de rendu de l’option pour l’auteur de pages.
-
Par défaut, l’auteur de la page peut utiliser le composant principal Liste pour créer une liste à l’aide de pages enfants en sélectionnant l’option . Pages enfants.
-
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.
-
Un nœud de stratégie est créé sous
/conf/we-retail/settings/wcm/policies/weretail/components/content/list
avec une propriétédisableChildren
définie surtrue
. -
La condition de masquage est définie comme la valeur d’une propriété
granite:hide
sur le nœud de propriété de boîte de dialogue/conf/we-retail/settings/wcm/policies/weretail/components/content/list
. -
La valeur de
disableChildren
est extraite de la configuration de conception et l’expression${cqDesign.disableChildren}
est évaluée surfalse
, 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. -
L’option Pages enfants n’est plus rendue pour l’auteur de pages lors de l’utilisation du composant de liste.