Problema
Il modo in cui i componenti sono elencati nel sidekick non è sempre soddisfacente e quindi vorrei avere il controllo su di essi.
Risoluzione
Dalla versione 5.3, l'elenco dei componenti consentiti viene calcolato solo sul client.
Ad ogni componente lato client viene anche assegnato un percorso di ricerca delle celle ed eventualmente un CQ.wcm.Cell.
L'array di componenti permessi è tenuto in una classe CQ.wcm.ComponentList di cui è presente un'istanza per pagina.
Le finestre di dialogo di inserimento e il sidekick ottengono l'elenco finale dei componenti di quell'oggetto.
Prima che l'oggetto lista componenti venga aggiornato con l'elenco dei componenti consentiti del contenuto modificabile, si attiva un evento "updatecomponentlist", che puoi utilizzare per intercettare e modificare dinamicamente l'elenco.
Puoi registrare il listener "updatecomponentlist" usando i listener normali editConfig sul componente contenitore (per esempio parsys):
/** * Viene chiamato prima dell'aggiornamento di {CQ.wcm.wcm.ComponentList}. * @parametro this {CQ.wcm.EditBase} questo contenuto modificabile * @parametro cell {CQ.wcm.Cell} la cella di questo contenuto modificabile * @parametro alowed {Array} la lista preliminare dei componenti consentiti * @parametro componentList {CQ.wcm.ComponentList} l'oggetto lista componenti che riceverà la lista */ funzione MyHandler(cell, allowed, componentList) { // manipolare l'array 'allowed' se necessario }
Nota che le manipolazioni "runtime" dell'elenco dei componenti non sono attualmente supportate. Ciò significa che, se l'elenco dei componenti consentiti dipende dai cambiamenti lato client, non puoi propagarlo nelle finestre di dialogo.
Si applica a
CQ 5.3