Utilizzo di Nascondi condizioni

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

Panoramica

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.

NOTA

Nascondere una risorsa basata su un'espressione non sostituisce le autorizzazioni ACL. Il contenuto rimane modificabile, ma semplicemente non viene visualizzato.

Dettagli di implementazione e utilizzo

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:

  • 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

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.

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

    chlimage_1-218

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

    chlimage_1-219

  3. Un nodo di criteri viene creato in /conf/we-retail/settings/wcm/policies/weretail/components/content/list con una proprietà disableChildren impostata su true.

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

    chlimage_1-220

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

  6. L'opzione Pagine figlie non viene più resa per l'autore della pagina quando si utilizza il componente elenco.

    chlimage_1-221

In questa pagina