Dokument Gruppe in Auflistung - ListingGroup

Die ListingGroup-Dokumente sind Dokumente, welche den Inhalt der Auflistung für eine spezielle Gruppe enthalten. Also zum Beispiel:

  • Namen der Gruppe

  • Untergruppen

  • Referenz zu den Artikeln, für die verschiedenen Sortierungen sortiert

Prefix

Der Prefix für die Dokumente ist wie folgt aufgebaut: c{clientId}d{domainId}co{collationId}:listing-group:{id}

Beispiel: c1d1co1:listing-group:123

Staging

Die Dokumente für die ListingGroups werden mit dem Kontext \Brandbox\CmsCore\Cms\CmsStage\Lib\Struct\ContextCmsStage über das Staging generiert. Dabei werden \Brandbox\CmsLayoutShop\View\ListingGroup\Lib\Message\GenerateListingGroupDocuments Messages für eine Anzahl an IDs generiert. Also nicht alle Gruppen auf einmal.

Im Prozess werden zuerst alle Dokumente des Typs gelöscht und dann über diese Message wieder neu gebaut. Siehe auch Messanger.

Dokument über Base erzeugen

Das Dokument für eine Gruppe kann über „Weitere Funktionen“ im Datensatz veröffentlicht / generiert werden.

Dokument anpassen

Um ein ListingGroup-Dokument anzupassen oder zu erweitern, sollte auf das Event \Brandbox\FrameworkDocument\Brandbox\DocumentStore\Lib\Event\OnCreateDocument subscibed werden und entsprechend der Kontext geprüft werden.

Beispiel:

// Subscriber public static function getSubscribedEvents(): array { return [ DocumentStore\Lib\Event\OnCreateDocument::class => [ ['onPopulateDocumentListingChange', 500], ], ]; }
use Brandbox\Framework\Brandbox\Controller; use Brandbox\FrameworkDocument\Brandbox\DocumentStore; use Brandbox\ShopCore\Shop\Group; use Brandbox\CmsLayoutShop\View\ListingGroup; class MyClass extends Controller\ControllerRequestAbstract { public function process(DocumentStore\Lib\Event\OnCreateDocument $event): void { if ( ListingGroup\Manager::DOCUMENT_TYPE_LISTING_GROUP === $event->type && $event->entity instanceof Group\lib\entity\shopGroup && true === $event->document instanceof DocumentStore\Lib\Struct\Document ) { // my code } } }