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 van dit zou zijn wanneer een malplaatjeauteur de de lijstcomponent van de Component van de Kern 🔗 in de malplaatjedacteurvormt en besluit om de opties onbruikbaar te maken om de lijst te bouwen die op kindpagina's wordt gebaseerd. Als u deze optie in het dialoogvenster Ontwerp 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
Dialoogvensters kunnen complex worden met talrijke opties voor de gebruiker, die slechts een fractie van de opties kan gebruiken die tot zijn 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 eigenschap granite:hide
, die zich in het te filteren veld bevindt. De implementatie van /libs/cq/gui/components/authoring/dialog/dialog.jsp
bevat een instantie van FilteringResourceWrapper.
De implementatie maakt gebruik van graniet ELResolver APIen voegt een cqDesign
douanevariabele via ExpressionCustomizer toe.
Hier volgen enkele voorbeelden van verbergingsvoorwaarden voor een ontwerpknooppunt onder 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.
- De functies (indien nodig) moeten beperkt blijven tot een bepaalde reeks die door de dienst wordt geleverd.
Voorbeeld example
De voorbeelden van verborgen voorwaarden kunnen door AEM en de kerncomponentenin het bijzonder worden gevonden. Bijvoorbeeld, overweeg de component van de lijstkern.
Gebruikend de malplaatjeredacteur, kan de malplaatjeauteur in de ontwerpdialoog bepalen welke opties van de lijstcomponent die aan de paginaauteur beschikbaar zijn. U kunt bijvoorbeeld instellen of de lijst een statische lijst moet zijn, of een lijst met onderliggende pagina's, een lijst met gecodeerde pagina's enzovoort, moet 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.
-
Door gebrek, kan de paginaauteur de component van de lijstkern gebruiken om een lijst te bouwen gebruikend kindpagina's door de optie Pagina's van het Kind te kiezen.
-
In de ontwerpdialoog van de component van de lijstkern, kan de malplaatjeauteur de optie kiezen maakt Kinderen onbruikbaar om de optie te verhinderen om een lijst te produceren die op kindpagina's wordt gebaseerd aan de paginaauteur worden getoond.
-
Een beleidsknooppunt wordt gemaakt onder
/conf/we-retail/settings/wcm/policies/weretail/components/content/list
met een eigenschapdisableChildren
ingesteld optrue
. -
De voorwaarde hide wordt gedefinieerd als de waarde van een eigenschap
granite:hide
in het knooppunt met dialoogeigenschappen/conf/we-retail/settings/wcm/policies/weretail/components/content/list
-
De waarde van
disableChildren
wordt uit de ontwerpconfiguratie gehaald en de expressie${cqDesign.disableChildren}
evalueert naarfalse
, wat betekent dat de optie niet wordt gerenderd als onderdeel van de component.U kunt de huidenuitdrukking als waarde van het
granite:hide
bezit in GitHubbekijken. -
De optie Pagina's van het Kind wordt niet meer teruggegeven voor de paginaauteur wanneer het gebruiken van de lijstcomponent.