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 Component list in malplaatjeredacteur vormt 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 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.
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.
Het verbergen van een middel dat op een uitdrukking wordt gebaseerd vervangt ACL geen toestemmingen. De inhoud blijft bewerkbaar, maar wordt gewoon niet weergegeven.
com.adobe.granite.ui.components.FilteringResourceWrapper
is verantwoordelijk het filtreren van de middelen die op het bestaan en de waarde van het granite:hide
bezit worden gebaseerd, dat op het te filteren gebied wordt gevestigd. De implementatie 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 toe.
Hier zijn een paar voorbeelden van huidenvoorwaarden op een ontwerpknoop die of onder etc/design
of als Beleid van de Inhoud wordt gevestigd.
${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:
cqDesign.myProperty
).Voorbeelden van huidencondities zijn te vinden door AEM en met name de kerncomponenten. Neem bijvoorbeeld de kerncomponent list.
Met behulp van de sjablooneditor kan 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.
Standaard kan de auteur van de pagina de kerncomponent van de lijst gebruiken om een lijst op te bouwen met behulp van onderliggende pagina's door de optie Onderliggende pagina's te kiezen.
In de ontwerpdialoog van de component van de lijstkern, kan de malplaatjeauteur de optie Kinderen onbruikbaar maken kiezen 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 eigenschap disableChildren
ingesteld op true
.
De voorwaarde hide wordt gedefinieerd als de waarde van een eigenschap granite:hide
op het knooppunt van de dialoogeigenschap /conf/we-retail/settings/wcm/policies/weretail/components/content/list
De waarde van disableChildren
wordt gehaald uit de ontwerpconfiguratie en de uitdrukking ${cqDesign.disableChildren}
evalueert aan false
, betekenend zal de optie niet als deel van de component worden teruggegeven.
U kunt de huidenuitdrukking als waarde van granite:hide
bezit in GitHub hier bekijken.
De optie Onderliggende pagina's wordt niet meer weergegeven voor de auteur van de pagina wanneer de component List wordt gebruikt.