Перейти к основному содержимому

Выбор элемента из коллекции CMS (строка), провайдер даты волонтеров Академии

Выглядит как селект с одиночным выбором.

Опции подтягиваются из коллекции CMS.

Настройки

1. Заголовок - лейбл

2. Плейсхолдер - понятно

3. Коллекция

Обычно это коллекция Цветной аккордеон ...

к сведению

Для разработчиков: подойдет любая коллекция с интерфейсом

interface CollectionItem {
id: string;
name: Record<string, string>;
}

То есть вообще абсолютно любая.

осторожно

Если коллекция не придет (не опубликована или не выбрана) - страница заявки свалится в 404.

4. Элемент, при котором нужно отображать доп. задание

Если пользователь выберет этот элемент коллекции, и в заявке есть один из следующих блоков:

  • [Видеовизитка волонтеров Академии и креативный видеоролик] То в этом блоке появится еще два поля. Подробнее по ссылке на блок.
осторожно

Если элемент в CMS не выбран - дополнительные поля в том блоке не появятся ни при каких условиях.

5. Ключ

Ключ поля из CMS. Поле в CMS должно быть типа Строка. Можно обязательное.


Принцип работы

Из коллекции приходит список элементов

[
{
"id": "1",
"name": {
"RU": "Яблоко",
"EN": "Apple"
}
},
{
"id": "2",
"name": {
"RU": "Апельсин",
"EN": "Orange"
}
}
]

Они отображаются в списке опций селекта, в зависимости от текущего языка. Например, текущий язык - русский. Тогда список будет

Яблоко
Апельсин

В заявке у пользователя по ключу _KEY_ сохранено некое строковое значение

Это значение ищется в опциях по текущему языку.

  • Если не нашлось - в селекте ничего не выбрано.
  • Нашлось - в селекте выбрано именно та опция, которая подошла.

Например, сейчас русский язык:

  • У юзера в заявке было выбрано Яблоко. Тогда в селекте при загрузке страницы будет выбрана опция с id="1".
  • У юзера в заявке значение Арбуз. В селекте ничего не будет выбрано.
  • У юзера в заявке значение Apple. В селекте ничего не выбрано.

При отправке заявки

В поле заявки с кодом _KEY_ отправляется строка - текущая опция, и ее название в текущем языке.

Например, текущая опция, выбранная пользователем

{
"id": "2",
"name": {
"RU": "Апельсин",
"EN": "Orange"
}
}

Если текущий язык - английский, на бек отправится значение Orange