CQ5.3: Definición dinámica de la lista de componentes para la barra de tareas y el cuadro de diálogo Insertar

Problema

La forma en que se enumeran los componentes en la barra de tareas no siempre es satisfactoria y, por lo tanto, sería bueno tener control sobre ella.

Resolución

Desde la versión 5.3, la lista de componentes permitidos se computa solo en el cliente.

Cada componente del lado del cliente también obtiene una ruta de búsqueda de celda y, eventualmente, se le asigna una CQ.wcm.cell.
La matriz de componentes permitidos se mantiene en una clase CQ.wcm.ComponentList de la que hay una instancia por página.
Los cuadros de diálogo de inserción y la barra de tareas obtienen la lista final de componentes de ese objeto.
Antes de que el objeto de la lista de componentes se actualice con la lista de componentes permitidos de la lista editable, este lanza un evento updatecomponentlist, que puede utilizarse para interceptar y modificar la lista dinámicamente.
El oyente “updatecomponentlist” se puede registrar utilizando los oyentes normales editConfig en el componente contenedor (por ejemplo, parsys):

/** * Se llama antes de que se actualice la {CQ.wcm.ComponentList}. * @param this {CQ.wcm.EditBase} este * @param cell {CQ.wcm.Cell} editable la celda del * @param allowed {Array} editable lista preliminar de los componentes permitidos *@param componentList {CQ.wcm.ComponentList} objeto de la lista de componentes que recibirá la lista */ función MyHandler(cell, allowed, componentList) { // manipulación de la matriz 'allowed' de ser necesario } 

Tenga en cuenta que actualmente no se admiten las manipulaciones de “tiempo de ejecución” de la lista de componentes. es decir, si la lista de componentes permitidos depende de los cambios en el lado del cliente, esto no se puede propagar a los cuadros de diálogos.

Se aplica a

CQ 5.3