Как в Битриксе сохранить большую форму с вложеннсотью?
Всем привет. Столкнулся с весьма сложной, но в тоже время простой проблемой.
Задача сохранить огромную форму из фронтенда (заполняет пользователь в своем личном кабинете) в админку битрикса и чтобы ее через админку можно было редактировать.
Структура формы такая: Создаем проект.. у него есть название, дата и еще несколько простых полей.
Дальше у этого проекта добавляются его участники, участников может быть много.
У каждого участника, помимо его имени, даты рождения, есть возможность добавления бесконечного числа полей для указания соц.сетей.
Дальше у проекта заполняются еще несколько статичных полей по типу описания и тд.
Потом у проекта можно указать цели, кол-во целей тоже не ограниченно...
и все в таком духе... форма очень огромная..
Я вот не пойму как все это сохранить и куда.
Допустим проект это один элемент в инфоблоке, простые поля это дополнительные свойства, также можно через множественные поля добавлять цели т д.. а вот как хранить участников? Множественные поля уже не подходят, т.к. у каждого участника есть несколько своих полей + добавляемые поля для соц.сетей.
Была идея хранить участников с их множественными полями в формате json, но тогда контент-менеджер в админке эти поля не сможет редактировать никак. Или забить на админку и сказать чтобы менеджер редактировал через фронт?
Помогите пожалуйста советом, как это все хранить и где.
По-разному можно сделать, все зависит от твоих амбиций.
1. То как предложил Александр Воробьев в ответе, удобно простотой расширения функционала, если правильно компонент написать и шаблон вывода, то тот-же контент-менеджер при необходимости сможет добавить/удалить поля или может тип поля сменить и т.д.
2. Кстати твой вариант с json тоже имеет место быть, для каждого инфоблока (в настройках инфоблока) можно подключить свою форму редактирования элементов, где ты запросто сможешь распилить свой json
3. Можешь создать свой кастомный тип свойства для хранения этих самых участников, там можешь что угодно сделать. Также этот вариант можно расширить через ORM описав свою сущность
Первым делом нужно начать с ТЗ и проектирования личного кабинета, привлечь для консультации битрикс специалиста. Всё что вы написали возможно для реализации.
Сам проект можно закинуть в инфоблок со всем его полями. Если целей в теории много то можно закинуть их в highloadblock и привязать за тем к полю инфоблока.
Тоже самое с участниками. Заносишь их в другой инфоблок, а по id связываешь с hl ( например эти же соц.сети)