fix error array
This commit is contained in:
@@ -512,6 +512,11 @@
|
||||
? $this->_eval2var('?>' . $field['defaultval'] . '<?')
|
||||
: $field['defaultval']);
|
||||
|
||||
// Убедитесь, что $fld_val является массивом
|
||||
if (!is_array($fld_val)) {
|
||||
$fld_val = [$fld_val]; // Преобразуем в массив
|
||||
}
|
||||
|
||||
$attributes = trim($field['attributes']);
|
||||
|
||||
$this->form['fields'][$field_id]['is_used'] = true;
|
||||
@@ -521,78 +526,78 @@
|
||||
|
||||
switch ($field['type'])
|
||||
{
|
||||
case 'input':
|
||||
$input = '<input ' . (strpos(strtolower($attributes),'type=') === false ? ' type="text" ' : ' ') . '
|
||||
name="form-' . $alias_id . '[' . $field['id'] . ']"
|
||||
' . (strpos(strtolower($attributes),'value=') === false ? ' value="' . ($field['title'] == 'captcha' ? '' : htmlspecialchars($fld_val,ENT_QUOTES)) . '" ' : ' ') . ' ' . $attributes . '>';
|
||||
break;
|
||||
case 'input':
|
||||
$input = '<input ' . (strpos(strtolower($attributes), 'type=') === false ? ' type="text" ' : ' ') . '
|
||||
name="form-' . $alias_id . '[' . $field['id'] . ']"
|
||||
' . (strpos(strtolower($attributes), 'value=') === false ? ' value="' . ($field['title'] == 'captcha' ? '' : htmlspecialchars($fld_val[0], ENT_QUOTES)) . '" ' : ' ') . ' ' . $attributes . '>';
|
||||
break;
|
||||
|
||||
case 'textarea':
|
||||
$input = '<textarea name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>' . htmlspecialchars($fld_val,ENT_QUOTES) . '</textarea>';
|
||||
break;
|
||||
case 'textarea':
|
||||
$input = '<textarea name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>' . htmlspecialchars($fld_val[0], ENT_QUOTES) . '</textarea>';
|
||||
break;
|
||||
|
||||
case 'select':
|
||||
$input = '<select name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>';
|
||||
foreach ($field['setting'] as $val => $title)
|
||||
{
|
||||
$input .= '<option value="' . $val . '"' . ($val == $fld_val ? ' selected="selected"' : '') . '>' . (is_array($title) ? $title['name'] : $title) . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
case 'select':
|
||||
$input = '<select name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>';
|
||||
foreach ($field['setting'] as $val => $title) {
|
||||
$selected = in_array($val, $fld_val) ? ' selected="selected"' : '';
|
||||
$input .= '<option value="' . $val . '"' . $selected . '>' . (is_array($title) ? $title['name'] : $title) . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
|
||||
case 'multiselect':
|
||||
$input = '<select multiple="multiple" name="form-' . $alias_id . '[' . $field['id'] . '][]" ' . $attributes . '>';
|
||||
foreach ($field['setting'] as $val => $title)
|
||||
{
|
||||
$input .= '<option value="' . $val . '"' . (in_array($val,$fld_val) ? ' selected="selected"' : '') . '>' . $title . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
case 'multiselect':
|
||||
$input = '<select multiple="multiple" name="form-' . $alias_id . '[' . $field['id'] . '][]" ' . $attributes . '>';
|
||||
foreach ($field['setting'] as $val => $title) {
|
||||
$selected = in_array($val, $fld_val) ? ' selected="selected"' : '';
|
||||
$input .= '<option value="' . $val . '"' . $selected . '>' . $title . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
|
||||
case 'checkbox':
|
||||
$input = '
|
||||
<input type="hidden" name="form-' . $alias_id . '[' . $field['id'] . ']" value="0">
|
||||
<input type="checkbox" name="form-' . $alias_id . '[' . $field['id'] . ']"' . ($fld_val ? ' checked="checked"' : '') . ' value="1" ' . $attributes . '>';
|
||||
break;
|
||||
case 'checkbox':
|
||||
$input = '
|
||||
<input type="hidden" name="form-' . $alias_id . '[' . $field['id'] . ']" value="0">
|
||||
<input type="checkbox" name="form-' . $alias_id . '[' . $field['id'] . ']"' . ($fld_val[0] ? ' checked="checked"' : '') . ' value="1" ' . $attributes . '>';
|
||||
break;
|
||||
|
||||
case 'file':
|
||||
$input = '<input type="file" name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>';
|
||||
break;
|
||||
case 'file':
|
||||
$input = '<input type="file" name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>';
|
||||
break;
|
||||
|
||||
case 'doc':
|
||||
$input = '<select name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>';
|
||||
$docs = $this->_docs($field['setting']);
|
||||
foreach ($docs as $val => $title)
|
||||
{
|
||||
$input .= '<option value="' . $val . '"' . ($val == $fld_val ? ' selected="selected"' : '') . '>' . $title . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
case 'doc':
|
||||
$input = '<select name="form-' . $alias_id . '[' . $field['id'] . ']" ' . $attributes . '>';
|
||||
$docs = $this->_docs($field['setting']);
|
||||
foreach ($docs as $val => $title) {
|
||||
$selected = ($val == $fld_val[0]) ? ' selected="selected"' : '';
|
||||
$input .= '<option value="' . $val . '"' . $selected . '>' . $title . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
|
||||
case 'multidoc':
|
||||
$input = '<select multiple="multiple" name="form-' . $alias_id . '[' . $field['id'] . '][]" ' . $attributes . '>';
|
||||
$docs = $this->_docs($field['setting']);
|
||||
foreach ($docs as $val => $title)
|
||||
{
|
||||
$input .= '<option value="' . $val . '"' . (in_array($val,$fld_val) ? ' selected="selected"' : '') . '>' . $title . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
case 'multidoc':
|
||||
$input = '<select multiple="multiple" name="form-' . $alias_id . '[' . $field['id'] . '][]" ' . $attributes . '>';
|
||||
$docs = $this->_docs($field['setting']);
|
||||
foreach ($docs as $val => $title) {
|
||||
$selected = in_array($val, $fld_val) ? ' selected="selected"' : '';
|
||||
$input .= '<option value="' . $val . '"' . $selected . '>' . $title . '</option>';
|
||||
}
|
||||
$input .= '</select>';
|
||||
break;
|
||||
}
|
||||
|
||||
// вставляем поле в шаблон поля
|
||||
$return = trim($field['tpl']) > ''
|
||||
? str_replace('[tag:fld]',$input,$field['tpl'])
|
||||
: $input;
|
||||
// Вставляем поле в шаблон поля
|
||||
$return = trim($field['tpl']) > ''
|
||||
? str_replace('[tag:fld]', $input, $field['tpl'])
|
||||
: $input;
|
||||
|
||||
// парсим теги названия и id
|
||||
$return = str_replace(array(
|
||||
'[tag:id]',
|
||||
'[tag:title]',
|
||||
), array(
|
||||
$field['id'],
|
||||
'[tag:title:' . $field_id . ']',
|
||||
), $return);
|
||||
// Парсим теги названия и id
|
||||
$return = str_replace(array(
|
||||
'[tag:id]',
|
||||
'[tag:title]',
|
||||
), array(
|
||||
$field['id'],
|
||||
'[tag:title:' . $field_id . ']',
|
||||
), $return);
|
||||
|
||||
// если попытка отправить форму, обрабатываем валидацию и пустоту
|
||||
if ($this->form['is_submited'])
|
||||
|
Reference in New Issue
Block a user