Detalhes de implementação e uso
com.adobe.granite.ui.components.FilteringResourceWrapper
é responsável por filtrar os recursos com base na existência e no valor da variável granite:hide
, localizada no campo a ser filtrado. A execução do /libs/cq/gui/components/authoring/dialog/dialog.jsp
inclui uma instância de FilteringResourceWrapper.
A implementação utiliza o Granite API ELResolver e adiciona uma cqDesign
variável personalizada por meio do ExpressionCustomizer.
Veja 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 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 limitar-se a um determinado conjunto fornecido pelo serviço.
Exemplo
Exemplos de condições de ocultação podem ser encontrados em todo o AEM e no componentes principais em especial. Por exemplo, considere a variável componente principal da lista.
Uso do 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 filhas, uma lista de páginas marcadas etc. pode ser ativado ou desativado.
Se um autor de modelo optar por desativar a opção páginas filhas, uma propriedade de design será definida e uma condição de ocultação será avaliada em relação a ela, o que fará com que a opção não seja renderizada para o autor da página.
-
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.
-
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 baseada em páginas filhas seja exibida ao autor da página.
-
Um nó de política é criado em
/conf/we-retail/settings/wcm/policies/weretail/components/content/list
com uma propriedadedisableChildren
defina comotrue
. -
A condição de ocultação é definida como o valor de um
granite:hide
propriedade no nó de propriedade da caixa de diálogo/conf/we-retail/settings/wcm/policies/weretail/components/content/list
-
O valor de
disableChildren
é extraída da configuração do design e da expressão${cqDesign.disableChildren}
resulta emfalse
, o que significa que a opção não será renderizada como parte do componente.Você pode exibir a expressão de ocultação como o valor da variável
granite:hide
propriedade no GitHub aqui. -
A opção Páginas secundárias não é mais renderizado para o autor da página ao usar o componente de lista.