Dieses Codepaket wird von brandbox genutzt um Verbindungen zwischen Datensätzen zu verwalten und für einen Anwender zu visualisieren. Standardmäßig werden von diesem Codepaket die Relationsdefinitionen (Eltern-Kind-Beziehungen) von brandbox unterstützt. Über Events können aber weitere Datensatzverbindungen unterstzützt werden (bspw. Fremdschlüssel).
use Brandbox\Framework\Base\Relation; $source = 'shopGroup'; // Identifikator der Quelldatenbanktabelle $target = 'shopArticle'; // Identifikator der Zieldatenbanktabelle $type = 'CustomRelation'; // Benutzerdefinierter Typ der Datensatzverbindung $id = 123; // ID des Quelldatensatzes $element = $this ->staticController(Relation\Manager::class) ->getButtonRelation($source, $target, $type, $id) ; // $element ist null oder eine Instanz von \Brandbox\FrameworkStyleguide\Entity\FrameworkButton
Funktionsumfang
Dieses Codepaket stellt eine Oberfläche innerhalb von Base zur Verfügung um Datensatzverbindungen in einer Datensatzliste darzustellen. Zudem werden Funktionen für das Erstellen, Ver- und Entknüpfen, Sortieren und Verschieben von Datensätzen angeboten. Die Oberfläche und Funktionen werden durch Events beeinflusst und enthalten immer alle Informationen (Quell- und Zieltabelle, Datensatzverbindungstyp, Quelldatensatz-ID). Alle verfügbaren Funktionen werden über die nachfolgenden Konstanten beschrieben.
Konstante | Beschreibung |
---|---|
Manager::ACTION_MOVE | Beschreibt das Verschieben eines oder mehrerer Datensätze zwischen zwei verschiedenen Quelldatensätzen. |
Manager::ACTION_SORT | Beschreibt das Sortieren von einem oder mehreren Datensätzen über die Kontextmenüfunktion eines Datensatzes oder des Mehrfachfunktionsmenüs. Die Referenzeigenschaft enthält den vorherigen Datensatz nachdem alle gewählten Datensätze einsortiert werden sollen. |
Manager::ACTION_AFTER | Beschreibt das Sortieren von einem oder mehreren Datensätzen über die Drag&Drop-Funktion der Datensatzliste. Die Referenzeigenschaft enthält den vorherigen Datensatz nachdem alle gewählten Datensätze einsortiert werden sollen. |
Manager::ACTION_BEFORE | Beschreibt das Sortieren von einem oder mehreren Datensätzen über die Drag&Drop-Funktion der Datensatzliste. Die Referenzeigenschaft enthält den nachfolgenden Datensatz vordem alle gewählten Datensätze einsortiert werden sollen. |
Manager::ACTION_RELATE | Beschreibt das Verknüpfen von einem oder mehreren Datensätzen. |
Manager::ACTION_UNRELATE | Beschreibt das Entknüpfen/Lösen von einem oder mehreren Datensätzen. |
Kontextklassen
Diese Kontextklassen stehen in den genannten Komponenten zur Verfügung. Alle implementieren das gemeinsame ContextInterface
-Interface.
Klassenname | Beschreibung |
---|---|
ContainerContext | Kontextklasse für die Datensatzlistenkomponente |
RelationContext | Kontextklasse für das Kontextmenü eines Datensatzes |
ToolbarContext | Kontextklasse für die Toolbar der Verknüpfungsansicht |
TreeContext | Kontextklasse für die Baumansicht der Datensatzlisten |
Eventübersicht
Klassenname | Beschreibung |
---|---|
OnExecuteCreate | Wird ausgelöst sobald ein neuer Datensatz gespeichert wird, allerdings nur wenn die Bearbeitungsansicht zuvor über die Verknüpfungsansicht geöffnet wurde. |
OnExecuteExecute | Wird ausgelöst wenn eine Funktion der Verknüpfungsansicht ausgeführt wird. Über die Eigenschaft action wird die ausgeführte Funktion benannt. |
OnPopulateActions | Wird ausgelöst um Funktionsaktionen vor dem Ausführen der eigentlichen Aktion einzusammeln und optional dem Anwender zur Auswahl anzubieten. Die Funktionsaktionen sind ähnlich zu den Kopierfunktionen in Base. |
OnPopulateContainer | Wird ausgelöst um den FrameworkContainer innerhalb der Verknüpfungsansicht zu befüllen. |
OnPopulateIndex | Wird ausgelöst um die Verknüpfungsansicht selbst aufzubauen. |
OnPopulateQueryBuilder | Wird ausgelöst um die darzustellenden Datensätze zu filter und ggf. einzuschränken. Der use Brandbox\Framework\Base\Relation; /** @var Relation\Lib\Event\OnPopulateQueryBuilder $event */ $status = $this ->staticController(Relation\Lib\Request\Settings::class) ->getSwitch($event->source, $event->target, $event->type, $event->id) ; // $status kann einer der folgenden Konstanten entsprechen // Relation\Manager::SWITCH_TYPE_RELATED // Relation\Manager::SWITCH_TYPE_RELATABLE |
OnPopulateRelation | Wird ausgelöst um eine ggf. existierende Verknüpfung zwischen dem Quelldatensatz und einem der darzustellenden Zieldatensätze zu ermitteln. |
OnPopulateSettings | Wird ausgelöst um den Ansichteinstellungsanbieter für die Datensatzliste zu ermitteln. |