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.

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

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.

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

    chlimage_1-218

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

    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 in het knooppunt met dialoogeigenschappen /conf/we-retail/settings/wcm/policies/weretail/components/content/list

    chlimage_1-220

  5. De waarde van disableChildren wordt uit de ontwerpconfiguratie gehaald en de expressie ${cqDesign.disableChildren} evalueert naar false , 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 GitHub hierbekijken.

  6. De optie Pagina's van het Kind wordt niet meer teruggegeven voor de paginaauteur wanneer het gebruiken van de lijstcomponent.

    chlimage_1-221

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2