Change-Checkbox

Funktionalität zur Darstellung von Checkboxen vor/nach Formular-Inputs

In manchen Fällen ist es Sinnvoll, dass Änderungen an Datenbeständen dokumentiert werden, sodass Folgebearbeiter nicht alle Feldinhalte prüfen müssen.

Dazu bietet die Formular-Engine eine Funktion an, welche zu einer benannten Liste von Feldern diese Checkboxen automatisch erzeugt und zum Input-Feld hinzufügt.

Settings

	protected $FieldChangeCBSettings = [ 
			'postname' => 'form_change_cb', // POST-Variable für die Change-CheckBoxen
			'position' => 'left', // Anordnung left|right vom Input-Feld
			'title' => 'Änderung markieren',
			'value' => '0',
			'class' => 'custom-control custom-checkbox',
			'class-input' => 'custom-control-input',
			'class-label' => 'custom-control-label'
		// 'abc' => [
		// 'abc-checkbox-default',
		// 'abc-checkbox-success'
		// ]
	];

Beispiel

Das Formularobjekt $FrmObj ist ein Objekt der Formular-Klasse

Die $_POST - Variablen des Formular werden als Array mit dem Namen 'postname' dargestellt. Im Beispiel: CHANGE_FIELDS => Array ( [MANDT] => 1 [SHORTTEXT] => on [TAGS] => on [SAP_KUNNR] => on [SAP_VKBUR] => on )

		// --------------------------------------------------------------------
		// Start: Feldänderungen sollen mit einer Checkbox ergänzt werden:
		$FrmObj->FieldChangeCBSettings ['postname'] = 'CHANGE_FIELDS'; // POST-Variable für die Change-CheckBoxen
		$FrmObj->FieldChangeCBSettings ['position'] = 'left'; // Anordnung left|right vom Input-Feld

		// Liste der Felder, welche eine Change-Checkbox erhalten sollen:
		$change_fields = [ 
				'SHORTTEXT' => 0,
				'DESCRIPTION' => 0,
				'TAGS' => 0,
				'SAP_KUNNR'=> 0,
				'SAP_VKBUR'=> 0
		];
		// aktuelle Daten mit der Liste abmischen:
		if (isset ( $data ['CHANGE_FIELDS'] )) {
			$change_fields = array_merge ( $change_fields, unserialize ( $data ['CHANGE_FIELDS'] ) );
		}
		// Liste an Formular-Engine geben:
		$FrmObj->setFieldChangeCB ( $change_fields );
		// Trick, damit CHANGE_FIELDS bei jedem Post aktualisiert wird, auch wenn es keinen ausgewählten Eintrag gibt!
		$FormHtml [] = $FrmObj->hidden ( 'CHANGE_FIELDS[MANDT]', 1 );
		// Ende: Feldänderungen sollen mit einer Checkbox ergänzt werden:
		// --------------------------------------------------------------------

Last updated