Tickets - обработка и получение полей Формы
Вначале коротко вопросы:
Теперь подробней...
Для того чтоб в tickets создать тикет или комментарий надо заполнить соответствующую форму.
Подскажите, как в tickets предусмотрен механизм кастомной обработки полей отправленной формы.
Например, в чанке стандартной формы для Комментариев (tpl.Tickets.comment.form.guest), помимо всего прочего, есть
такие поля:
1) Как мне, например, проверить поле «name», по своему регулярному выражению, до того как его значение попадет в БД? Или вырезать с поля «text» все теги и пропустить через трим, а уже после чтоб летело в БД?
2) Если я добавлю в эту форму еще и свое поле, например:
UPD. около часу спустя
Решил методом тыка проверить свое предположение…
Оказалось, что именно по такой конструкции и пишется плейсхолдер для полей попавших в «properties»:
3) Еще возник вопрос относительно того же столбца «properties» таблицы «tickets_comments».
Как контролировать то, что туда летит после отправки данных формы? Можно ли сделать так, чтоб туда вообще ничего не летело кроме ЗАРАНЕЕ перечисленных полей?
Потому как сейчас я вижу довольно таки неприятную картину…
По сути, любой пользователь может закинуть в этот «properties» тонну любой информации.
Например, он может прямо в браузере через инструменты разработчика добавить в форму еще один textarea «text2»,
Ребята, Василий, пожалуйста, помогите разобраться!
Гугл перелопатил… ничего толкового.
А в мануале совсем мало информации
- Как осуществить кастомную обработку полей формы до отправки в БД? (частично решено)
- Как при выводе комментарий, обращаться к данным из «properties»? (уже узнал)
- Как контролировать то, что отправляется в «properties»?
Теперь подробней...
Для того чтоб в tickets создать тикет или комментарий надо заполнить соответствующую форму.
Подскажите, как в tickets предусмотрен механизм кастомной обработки полей отправленной формы.
Например, в чанке стандартной формы для Комментариев (tpl.Tickets.comment.form.guest), помимо всего прочего, есть
такие поля:
<input type="text" name="name" value="[[+name]]" id="comment-name" class="form-control"/>
<input type="text" name="email" value="[[+email]]" id="comment-email" class="form-control"/>
<textarea name="text" id="comment-editor" cols="30" rows="10" class="form-control"></textarea>1) Как мне, например, проверить поле «name», по своему регулярному выражению, до того как его значение попадет в БД? Или вырезать с поля «text» все теги и пропустить через трим, а уже после чтоб летело в БД?
2) Если я добавлю в эту форму еще и свое поле, например:
<input type="text" name="phone" value="[[+phone]]" id="comment-phone" class="form-control"/>То помимо первого вопроса еще возник логичный вопрос, как, при выводе комментариев, дергать данные этого поля с БД? Как я понял, данные поле «phone» летят в поле «properties» таблицы «tickets_comments», что-то вроде этого:{"phone":"12345","requiredFields":"name,email","was_published":false}Возможно есть какой-то плейсхолдер, через который я могу дёрнуть мой «phone», например: [[+properties.phone]]?UPD. около часу спустя
Решил методом тыка проверить свое предположение…
Оказалось, что именно по такой конструкции и пишется плейсхолдер для полей попавших в «properties»:
[[+properties.phone]]Неплохо было бы в мануале это указать.3) Еще возник вопрос относительно того же столбца «properties» таблицы «tickets_comments».
Как контролировать то, что туда летит после отправки данных формы? Можно ли сделать так, чтоб туда вообще ничего не летело кроме ЗАРАНЕЕ перечисленных полей?
Потому как сейчас я вижу довольно таки неприятную картину…
По сути, любой пользователь может закинуть в этот «properties» тонну любой информации.
Например, он может прямо в браузере через инструменты разработчика добавить в форму еще один textarea «text2»,
<textarea name="text2" id="comment-editor" cols="30" rows="10" class="form-control"></textarea>а уже в него вписать текстовый вагон с телегой (и можно только надеяться, что текст будет безобидный), после чего отправляет форму… В результате в поле «properties» таблицы «tickets_comments» будет что-то вроде:{"text2":"My long hacking or vulgar text...","requiredFields":"name,email"}Хотя в чанке, изначально, поля text2 не было.Ребята, Василий, пожалуйста, помогите разобраться!
Гугл перелопатил… ничего толкового.
А в мануале совсем мало информации
Комментарии: 3
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Правильный ли такой подход?
В чанке с формой, вместо:
пишу:
или
или на:
??
Благо есть не малый перечень событий…
Например, OnBeforeCommentSave