Voorwaarden verbergen gebruiken

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.

Overzicht

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.

OPMERKING

Het verbergen van een middel dat op een uitdrukking wordt gebaseerd vervangt ACL geen toestemmingen. De inhoud blijft bewerkbaar, maar wordt gewoon niet weergegeven.

Implementatie- en gebruiksdetails

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:

  • 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

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.

  1. 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.

    chlimage_1-218

  2. 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.

    chlimage_1-219

  3. Een beleidsknooppunt wordt gemaakt onder /conf/we-retail/settings/wcm/policies/weretail/components/content/list met een eigenschap disableChildren ingesteld op true.

  4. 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

    chlimage_1-220

  5. 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.

  6. De optie Onderliggende pagina's wordt niet meer weergegeven voor de auteur van de pagina wanneer de component List wordt gebruikt.

    chlimage_1-221

Op deze pagina