Tickets - ТВ на основе селекта с мультивыборо
Создаю во фронтенде документ с помощью Tickets.
В чанк tpl.Tickets.form.create есть такая конструкция для полей с множественным выбором:
Если в чанке заменить
А надо чтоб в базе сохранилась запись вида
[[!TicketForm?
&tplFormCreate=`tpl.Tickets.form.create`
&allowedFields=`parent,pagetitle,content,metro,logo`
&allowFiles=`1`
]]
Все поля документа и ТВ-параметры сохраняются, кроме полей с множественным выбором… Как решить проблему?В чанк tpl.Tickets.form.create есть такая конструкция для полей с множественным выбором:
<div class="form-group">
<label for="ticket-metro">Метро</label>
<select name="metro[]" class="form-control" multiple="multiple" id="ticket-metro">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="4" >4</option>
....
</select>
<span class="error"></span>
......
При таком чанке в базе сохраняется Array, если выбрать более 2 значений… Если в чанке заменить
<select name="metro[]"
на <select name="metro"
, сохраняется только одно значение…А надо чтоб в базе сохранилась запись вида
1||2||4
Я так понимаю надо элементы массива metro[] разделить разделителями ||, как это сделать? Комментарии: 1
Плагином, скорее всего, на событие OnDocFormSave перехватывать значение, видоизменять и сохранять. Примерно вот так:
<?php
if ($modx->event->name == 'OnDocFormSave') {
$metro = $resource->getTVValue('metro');
if (strlen($metro) > 0) {
$newMetroValue = ... //видоизменяешь как тебе необходимо (разбиваешь массив и тд)
$resource->setTVValue('metro', $newMetroValue);
}
$resource->save();
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.