Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 2 Nächste Version anzeigen »

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.

KonstanteBeschreibung
Manager::ACTION_SORTBeschreibt 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_AFTERBeschreibt 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_BEFOREBeschreibt 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_RELATEBeschreibt das Verknüpfen von einem oder mehreren Datensätzen.
Manager::ACTION_UNRELATEBeschreibt 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.

KlassennameBeschreibung
ContainerContextKontextklasse für die Datensatzlistenkomponente
RelationContextKontextklasse für das Kontextmenü eines Datensatzes
ToolbarContextKontextklasse für die Toolbar der Verknüpfungsansicht
TreeContextKontextklasse für die Baumansicht der Datensatzlisten

Eventübersicht

KlassennameBeschreibung
OnExecuteCreateWird 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.
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 werden.

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
OnPopulateRelationWird ausgelöst um eine ggf. existierende Verknüpfung zwischen dem Quelldatensatz und einem der darzustellenden Zieldatensätze zu ermitteln.
OnPopulateSettingsWird ausgelöst um den Ansichteinstellungsanbieter für die Datensatzliste zu ermitteln.
  • Keine Stichwörter