Hallo zusammen,
mein Vorschlag wäre, den 'validateFormField-Hook' zu verwenden.
Also zunächst, entweder in der system/config/dcaconfig.php oder einer "Modul"-config.php eine eigene callback-Methode registrieren, z.B.:
Code:
$GLOBALS['TL_HOOKS']['validateFormField'][] = array('MyValidators', 'onvalidateFormField');
In der MyValidators dann in etwa folgende Methode:
Code:
public function onvalidateFormField($objWidget, $formId)
{
// hier die ID des Formularelements/Widgets anpassen
if ($objWidget->id == 168)
{
if ($objWidget->hasErrors())
{
return $objWidget;
}
// gewuenschte vorzubelegende Daten abfragen
$this->Database->prepare("SELECT bla FROM tl_bla_table WHERE Code = ? )
->limit(1)
->execute( $this->Input->post($objWidget->name) )
... etc. ...
// die Daten zur Vorbefüllung der zweiten Seite in der Session speichern
$_SESSION['FORM_DATA']['feldname_abc'] = 'gewünschter Wert';
$_SESSION['FORM_DATA']['feldname_xyz'] = 'Wert für xyz';
...
// damit der EFG die zweite Formularseite befüllt (als bereits "bearbeitet" betrachtet)
$_SESSION['EFP'][$formId]['completed']['page_2'] = true;
}
return $objWidget;
}
Hoffe, das ist soweit verständlich, sonst nachhaken!
Schöne Grüße
Thomas
Lesezeichen