Uso de Ocultar condiciones using-hide-conditions
Las condiciones de ocultado se pueden utilizar para determinar si un recurso de componente se representa o no. Un ejemplo de esto sería cuando un autor de plantillas configura el componente principal componente de lista en el editor de plantillas y decide desactivar las opciones para crear la lista en función de las páginas secundarias. Al desactivar esta opción en el cuadro de diálogo de diseño, se establece una propiedad de modo que, cuando se procesa el componente de lista, se evalúe la condición de ocultado y no se muestre la opción para mostrar páginas secundarias.
Información general overview
Los diálogos pueden llegar a ser muy complejos con numerosas opciones para el usuario, que sólo puede utilizar una fracción de las opciones a su disposición. Esto puede generar experiencias de interfaz de usuario abrumadoras para los usuarios.
Al utilizar condiciones ocultas, los administradores, desarrolladores y superusuarios pueden ocultar recursos en función de un conjunto de reglas. Esta función les permite decidir qué recursos deben mostrarse cuando un autor edita el contenido.
Detalles de implementación y uso implementation-and-usage-details
com.adobe.granite.ui.components.FilteringResourceWrapper
es responsable de filtrar los recursos en función de la existencia y el valor de la variable granite:hide
, ubicada en el campo que se va a filtrar. La aplicación de /libs/cq/gui/components/authoring/dialog/dialog.jsp
incluye una instancia de FilteringResourceWrapper.
La implementación utiliza Granite API de ELResolver y añade un cqDesign
variable personalizada mediante ExpressionCustomizer.
Estos son algunos ejemplos de condiciones de ocultamiento en un nodo de diseño ubicado en etc/design
o como una directiva de contenido.
${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}
Al definir la expresión de ocultación, tenga en cuenta:
- Para que sea válido, debe expresarse el ámbito en el que se encuentra la propiedad (p. ej.
cqDesign.myProperty
). - Los valores son de solo lectura.
- Las funciones (si es necesario) deben limitarse a un conjunto determinado proporcionado por el servicio.
Ejemplo example
Se pueden encontrar ejemplos de condiciones de ocultamiento en AEM y en la componentes principales en particular. Por ejemplo, considere la componente principal de lista.
Uso del editor de plantillas, el autor de la plantilla puede definir en el cuadro de diálogo de diseño qué opciones del componente de lista están disponibles para el autor de la página. Tales opciones como si se permite que la lista sea una lista estática, una lista de páginas secundarias, una lista de páginas etiquetadas, etc. se puede activar o desactivar.
Si un autor de plantillas decide desactivar la opción de páginas secundarias, se establece una propiedad de diseño y se evalúa una condición de ocultamiento en relación con ella, lo que hace que la opción no se muestre para el autor de la página.
-
De forma predeterminada, el autor de la página puede utilizar el componente principal de la lista para crear una lista utilizando páginas secundarias seleccionando la opción Páginas secundarias.
-
En el cuadro de diálogo de diseño del componente principal de la lista, el autor de la plantilla puede elegir la opción Deshabilitar hijos para evitar que la opción para generar una lista basada en páginas secundarias se muestre al autor de la página.
-
Se crea un nodo de directiva en
/conf/we-retail/settings/wcm/policies/weretail/components/content/list
con una propiedaddisableChildren
configure comotrue
. -
La condición hide se define como el valor de un
granite:hide
propiedad en el nodo de propiedad dialog/conf/we-retail/settings/wcm/policies/weretail/components/content/list
-
El valor de
disableChildren
se extrae de la configuración de diseño y de la expresión${cqDesign.disableChildren}
evalúa comofalse
, lo que significa que la opción no se procesará como parte del componente.Puede ver la expresión de ocultación como el valor de la variable
granite:hide
property en GitHub aquí. -
La opción Páginas secundarias ya no se representa para el autor de la página al utilizar el componente de lista.