Использование функции visible_depend в полях с включенной is_chosen_multiple

InstantCMS 2.X
#1 27 октября 2023 в 21:22

Здравствуйте. Есть ли какой-то метод показа зависимости полей в опциях, если у поля включено

  1. 'is_chosen_multiple' => true

Были испробованы различные попытки показа зависимого поля, но ни hide ни show не реагируют на заполнение.

#2 28 октября 2023 в 08:45

А так пробовали?

  1. 'visible_depend' => ['type:' => ['show' => ['1']]]

Тут type — поле с is_chosen_multiple стоит с двоеточием

#3 28 октября 2023 в 21:22

 Loadырь, благодарю, никогда бы не додумалась )

Добавлено спустя 8 часов

Увы, решение от  Loadырь тоже не сработало. 

#4 28 октября 2023 в 22:14

тоже не сработало. 

Anastasia

А что именно хотели сделать?

#5 29 октября 2023 в 01:11

 Loadырь, в своём контроллере я подключила поле, в которых можно выбрать какие-то поля из типа контента.:

  1. new fieldList('field_controller', array(
  2. 'title' => 'Поля записи',
  3. 'parent' => array(
  4. 'list' => 'ctype',
  5. 'url' => href_to('content', 'widget_fields_ajax')
  6. ),
  7. 'is_chosen_multiple' => true,
  8. 'generator' => $field_generator
  9. )),

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

  1. new fieldString('view_title', array(
  2. 'title' => LANG_BUILDER_VT,
  3. 'visible_depend' => ['field_controller' => ['hide' => ['']]]
  4. )),

Пробовала добавлять вашу конструкцию — не работает. Пробовала прописывать options: — и делать зависимость через него. Но — не работает. Если отключить multiple — все начинает прекрасно работать.

#6 29 октября 2023 в 09:53
  1. 'visible_depend' => ['field_controller' => ['hide' => ['']]]

 Тут type — поле с is_chosen_multiple стоит с двоеточием

 Loadырь это писал выше, следовательно должно быть 

  1. 'visible_depend' => ['field_controller:' => ['hide' => ['']]]

 И еще бы посмотреть что у вас в переменной 

  1. $field_generator

Скорее всего нужно будет добавить еще нулевое значение типа

  1. [0]=>'Выбрать значение';

ну и тогда проверка должна быть 

  1. 'visible_depend' => ['field_controller:' => ['hide' => ['0']]]
#7 29 октября 2023 в 13:24

 maxisoft, да, я пробовала вариант от Loadырь. И так как вы написали — тоже. Передавала в проверку и 0 и null. Могу скинуть вам файл опций. Возможно есть какая-то деталь, которую упускаю, но пока не могу понять. 

#8 29 октября 2023 в 13:27

Как у вас формируется вот этот массив $field_generator

#9 29 октября 2023 в 13:41

 maxisoft, вот так:

  1. $field_generator = function ($item, $request) use($content_model) {
  2. $list = ['' => ''];
  3. $ctype_id = is_array($item) ? array_value_recursive('ctype_id', $item) : false;
  4. if (!$ctype_id && $request) {
  5. $ctype_id = $request->get('ctype_id', 0);
  6. }
  7. if (!$ctype_id) {
  8. return $list;
  9. }
  10. $ctype = $content_model->getContentType($ctype_id);
  11. if (!$ctype) {
  12. return $list;
  13. }
  14. $fields = $content_model->getContentFields($ctype['name']);
  15. if ($fields) {
  16. $list = $list + array_collection_to_list($fields, 'name', 'title');
  17. }
  18. return $list;
  19. };
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.