instantsoft / icms2

Self-hosted Site Management System
https://instantcms.ru
GNU General Public License v2.0
295 stars 120 forks source link

Связи полей со значением родителя - предложение #1127

Open iAndroS opened 4 years ago

iAndroS commented 4 years ago

Столкнувшись с очередной задачей, снова упираюсь в невозможность ее решения даже с помощью сторонних компонентов и полей. Итак, я предлагаю внедрить в ядро возможность создания дочерних полей к имеющимся в типе контента значениям полей Список/Мультисписок. Я вижу это как отдельный чекбокс в настройке ЛЮБОГО поля (за исключением системных), при клике по которому появляется выбор полей из текущего типа контента (также за исключением системных), который можно указать как родительский. После этого выбираем значение данного поля, к которому будет происходить привязка. При этом при добавлении контента дочерние поля не будут показываться, пока не будет выбран родительский, тоже самое с фильтрацией. При редактировании записи при снятии галочки с родителя значение дочернего поля обнуляется.

Важное замечание: для этого нужно дополнительно написать или обновить системное поле списков, чтобы решить проблему с изменением значений этих списков. Дать возможность элементам списка быть измененными, перемещенными между значениями и пристроить возможность фильтрации по принципу И/ИЛИ.

Что нам это даст?

  1. ОЧЕНЬ гибкие возможности по конструированию сложных и не очень каталогов
  2. Улучшение пользовательского юзабилити
  3. Отсутствие необходимости пилить кучу однообразных по возможностям компонентов и полей, различающихся между собой мелкими деталями. Пример тому в каталоге
fuzegit commented 4 years ago

чтобы решить проблему с изменением значений этих списков

проблема давно решена

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

iAndroS commented 4 years ago

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

Это в 2.12.3? В 2.12.2 не вижу такого. Подскажите, пожалуйста, последовательность кликов или скриншот?

fuzegit commented 4 years ago

Это уже давно в многих формах в админке. Например, кликните на "Управление сроком публикации" и увидите что появятся/исчезнут связанные с этой опцией поля.

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

iAndroS commented 4 years ago

Это уже давно в многих формах в админке

Понял ))) Ну, так я ж не для админки предлагаю, а для морды сайта, в частности, для настроек связей полей...

fuzegit commented 4 years ago

Для морды это тоже работает, если вернуться к вопросу

в невозможность ее решения даже с помощью сторонних компонентов и полей

и пристроить возможность фильтрации по принципу И/ИЛИ

Принцип фильтрации в текущем поле менять не планируем. Почему, я объяснял.

iAndroS commented 4 years ago

Для морды это тоже работает, если вернуться к вопросу

Можно ссылочку на документацию, где описывается реализация подгрузки дочерних полей в зависимости от выбора значения родительского? Может, я несколько неправильно сформулировал свое предложение... Переиначу... Допустим, у меня есть необходимость создания каталога автодилеров. При добавлении записи есть поле мультисписок с множественным значением, пусть это будут значения "Новые, БУ, Неисправные". Далее при выборе значения "Новые" подгружаются дополнительные поля типа "Марки в наличии" и тд, при выборе БУ поля с другими характеристиками. Я бы мог решить свою задачу категориями, но вы еще 3 года назад не поняли сути имеющейся проблемы. По сути, я снова возвращаюсь к данному вопросу, но с другой стороны... Не хватает гибкости инстанту, как ни крути...

iAndroS commented 4 years ago

Я правильно понимаю, что данное предложение можно считать отклоненным?

fuzegit commented 4 years ago

Нет. Неправильно считаете.

iAndroS commented 4 years ago

Нет. Неправильно считаете.

в таком случае мое предложение в ЛС на сайте в силе.