Per determinare se la risorsa di un componente è rappresentata o meno, è possibile utilizzare le condizioni Nascondi. Un esempio di ciò è rappresentato dalla configurazione del componente core componente elenco nell' editor modelli da parte di un autore di modello e dalla decisione di disabilitare le opzioni per creare l'elenco in base alle pagine figlie. La disattivazione di questa opzione nella finestra di dialogo di progettazione imposta una proprietà in modo che quando viene eseguito 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 può utilizzare solo una frazione delle opzioni a sua disposizione. Ciò può portare a un'esperienza dell'interfaccia utente travolgente per gli utenti.
Utilizzando condizioni nascoste, amministratori, sviluppatori e super utenti possono nascondere le risorse in base a una serie di regole. Questa funzione consente loro 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 cqDesign
personalizzata tramite ExpressionCustomizer.
Di seguito sono riportati alcuni esempi di condizioni di disattivazione su un nodo di progettazione che si trova in etc/design
o come Criterio 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 definite l’espressione Nascondi, tenete presente:
cqDesign.myProperty
).Esempi di condizioni di nascondimento si trovano in tutta AEM e in particolare nei componenti core. Ad esempio, prendere in considerazione 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. Opzioni quali se consentire all’elenco di essere un elenco statico, un elenco di pagine figlie, un elenco di pagine con tag e così via. può essere attivato o disabilitato.
Se l'autore di un modello sceglie di disabilitare l'opzione pagine figlie, viene impostata una proprietà di progettazione e viene valutata una condizione Nascondi, in base alla quale l'opzione non viene rappresentata 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 elementi figlio per impedire che l'opzione di generare un elenco basato sulle pagine figlie venga visualizzata all'autore della pagina.
Un nodo di criteri viene creato in /conf/we-retail/settings/wcm/policies/weretail/components/content/lis
t con una proprietà disableChildren
impostata su true
.
La condizione Nascondi è definita come il valore di una proprietà granite:hid
e nel nodo della proprietà Finestra di dialogo /conf/we-retail/settings/wcm/policies/weretail/components/content/list
Il valore di disableChildren
viene estratto dalla configurazione di progettazione e l'espressione ${cdDesign.disableChildren}
restituisce false
, il che significa che l'opzione non verrà rappresentata come parte del componente.
È possibile visualizzare l'espressione hide come valore della proprietà granite:hide
in GitHub here.
L'opzione Pagine figlie non viene più rappresentata per l'autore della pagina quando si utilizza il componente Elenco.