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 beliebige Datensatzverbindungen unterstzützt hinzugefügt 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::ACTIONMETHOD_MOVE | Beschreibt das Verschieben eines oder mehrerer Datensätze zwischen zwei verschiedenen Quelldatensätzen. |
Manager::ACTIONMETHOD_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::ACTIONMETHOD_AFTERATTACH | Beschreibt das Sortieren Verknüpfen 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::ACTIONMETHOD_BEFOREDETACH | Beschreibt das Sortieren Entknüpfen/Lösen 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::ACTIONMETHOD_RELATECREATE | Beschreibt das Verknüpfen von einem oder mehreren DatensätzenErstellen eines neuen Datensatzes innherlab der Datensatzverbindungen. |
Manager::ACTIONMETHOD_UNRELATEEDIT | Beschreibt das Entknüpfen/Lösen von einem oder mehreren DatensätzenBearbeiten einer Datensatzverbindung. |
Kontextklassen
Diese Kontextklassen stehen in den genannten Komponenten zur Verfügung. Alle implementieren das gemeinsame ContextInterface
-Interface.
Klassenname | Beschreibung |
---|
ContainerContext ContextContainer | Kontextklasse für die Datensatzlistenkomponente |
RelationContext | Kontextklasse für das Kontextmenü eines Datensatzes |
ToolbarContext ContextToolbar | Kontextklasse für die Toolbar der Verknüpfungsansicht | TreeContext | Kontextklasse für die Baumansicht der Datensatzlisten |
Eventübersicht
Klassenname | Beschreibung |
---|
OnExecuteCreate OnExecuteAttach | 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 QueryBuilder veweist hierbei auf die Zieldatenbanktabelle der Verknüpfungsansicht. Der aktuelle Zustand Ansichtumschalters kann mit nachfolgendem Code abgefragt für einen oder mehrere Datensätze ausgelöst, welche der Datensatzverbindung hinzugefügt werden sollen. |
OnExecuteDetach | Wird für einen oder mehrere Datensätze ausgelöst, welche aus der Datensatzverbindung entfernt werden sollen. |
OnExecuteMove | Wird für einen oder mehrere Datensätze ausgelöst, welche zwischen zwei Verbindungsdefinitionen verschoben werden sollen. |
OnExecuteSort | Wird für einen oder mehrere Datensätze ausgelöst, welche innerhalb einer Datensatzverbindung sortiert werden sollen. |
OnPopulateBuilder | Wird ausgelöst um den QueryBuilder für die Datensatzliste zu befüllen. Der aktuelle Zustand der Datensatzliste kann hierbei mit dem folgenden Code abgerufen werden. Codeblock |
---|
| use Brandbox\Framework\Base\Relation;
/** @var Relation\Lib\Event\OnPopulateQueryBuilderOnPopulateBuilder $event */
$status$type = $this
->staticController(Relation\Lib\Request\SettingsStorage::class)
->getSwitch>getType($event->source, $event->target, $event->type, $event->id>definition)
;
// $status kann einer der folgenden Konstanten entsprechen
// Relation\Manager::SWITCH_TYPE_RELATEDATTACHED
// 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 |
OnPopulateContainer | Wird ausgelöst um den FrameworkContainer innerhalb der Verknüpfungsansicht zu befüllen. |
OnPopulateCount | Wird ausgelöst um die Verbindungsanzahl eines Datensatzes einzusammeln. Diese Information kann für jeden Datensatz abgefragt werden. |
OnPopulateCreate | Wird ausgelöst um den Dialog zum Erstellen eines neuen Datensatzes zu befüllen. |
OnPopulateEdit | Wird ausgelöst um die Oberflächennavigation beim Bearbeiten eines Verbindungsdatensatzes aufzulösen. |
OnPopulateEntities | Wird ausgelöst um die darzustellenden Datensätze der Datensatzliste vor ihrer Ausgabe zu verändern. |
OnPopulateFlags | Wird ausgelöst um die verfügbaren Funktionen für eine Datensatzverbindung oder Verbindungsdefinition einzusammeln. Diese Funktionen werden mit den Relation\Manager::FLAG_ -Konstanten beschrieben. |
OnPopulateIndex | Wird ausgelöst um die Verknüpfungsansicht selbst aufzubauen. |
OnPopulateReferences | Wird ausgelöst um die verbundenen Datensätze eines Definition einzusammeln. |
OnPopulateSettings | Wird ausgelöst um den Ansichteinstellungsanbieter für die Datensatzliste zu ermitteln. |
Drawio |
---|
border | true |
---|
| |
---|
diagramName | Verknüpfungen (Eventübersicht) |
---|
simpleViewer | false |
---|
width | |
---|
links | auto |
---|
tbstyle | top |
---|
lbox | true |
---|
diagramWidth | 681 |
---|
revision | 12 |
---|
|