Show Menu
TÓPICOS×

Como usar Ocultar condições

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 da lista Componentes principais no editor de modelo e decide desativar 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

As caixas de diálogo podem tornar-se muito complexas, com várias opções para o utilizador, que só podem utilizar uma fração das opções que lhe estão à disposição. Isso pode levar a experiências esmagadoras da interface do usuário para os usuários.
Ao usar 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.
Ocultar um recurso com base em uma expressão não substitui as permissões de ACL. O conteúdo permanece editável, mas simplesmente não é exibido.

Detalhes de implementação e uso

com.adobe.granite.ui.components.FilteringResourceWrapper é responsável pela filtragem dos recursos com base na existência e no valor da granite:hide propriedade, localizada no campo a ser filtrado. A implementação de /libs/cq/gui/components/authoring/dialog/dialog.jsp inclui um exemplo de FilteringResourceWrapper.
A implementação usa a API Granite ELResolver e adiciona uma variável cqDesign personalizada por meio do ExpressionCustomizer.
Estes são alguns exemplos de condições de ocultação em um nó de design localizado em ou como uma Política de conteúdo. etc/design
${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 sua expressão de ocultação, lembre-se:
  • 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

Exemplos de condições de ocultação podem ser encontrados em todo o AEM e nos componentes introduction.html 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. 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 etc. pode ser ativado ou desativado.
Se um autor de 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 escolhendo a opção Páginas ​secundárias.
  2. Na caixa de diálogo de design do componente principal da lista, o autor do modelo pode escolher a opção Desativar filhos para impedir que a opção de gerar uma lista com base em páginas secundárias seja exibida ao autor da página.
  3. Um nó de política é criado em /conf/we-retail/settings/wcm/policies/weretail/components/content/lis t com uma propriedade disableChildren definida como true .
  4. A condição de ocultação é definida como o valor de uma propriedade granite:hid e no nó da propriedade de diálogo /conf/we-retail/settings/wcm/policies/weretail/components/content/list
  5. O valor de disableChildren é extraído da configuração de design e a expressão ${cdDesign.disableChildren} é avaliada como false , o que significa que a opção não será renderizada como parte do componente.
    É possível exibir a expressão de ocultação como o valor da granite:hide propriedade 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.