Problema
A maneira como os componentes são listados no sidekick nem sempre é satisfatória e, portanto, seria bom ter controle sobre ele.
Solução
Desde o 5.3, a lista de componentes permitidos é computada apenas no cliente.
Cada componente do lado do cliente também obtém um caminho de pesquisa de célula e, consequentemente, um CQ.wcm.Cell atribuído.
A matriz de componentes permitidos é mantida em uma classe CQ.wcm.ComponentList da qual há uma instância por página.
As caixas de diálogo de inserção e o sidekick obtêm a lista final do componente desse objeto.
Antes de o objeto da lista de componentes ser atualizado com a lista de componentes permitidos do editável, ele dispara um evento "updatecomponentlist", que poderá ser usado para interceptar e modificar a lista dinamicamente.
O ouvinte "updatecomponentlist" pode ser registrado usando os ouvintes normais do editConfig no componente do contêiner (por exemplo, parsys):
/** * É chamado antes que o {CQ.wcm.ComponentList} seja atualizado. * @param this {CQ.wcm.EditBase} this editable * @param cell {CQ.wcm.Cell} the cell of this editable * @param allowed {Array} the preliminary list of allowed components * @param componentList {CQ.wcm.ComponentList} the component list object that will receive the list */ function MyHandler(cell, allowed, componentList) { // manipulate the 'allowed' array if needed }
Observe que as manipulações de "tempo de execução" da lista de componentes não são compatíveis no momento. isto é, se a lista de componentes permitidos depende de mudanças no lado do cliente, isso não poderá ser propagado para os diálogos.
Aplica-se a
CQ 5.3
Fazer logon em sua conta