Uso de condições de ocultação using-hide-conditions

As condições de ocultação podem ser usadas para determinar se um recurso de componente é renderizado ou não. Um exemplo disso seria quando um autor de modelo configura o componente de lista do Componente principal no editor de modelos e decide desabilitar as opções para criar a lista com base em páginas secundárias. Desativar essa opção na caixa de diálogo de design define uma propriedade para que, quando o componente de lista for renderizado, a condição de ocultação seja avaliada e a opção para mostrar páginas secundárias não seja exibida.

Visão geral overview

As caixas de diálogo podem se tornar complexas com várias opções para o usuário, que pode usar apenas uma fração das opções que estão à sua disposição. Isso pode causar experiências esmagadoras na interface do usuário.

Ao usar as condições de ocultação, administradores, desenvolvedores e superusuários têm uma maneira de ocultar recursos com base em um conjunto de regras. Esse recurso permite que eles decidam quais recursos devem ser exibidos quando um autor editar o conteúdo.

NOTE
Ocultar um recurso com base em uma expressão não substitui as permissões de ACL. O conteúdo permanece editável, mas não é exibido.

Detalhes de implementação e uso implementation-and-usage-details

com.adobe.granite.ui.components.FilteringResourceWrapper é responsável por filtrar os recursos com base na existência e no valor da propriedade granite:hide, localizada no campo a ser filtrado. A implementação de /libs/cq/gui/components/authoring/dialog/dialog.jsp inclui uma instância de FilteringResourceWrapper.

A implementação usa a API ELResolver do Granite e adiciona uma variável personalizada cqDesign por meio do ExpressionCustomizer.

Estes são alguns exemplos de condições de ocultação em um nó de design localizado em etc/design ou como uma Política de Conteúdo.

${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}

Ao definir a expressão ocultar, lembre-se do seguinte:

  • Para ser válido, o escopo no qual a propriedade é encontrada deve ser expresso (por exemplo, cqDesign.myProperty).
  • Os valores são somente leitura.
  • As funções (se necessário) devem ser limitadas a um determinado conjunto fornecido pelo serviço.

Exemplo example

Exemplos de condições de ocultação podem ser encontrados no AEM e nos componentes principais em particular. Por exemplo, considere o componente principal da lista.

Usando o editor de modelo, o autor do modelo pode definir na caixa de diálogo de design quais opções do componente de lista estão disponíveis para o autor da página. É possível ativar ou desativar opções como permitir que a lista seja uma lista estática, uma lista de páginas secundárias, uma lista de páginas marcadas e assim por diante.

Se um autor do modelo optar por desativar a opção de páginas secundárias, uma propriedade de design será definida e uma condição de ocultação será avaliada em relação a ela, o que faz com que a opção não seja renderizada para o autor da página.

  1. Por padrão, o autor da página pode usar o componente principal da lista para criar uma lista usando páginas secundárias ao escolher a opção Páginas secundárias.

    chlimage_1-218

  2. Na caixa de diálogo de design do componente principal da lista, o autor do modelo pode escolher a opção Desativar secundárias para impedir que a opção para gerar uma lista com base em páginas secundárias seja exibida ao autor da página.

    chlimage_1-219

  3. Um nó de política foi criado em /conf/we-retail/settings/wcm/policies/weretail/components/content/list com uma propriedade disableChildren definida como true.

  4. A condição de ocultação é definida como o valor de uma propriedade granite:hide no nó de propriedade de diálogo /conf/we-retail/settings/wcm/policies/weretail/components/content/list

    chlimage_1-220

  5. O valor de disableChildren é extraído da configuração de design e a expressão ${cqDesign.disableChildren} é avaliada como false, o que significa que a opção não será renderizada como parte do componente.

    Você pode exibir a expressão hide como o valor da propriedade granite:hide no GitHub aqui.

  6. A opção Páginas secundárias não é mais renderizada para o autor da página ao usar o componente de lista.

    chlimage_1-221

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