Hi there,
The debugger is showing that there is an error in line 7 of this code:
<?php
use woodens\Form;
return function ($page) {
$fields = $page->fb_builder()->toBlocks();
$form = [];
foreach ($fields as $key => $field) {
$name = $field->field_name()->value;
$type = str_replace('fb_', '', $field->type());
if ($type == 'displaytext') {
$name = $key;
}
if ($type == 'submit') {
$name = 'submit';
}
$form[$name] = [
'type' => $type,
'label' => $field->field_label()->value,
'width' => $field->field_width() != "full" ? $field->field_width()->value : '',
'rules' => [],
'message' => [],
'text' => $field->text()->or($field->field_text())->value,
'placeholder' => $field->placeholder()->value,
'mergefield' => $field->mergefield()->value,
'default' => $field->default()->value,
];
if ($field->field_required()->toBool()) {
$form[$name]['rules'][] = 'required';
$form[$name]['message'][] = 'Bitte geben Sie hier etwas ein.';
}
if ($field->min()->isNotEmpty()) {
$form[$name]['rules']['min'] = $field->min()->value;
$form[$name]['message'][] = 'Bitte geben Sie hier min. ' . $field->min() . ' Zeichen ein.';
}
if ($field->max()->isNotEmpty()) {
$form[$name]['rules']['max'] = $field->max()->value;
$form[$name]['message'][] = 'Bitte geben Sie hier max. ' . $field->max() . ' Zeichen ein.';
}
switch ($type) {
case 'email':
$form[$name]['rules'][] = 'email';
$form[$name]['message'][] = 'Bitte geben Sie hier eine richtig formatierte E-Mail-Adresse ein.';
break;
case 'select':
case 'radios':
case 'checkboxes':
$items = [];
$default = '';
foreach ($field->options()->toStructure() as $key => $item) {
$value = $item->item_value()->value;
$items[$value] = $item->item_label()->value;
if ($item->item_state()->toBool()) $default = $value;
}
if ($type == 'checkboxes') {
$form[$name]['default'] = [$default];
}
else {
$form[$name]['default'] = $default;
}
$form[$name]['options'] = $items;
break;
case 'submit':
$form[$name]['content'] = $form[$name]['text'];
$form[$name]['fullwidth'] = $field->field_width() != "inline";
break;
}
$form[$name] = array_filter($form[$name], function($value) {
return $value != '';
});
}
// $form['submit'] = [
// 'type' => 'submit',
// 'content' => $page->fb_submit_label()->or('Absenden'),
// 'classes' => ['float-left'],
// ];
// if ($page->fb_reset_label()->isNotEmpty()) {
// $form['reset'] = [
// 'type' => 'reset',
// 'content' => $page->fb_reset_label(),
// 'color' => 'transparent',
// 'classes' => [''],
// ];
// }
$form = new Form($form, [
'page' => $page,
'gap' => 2,
'hasAjaxSubmission' => $page->fb_is_ajax()->toBool(),
'hasAjaxValidation' => true,
'successMessage' => $page->fb_success_msg()->or('Das Formular wurde erfolgreich gesendet.')->value,
'errorMessage' => $page->fb_error_msg()->or('Es ist leider folgender Fehler aufgetreten:')->value,
]);
// $form = new Form(option('site.form.fields'), option('site.form.formoptions'));
return compact('form');
};
Grateful for your guidance.