Problem
Die Art und Weise, wie Komponenten im Sidekick aufgeführt sind, ist nicht immer angemessen und es empfiehlt sich, Kontrolle darüber zu haben.
Lösung
Seit 5.3 wird die Liste der erlaubten Komponenten nur auf dem Client berechnet.
Jede clientseitige Komponente erhält ebenfalls einen Zellensuchpfad und bekommt eventuell eine CQ.wcm.-Zelle zugewiesen.
Das Array der erlaubten Komponenten wird in einer CQ.wcm.ComponentList-Klasse gespeichert, von der es eine Instanz pro Seite gibt.
Die Einfüge-Dialogfelder und der Sidekick erhalten die endgültige Liste der Komponenten von diesem Objekt.
Bevor das Komponentenlistenobjekt mit der Liste der zulässigen Komponenten der bearbeitbaren Komponente aktualisiert wird, wird ein Ereignis „updatecomponentlist“ ausgelöst, mit dem die Liste dynamisch abgefangen und geändert werden kann.
Der Listener „updatecomponentlist“ kann mit den normalen Listenern „editConfig“ der Container-Komponente (z. B. parsys):
/** * Is called before the {CQ.wcm.ComponentList} is updated. * @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 }
Beachten Sie bitte, dass „runtime“-Manipulationen der Komponentenliste derzeit nicht unterstützt sind. Wenn beispielsweise die Liste zugelassener Komponenten von clientseitigen Änderungen abhängig ist, kann dies nicht an die Dialogfelder weitergegeben werden.
Gilt für
CQ5.3