Utilizzo di Nascondi condizioni using-hide-conditions
È possibile utilizzare le condizioni Nascondi per determinare se è stato eseguito o meno il rendering di una risorsa componente. Un esempio è quello di un autore di modelli che configura il componente core componente elenco in editor modelli decide di disabilitare le opzioni per creare l’elenco in base alle pagine figlie. Se si disabilita questa opzione nella finestra di dialogo di progettazione, viene impostata una proprietà in modo che quando si esegue il rendering del componente elenco, venga valutata la condizione Nascondi e l’opzione per mostrare le pagine figlie non venga visualizzata.
Panoramica overview
Le finestre di dialogo possono diventare molto complesse con numerose opzioni per l'utente, che possono utilizzare solo una frazione delle opzioni che sono a sua disposizione. Questo può portare a esperienze di interfaccia utente travolgenti per gli utenti.
Utilizzando le condizioni di visualizzazione, gli amministratori, gli sviluppatori e i super utenti possono nascondere le risorse in base a un set di regole. Questa funzione consente di decidere quali risorse visualizzare quando un autore modifica il contenuto.
Implementazione e dettagli di utilizzo implementation-and-usage-details
com.adobe.granite.ui.components.FilteringResourceWrapper
è responsabile del filtraggio delle risorse in base all'esistenza e al valore del granite:hide
proprietà, situata nel campo da filtrare. L'attuazione /libs/cq/gui/components/authoring/dialog/dialog.jsp
include un'istanza di FilteringResourceWrapper.
L'implementazione utilizza la Granite API ELResolver e aggiunge un cqDesign
variabile personalizzata tramite ExpressionCustomizer.
Di seguito sono riportati alcuni esempi di condizioni nascoste su un nodo di progettazione situato in etc/design
o come criterio dei contenuti.
${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}
Quando definisci l’espressione nascondi , tieni presente quanto segue:
- Per essere valido, l'ambito in cui viene trovato il bene deve essere espresso (ad es.
cqDesign.myProperty
). - I valori sono di sola lettura.
- Le funzioni (se necessarie) devono essere limitate a un determinato set fornito dal servizio.
Esempio example
Esempi di condizioni di nascondere possono essere trovati in tutto AEM e componenti core in particolare. Ad esempio, considera il elenco dei componenti core.
Utilizzo dell’editor modelli, l’autore del modello può definire nella finestra di dialogo della progettazione quali opzioni del componente elenco sono disponibili per l’autore della pagina. Ad esempio, se consentire o meno che l’elenco sia un elenco statico, un elenco di pagine figlie, un elenco di pagine con tag e così via. possono essere abilitate o disabilitate.
Se un autore del modello sceglie di disabilitare l’opzione pagine figlie, viene impostata una proprietà di progettazione e viene valutata una condizione di nascondere, in modo che l’opzione non venga renderizzata per l’autore della pagina.
-
Per impostazione predefinita, l’autore della pagina può utilizzare il componente di base elenco per creare un elenco utilizzando pagine figlie, scegliendo l’opzione . Pagine figlie.
-
Nella finestra di dialogo di progettazione del componente di base elenco, l’autore del modello può scegliere l’opzione Disattiva bambini per evitare che l’opzione generi un elenco basato su pagine figlie venga mostrata all’autore della pagina.
-
Un nodo di criteri viene creato in
/conf/we-retail/settings/wcm/policies/weretail/components/content/list
con una proprietàdisableChildren
impostato sutrue
. -
La condizione Nascondi è definita come valore di un
granite:hide
sul nodo della proprietà dialog/conf/we-retail/settings/wcm/policies/weretail/components/content/list
-
Il valore di
disableChildren
viene estratto dalla configurazione di progettazione e dall’espressione${cqDesign.disableChildren}
valutafalse
, il che significa che non viene eseguito il rendering dell’opzione come parte del componente.È possibile visualizzare l’espressione hide come valore del
granite:hide
property in GitHub. -
Opzione Pagine figlie non viene più eseguito il rendering per l’autore della pagina quando si utilizza il componente elenco .