Пользовательские поля формы

Пользовательские поля позволяют расширить стандартные формы. Такие поля могут быть и информационными и калькулируемыми, которые участвуют в формировании суммы заявки.

Пользовательские поля описываются в формате YAML. Хранятся они в файле /core/components/onebooking/extras/booking.extras.yaml. Для примера там же лежит файл example.booking.extras.yaml. Можете переименовать его, а можете создать новый по образцу. В файле подробно описан формат полей.

Для примера приведу описание поля «Количество человек» типа "select". Это поле затем можно добавить в форму заявки на бронирование, используя плейсхолдер с названием поля [[+persons_number]].

// Название поля
persons_number:
    // Для вывода на сайте
    field: |
        <label class="labelform" for="persons_number">Количество человек</label>
        <select class="ob-extras-textarea form-control" name="persons_number" id="persons_number">
            <option value="500">Один</option>
            <option value="1000" selected>Два</option>
            <option value="1500">Три</option>
        </select>
    // Название поля (используется в админке)
    label: Количество человек
    // Учитывать стоимость один раз или каждый день
    apply_once: 0
    // Учитывать сумму в акциях или нет
    calc_after: 0
    // Признак, что поле не информационное и его нужно учитывать в расчетах стоимости.
    calculate: 1
    // Признак, что поле обязательное
    required: 1
    // Тип поля (для интерфейса администратора)
    type: select (используется в админке)
    // Значение по-умолчанию
    default: 500
    // Элементы списка в формате "стоимость : заголовок в списке" (используется в админке)
    items:
        500: Один (500)
        1000: Два (1000)
        1500: Три (1500)

Добавленные поля сразу появляются в диалоге создания заявки на бронирование в интерфейсе администратора.

А для того, чтобы добавить поля в форму на сайте, нужно в чанке формы добавить соответствующие плейсхолдеры. Например, так

<form>
    ...
    <div class="form-group">
        [[+city]]
    </div>
    <div class="form-group">
        [[+select]]
    </div>
    <div class="form-group">
        [[+radio]]
    </div>            
</form>

Таким образом можно делать любые формы. Надо только помнить об обязательных полях "object","start_date","end_date" и "number" (что, когда и сколько). В качестве примера можно использовать стандартную форму.

Для подключения своих форм добавлены системные настройки frontend_js и frontend_css для собственных файлов стилей и скриптов.

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.