Uso de Ocultar condiciones using-hide-conditions

CAUTION
AEM 6.4 ha llegado al final de la compatibilidad ampliada y esta documentación ya no se actualiza. Para obtener más información, consulte nuestra períodos de asistencia técnica. Buscar las versiones compatibles here.

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.

NOTE
Ocultar un recurso basado en una expresión no reemplaza los permisos ACL. El contenido permanece editable, pero simplemente no se muestra.

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.

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

    chlimage_1-218

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

    chlimage_1-219

  3. Se crea un nodo de directiva en /conf/we-retail/settings/wcm/policies/weretail/components/content/list con una propiedad disableChildren configure como true.

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

    chlimage_1-220

  5. El valor de disableChildren se extrae de la configuración de diseño y de la expresión ${cqDesign.disableChildren} evalúa como false, 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í.

  6. La opción Páginas secundarias ya no se representa para el autor de la página al utilizar el componente de lista.

    chlimage_1-221

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e