AS
Size: a a a
AS
AS
VD
AS
VD
AS
МЛ
PB
МФ
AI
АМ
'fields' => [
'caption' => 'Поля',
'type' => 'group',
'layout' => 'horizontal',
'fields' => [
'caption' => [
'caption' => 'Название поля',
'type' => 'text',
],
'type' => [
'caption' => 'Тип поля',
'type' => 'dropdown',
'elements' => [
'text' => 'Текст',
'email' => 'Email',
'phone' => 'Телефон',
'textarea' => 'Многострочный текст',
],
],
'icon' => [
'caption' => 'Иконка',
'type' => 'text',
],
'required' => [
'caption' => 'Обязательное?',
'type' => 'checkbox',
'elements' => [1 => 'Да'],
'default' => 0,
],
],
],
$rules = [];
foreach ($data['fields'] as $i => $field) {
$rule = [];
$key = 'field_' . $i;
if (!empty($field['required'][0])) {
$rule['required'] = 'Обязательное поле';
}
switch ($field['type']) {
case 'phone': {
$rule['matches'] = [
'params' => '/^\+?[78]\s?\(\d{3}\)\s?\d{3}-\d\d-\d\d$/',
'message' => 'Формат телефона неверный',
];
$key = 'phone';
break;
}
case 'email': {
$rule['email'] = 'Формат адреса неверный';
$key = 'email';
break;
}
}
$rules[$key] = $rule;
}
$rules['agree'] = [
'required' => 'Отметьте согласие',
];
AS
АМ
МЛ
МФ
МФ
S
S
МФ