Ich hoffe, das wird jetzt mein letztes Problem fürs erste ...
In einer eigenen Erweiterung möchte ich den Datepicker im Frontend nutzen. Dazu gibt es ja die Erweiterung calendarfield.
Jetzt kann ich aber nicht über den Backend-Formulargenerator gehen, sondern ich möchte in meinem Code ein eigenes Frontend-Formular bauen, das so ein Feld nutzt.
Ausschnitt aus meinem Code dazu wäre
PHP-Code:
$fields['startDate'] = array(
'name' => 'startDate',
'label' => $GLOBALS['TL_LANG']['MSC']['caledit_startdate'],
// inputtype nicht "text", sondern "calendarfield". Das ist der Typ dieser Erweiterung
'inputType' => 'calendarfield',
'value' => $NewEventData['startDate'],
'eval' => array('rgxp' => 'date', 'mandatory' => true, 'dateImage' => '1')
);
// .....
$arrWidgets = array();
// Initialize widgets
foreach ($fields as $arrField) {
$strClass = $GLOBALS['TL_FFL'][$arrField['inputType']];
$arrField['eval']['required'] = $arrField['eval']['mandatory'];
$objWidget = new $strClass($this->prepareForWidget($arrField, $arrField['name'], $arrField['value']));
// Validate widget
if ($this->Input->post('FORM_SUBMIT') == 'caledit_submit') {
$objWidget->validate();
if ($objWidget->hasErrors()) {
$doNotSubmit = true;
}
}
$arrWidgets[$arrField['name']] = $objWidget;
}
Unter Contao 3 und der damaligen Version von calendarfield hat das auch so geklappt, aber in 4.4 sehe ich das hübsche JS-Eingabe-Feld nicht. Ich vermute, dass ich bei den eval-Optionen was einfügen muss, stehe aber auf dem Schlauch, was.
Entsprechende Scripte sind auch eingebunden. Wenn ich auf einer anderen Seite (selbes Seitenlayout) ein Formular über den Formulargenerator einfüge, läuft es auch.
In den Code der calendarfield-Erweiterung wird reingesprungen. Wenn ich da nämlich für ungültigen Code sorge, gibt's ne Exception.
Lesezeichen