Домой Wp-Recall WP-Recall: Предложения и идеи Добавление полей в форму публикации
6 ответ(ов) в теме
Preci
не в сети 5 часов
На сайте с 11.11.2014
Участник
Тем 66
Сообщения 1011
1
17:54
Версия WP-Recall: 16.23

Задача:

Добавить поле в форму публикации, например с выпадающим списком пользователей по типу профиля. При этом поле должно быть видно в конструкторе формы.

Сейчас если создать дефолтное поле и присвоить ему в values список пользователей, то этот список фиксируется таким, каким он был на момент добавления в конструктор формы и если пользователи были удалены / добавлены - в форме публикации это никак не отразится.

Из-за чего приходится добавлять это поле в дефолтные как тип custom

А затем через фильтр rcl_public_form_fields перед выводом фильтровать все поля, искать наше и редактировать его

$fields[$key]['type'] = 'select';
$fields[$key]['empty-first'] = 'Не выбрано';
$fields[$key]['values'] = $select_users;

Было бы, конечно, в сто раз удобнее если бы достаточно было 1 раз добавить поле, без дополнительных манипуляций

0
Андрей CS
не в сети 8 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 14823
2
17:59

может быть указывать какой то callback в массиве поля, который будет формировать его значения?

0
Preci
не в сети 5 часов
На сайте с 11.11.2014
Участник
Тем 66
Сообщения 1011
3
18:08

Ну получается тут 2 варианта решения:

1. Добавлять callback
2. Пробовать как-то добавлять поля в редактор форм, которые добавлены через фильтр rcl_public_form_fields

Главная цель что бы значения были динамические и поле было в редакторе, чтобы можно было его в любое место поместить.

С callback то же проблема может возникнуть:

Например на сайте 1000 пользователей и выбор формируется из 500.

Тогда, с callback, вероятно, в админке в редакторе форм при раскрытии этого поля будет показываться 500 значений. А если не показывать значения для полей с callback, то может какие проблемы всплывут?

0
Андрей CS
не в сети 8 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 14823
4
18:22

Я вижу лучшим решением работать с атрибутом callback у поля, в менеджере полей его не вызывать, чтобы там значению не генерились. Поле с пустым значением value вполне может находится в менеджере, никаких проблем быть не должно.
У полей разных типов значения могут находится в values или в value, поэтому предлагаю callback вешать на атрибут default, который подменяет значения поля, если они пустые, этот атрибут одинаков для всех типов, должен подойти.
Но надо продумать еще все.

0
Preci
не в сети 5 часов
На сайте с 11.11.2014
Участник
Тем 66
Сообщения 1011
5
18:36

А как отличать что в default именно callback? Если по function_exists то будет проблема:

Если в default например указано 'reset' - то в php есть такая функция.

0
Андрей CS
не в сети 8 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 14823
6
18:58

не, предлагают отдельный параметр callback и уже в него складывать нужные данные для инициализации функции

0
Вы не имеете права на публикацию сообщений в этой теме