Utilizzo di Nascondi condizioni using-hide-conditions

È possibile utilizzare le condizioni Nascondi per determinare se una risorsa componente è sottoposta o meno a rendering. Un esempio potrebbe essere quando un autore di modelli configura il componente core list nell'editor modelli e decide di disabilitare le opzioni per creare l'elenco in base alle pagine figlie. La disattivazione di questa opzione nella finestra di dialogo per progettazione imposta una proprietà in modo che, quando viene eseguito il rendering del componente elenco, venga valutata la condizione Nascondi e non venga visualizzata l’opzione per visualizzare le pagine figlie.

Panoramica overview

Le finestre di dialogo possono diventare complesse con numerose opzioni per l'utente, che può utilizzare solo una frazione delle opzioni disponibili. Questo può portare a esperienze di interfaccia utente schiaccianti per gli utenti.

Utilizzando le condizioni di nascondi, gli amministratori, gli sviluppatori e gli utenti con privilegi avanzati possono nascondere le risorse in base a un set di regole. Questa funzione consente loro di decidere quali risorse visualizzare quando un autore modifica il contenuto.

NOTE
Se si nasconde una risorsa basata su un’espressione, le autorizzazioni ACL non vengono sostituite. Il contenuto rimane modificabile ma non viene visualizzato.

Dettagli sull’implementazione e sull’utilizzo implementation-and-usage-details

com.adobe.granite.ui.components.FilteringResourceWrapper è responsabile del filtraggio delle risorse in base all'esistenza e al valore della proprietà granite:hide, situata 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 e aggiunge una variabile personalizzata cqDesign tramite ExpressionCustomizer.

Di seguito sono riportati alcuni esempi di condizioni di Nascondi in un nodo di progettazione che si trova in etc/design o come criterio del 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 trovata la proprietà deve essere espresso (ad esempio, cqDesign.myProperty).
  • I valori sono di sola lettura.
  • Le funzioni (se necessario) devono essere limitate a un determinato insieme fornito dal servizio.

Esempio example

Esempi di condizioni di Nascondi sono disponibili in AEM e nei Componenti core in particolare. Consideriamo ad esempio il componente di base list.

Utilizzando l'editor modelli, l'autore del modello può definire nella finestra di dialogo per progettazione le opzioni del componente Elenco disponibili per l'autore della pagina. È possibile abilitare o disabilitare opzioni quali l’abilitazione o meno dell’elenco come elenco statico, elenco di pagine figlie, elenco di pagine con tag e così via.

Se un autore di modelli sceglie di disabilitare l’opzione pagine figlie, viene impostata una proprietà di progettazione e viene valutata una condizione di nascondi in base a essa, impedendo all’autore della pagina di eseguire il rendering dell’opzione.

  1. Per impostazione predefinita, l'autore della pagina può utilizzare il componente core Elenco per creare un elenco utilizzando pagine figlie scegliendo l'opzione Pagine figlie.

    chlimage_1-218

  2. Nella finestra di dialogo per progettazione del componente core Elenco, l'autore del modello può scegliere l'opzione Disattiva elementi figlio per impedire che l'autore della pagina visualizzi l'opzione per generare un elenco basato su pagine figlie.

    chlimage_1-219

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

  4. La condizione di Nascondi è definita come il valore di una proprietà granite:hide nel nodo della proprietà della finestra di dialogo /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à rappresentata come parte del componente.

    È possibile visualizzare l'espressione hide come valore della proprietà granite:hide in GitHub.

  6. L'opzione Pagine secondarie non viene più visualizzata per l'autore della pagina quando si utilizza il componente Elenco.

    chlimage_1-221

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