Versionen im Vergleich

Schlüssel

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

Mit Component/Form können aus den Strukturdefinition von Component/Widget und der Datenmodellierung Formulare erzeugt werden. Durch einen FormBuilder kann das entstehende Formular beeinflusst und verändert werden.

Erzeugen eines Formulares
Codeblock
languagephp
themeRDark
titleErzeugen eines Formulares
use Brandbox\Framework\Component\Widget;
use Brandbox\Framework\Component\Form;

$builder = $this
	->staticController(Form\Manager::class)
	->getStandardBuilder()
;

$builder->prefix = '...'; // Eindeutiger Identifikator für dieses Formular (bspw. uniqid())
$builder->container = $this
	->staticController(Widget\Manager::class)
	->getRepositoryWidget('Administrator')
;

$form = $this
	->staticController(Form\Manager::class)
	->getFrameworkForm($builder)
;

Weitere Optionen von FormBuilderStandard

Optionsname

Beschreibung

blacklist

Ein Array aus Feldidentifikatoren welche nicht im entstehenden Formular erscheinen sollen.whitelistEin Array aus Feldidentifikatoren welche im entstehenden Formular erscheinen sollen. Sobald diese Option gesetzt wurde, werden nur die hier enthaltenen Eingabefelder erscheinen

Eine Liste aus Elementidentifikationen, gruppiert nach Elementtyp, welche aus dem aktuellen Formular ausgeschlossen werden sollen. Mit den Konstanten FormBuilderStandard::ELEMENT_TAB, FormBuilderStandard::ELEMENT_SET und FormBuilderStandard::ELEMENT_FIELD kann zwischen den Elementtypen unterschiedenen werden.

whitelist

Siehe blacklist. Sobald Einträge für einen bestimmten Elementtyp existieren, werden nur die aufgelisteten Elemente des entsprechenden Typs dargestellt.

readonly

Ein Array aus Feldidentifikatoren deren Eingabefelder als readonly markiert werden sollen. Nicht alle Eingabefelder unterstützen diese Option.

disabled

Ein Array aus Feldidentifikatoren deren Eingabefelder als disabled markiert werden sollen. Nicht alle Eingabefelder unterstützen diese Option.

payloads

Ein Array dessen Schlüssel Feldidentifikatoren sind und deren Werte als Werte für die aufzubauenden Eingabefelder genutzt werden.

pattern

Eine Vorlage welche für die Namen der zu erstellenden Eingabefelder genutzt wird. Hierbei wird der Platzhalter %s durch den Identifikator des Eingabefeldes ersetzt.

sets

Legt die Darstellung der Sets fest. Sets enthalten eines oder mehrere Eingabefelder welcher mit einer Überschrift versehen werden können. Siehe "Einstellungskonstanten" weiter unten für mögliche Optionen.

tabs

Legt die Darstellung von Gruppen fest. Eine Gruppe enthält eines oder mehrere Eingabefelder sowie ein oder mehrere Sets. In einem Formular werden Gruppen als Tabs dargestellt. Siehe "Einstellungskonstanten" weiter unten für mögliche Optionen.

selected

Legt die initial ausgewählte Feldgruppe (Tab) fest.

Einstellungskonstanten von FormBuilderStandard

Konstante

Beschreibung

FormBuilderStandard::SETTING_NONE

Die Eingabefelder werden direkt und ohne Gruppierung dargestellt.

FormBuilderStandard::SETTING_FORCE

Die Eingabefelder werden immer mit ihrer Gruppierung dargestellt.

FormBuilderStandard::SETTING_DEFAULT

Die Gruppierung der Eingabefelder wird dargestellt, sobald es mehr als eine Gruppierung gibt.

Konfiguration von Eingabefeldlisten

Die Einstellungen für die Optionen whitelist, blacklist, readonly und disabled können unter anderem auch durch eine Konfiguration bei den Eingabefeldern definiert und über eine Methode in Component/Form abgerufen werden.

Definition der Eingabefeldlisten
Codeblock
title
languagejs
themeRDark
Definition der Eingabefeldlisten
{
	// ...

	"[whitelist|blacklist|readonly|disabled]": [
		"[Frei wählbarer Identifikator]"
	]

	// ...
}

Diese Definition kann direkt in den Strukturdateien von Component/Widget aber auch in der Feldkonfiguration der Datenmodellierung genutzt hinterlegt werden. Es können pro Option mehrere frei wählbare Identifikatoren konfiguriert werden. Diese auf diese Weise markierten Felder können mit dem folgenden Code aus einer Strukturdefinition abegrufen werden:

Codeblock
languagephpthemeRDark
use Brandbox\Framework\Component\Form;
use Brandbox\Framework\Component\Widget;

$container = $this
	->staticController(Widget\Manager::class)
	->getRepositoryWidget("Administrator")
;

// Die folgenden Konstanten stehen zur Verfügung:
//  - Form\Manager::TYPE_WHITELIST
//  - Form\Manager::TYPE_BLACKLIST
//  - Form\Manager::TYPE_READONLY
//  - Form\Manager::TYPE_DISABLED

$columns = $this
	->staticController(Form\Manager::class)
	->getListedColumns($container, "[Frei wählbarer Identifikator]", "[Eine der genannten Konstanten]")
;

...