È possibile utilizzare le condizioni Nascondi per determinare se è stato eseguito o meno il rendering di una risorsa componente. Un esempio di ciò è quando un autore di modelli configura il componente core componente elenco nell’ editor modelli e 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.
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.
Nascondere una risorsa basata su un'espressione non sostituisce le autorizzazioni ACL. Il contenuto rimane modificabile, ma semplicemente non viene visualizzato.
com.adobe.granite.ui.components.FilteringResourceWrapper
è responsabile del filtraggio delle risorse in base all'esistenza e al valore della granite:hide
proprietà, che si trova nel campo da filtrare. L'implementazione di /libs/cq/gui/components/authoring/dialog/dialog.jsp
include un'istanza di FilteringResourceWrapper.
L'implementazione utilizza l'API Granite ELResolver API e aggiunge una variabile personalizzata cqDesign
tramite ExpressionCustomizer.
Di seguito sono riportati alcuni esempi di condizioni nascoste su un nodo di progettazione che si trova in etc/design
o come criterio di contenuto.
${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:
cqDesign.myProperty
).Esempi di condizioni di nascondere sono disponibili in AEM e in particolare nei componenti principali. Ad esempio, considera il componente di base elenco.
Utilizzando l’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 Disabilita elementi figlio per impedire 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
impostata su true
.
La condizione hide è definita come valore di una proprietà 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 l’espressione ${cqDesign.disableChildren}
restituisce false
, il che significa che l’opzione non verrà resa come parte del componente.
Puoi visualizzare l’espressione hide come valore della proprietà granite:hide
in GitHub here.
L'opzione Pagine figlie non viene più resa per l'autore della pagina quando si utilizza il componente elenco.