Voorwaarden verbergen gebruiken using-hide-conditions
De voorwaarden van de huid kunnen worden gebruikt om te bepalen als een componentenmiddel wordt teruggegeven of niet. Een voorbeeld hiervan zou zijn wanneer een malplaatjeauteur de Component van de Kern vormt lijstcomponent in de sjablooneditor en besluit de opties uit te schakelen om de lijst op onderliggende pagina's samen te stellen. Als u deze optie in het ontwerpdialoogvenster uitschakelt, wordt een eigenschap zo ingesteld dat wanneer de component List wordt gerenderd, de voorwaarde hide wordt geëvalueerd en de optie om onderliggende pagina's weer te geven niet wordt weergegeven.
Overzicht overview
Dialogen kunnen zeer complex worden met talrijke opties voor de gebruiker, die slechts een fractie van de opties kan gebruiken die zijn/haar ter beschikking staan. Dit kan leiden tot een overweldigende ervaring voor de gebruikersinterface.
Door huidenvoorwaarden te gebruiken, hebben de beheerders, de ontwikkelaars, en de super gebruikers een manier om middelen te verbergen die op een reeks regels worden gebaseerd. Met deze functie kunnen ze bepalen welke bronnen moeten worden weergegeven wanneer een auteur inhoud bewerkt.
Implementatie- en gebruiksgegevens implementation-and-usage-details
com.adobe.granite.ui.components.FilteringResourceWrapper
is verantwoordelijk voor het filteren van de bronnen op basis van het bestaan en de waarde van de granite:hide
eigenschap, die zich in het te filteren veld bevindt. De uitvoering van /libs/cq/gui/components/authoring/dialog/dialog.jsp
omvat een geval van FilteringResourceWrapper.
De implementatie maakt gebruik van de graniet ELResolver-API en voegt een cqDesign
douanevariabele via ExpressionCustomizer.
Hier zijn een paar voorbeelden van huidencondities op een ontwerpknoop die onder of onder wordt gevestigd etc/design
of als een inhoudsbeleid.
${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}
Houd rekening met het volgende wanneer u de expressie hide definieert:
- Om geldig te zijn, moet het bereik waarin de eigenschap wordt gevonden, worden uitgedrukt (bijvoorbeeld
cqDesign.myProperty
). - Waarden zijn alleen-lezen.
- Functies (indien vereist) moeten worden beperkt tot een bepaalde set die door de dienst wordt geleverd.
Voorbeeld example
Voorbeelden van huidenomstandigheden zijn te vinden in AEM en de kerncomponenten in het bijzonder. Neem bijvoorbeeld de lijstkerncomponent.
De sjablooneditor gebruikenkan de sjabloonauteur in het ontwerpdialoogvenster definiëren welke opties van de lijstcomponent beschikbaar zijn voor de auteur van de pagina. U kunt bijvoorbeeld instellen of de lijst een statische lijst moet zijn, een lijst met onderliggende pagina's, een lijst met gecodeerde pagina's, enzovoort. kan worden in- of uitgeschakeld.
Als een sjabloonauteur ervoor kiest de optie voor onderliggende pagina's uit te schakelen, wordt een ontwerpeigenschap ingesteld en wordt een voorwaarde voor verbergen aan de hand hiervan geëvalueerd. Hierdoor wordt de optie niet gerenderd voor de auteur van de pagina.
-
De auteur van de pagina kan standaard de kerncomponent van de lijst gebruiken om een lijst samen te stellen met behulp van onderliggende pagina's door de optie Onderliggende pagina's.
-
In het dialoogvenster Ontwerpen van de kerncomponent van de lijst kan de sjabloonauteur de optie kiezen Onderliggende niveaus uitschakelen om te voorkomen dat de optie voor het genereren van een lijst op basis van onderliggende pagina's wordt weergegeven aan de auteur van de pagina.
-
Een beleidsknooppunt wordt gemaakt onder
/conf/we-retail/settings/wcm/policies/weretail/components/content/list
met een eigenschapdisableChildren
instellen optrue
. -
De voorwaarde hide wordt gedefinieerd als de waarde van een
granite:hide
eigenschap op het knooppunt van de eigenschap dialog/conf/we-retail/settings/wcm/policies/weretail/components/content/list
-
De waarde van
disableChildren
uit de ontwerpconfiguratie en de expressie${cqDesign.disableChildren}
evalueert aanfalse
, wat betekent dat de optie niet wordt gerenderd als onderdeel van de component.U kunt de expressie hide weergeven als de waarde van het dialoogvenster
granite:hide
eigenschap in GitHub hier. -
De optie Onderliggende pagina's wordt niet meer weergegeven voor de auteur van de pagina wanneer de component List wordt gebruikt.