Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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).

Codeblock
languagephp
themeRDark
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

METHOD_MOVE

Beschreibt das Verschieben eines oder mehrerer Datensätze zwischen zwei verschiedenen Quelldatensätzen.

Manager::METHOD_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

METHOD_

AFTER

ATTACH

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::

ACTION

METHOD_

BEFORE

DETACH

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::

ACTION

METHOD_

RELATE

CREATE

Beschreibt das

Verknüpfen von einem oder mehreren Datensätzen

Erstellen eines neuen Datensatzes innherlab der Datensatzverbindungen.

Manager::

ACTION

METHOD_

UNRELATE

EDIT

Beschreibt das

Entknüpfen/Lösen von einem oder mehreren Datensätzen

Bearbeiten 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

ContextToolbar

Kontextklasse für

das Kontextmenü eines DatensatzesToolbarContextKontextklasse für

die Toolbar der Verknüpfungsansicht

TreeContextKontextklasse 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.OnExecuteExecuteWird ausgelöst wenn eine Funktion der Verknüpfungsansicht ausgeführt wird. Über die Eigenschaft action wird die ausgeführte Funktion benannt.OnPopulateActionsWird 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.OnPopulateContainerWird ausgelöst um den FrameworkContainer innerhalb der Verknüpfungsansicht zu befüllen.OnPopulateIndexWird ausgelöst um die Verknüpfungsansicht selbst aufzubauen.OnPopulateQueryBuilderWird 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
languagephp
theme
RDark
use Brandbox\Framework\Base\Relation;

/** @var Relation\Lib\Event\
OnPopulateQueryBuilder
OnPopulateBuilder $event */

$status
$type = $this
    ->staticController(Relation\Lib\Request\
Settings
Storage::class)
    -
>getSwitch
>getType($event-
>source, $event->target, $event->type, $event->id
>definition)
;

// $status kann einer der folgenden Konstanten entsprechen
// Relation\Manager::
SWITCH_
TYPE_
RELATED
ATTACHED
// Relation\Manager::
SWITCH_TYPE_RELATABLEOnPopulateRelationWird ausgelöst um eine ggf. existierende Verknüpfung zwischen dem Quelldatensatz und einem der darzustellenden Zieldatensätze zu ermitteln
TYPE_ATTACHABLE


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.

OnPopulateTarget

Wird ausgelöst um die Entitätendefinition für die zu durchsuchende Datenbanktabelle zu ermitteln.

OnPopulateFilter

Wird ausgelöst um den Container für den Suchfilter zu ermitteln.

Drawio
simple0
zoom1
inComment0
pageId27435142
custContentId142409837
diagramDisplayNameVerknüpfungen (Eventübersicht)
lboxtrue
contentVer1
revision4
baseUrlhttps://konmedia.atlassian.net/wiki
diagramNameVerknüpfungen (Eventübersicht)
pCenter0
width680.5
linksauto
tbstyletop
height1000.5