→ Зависимые поля - Conditional Fields (Drupal module)

Рассмотрим модуль Conditional Fields. Этот модуль позволяет сделать зависимые поля. Т.е поле (зависимое или условное) появляется только после выбора определенной опции в предыдущем поле (CCK-виджете).

Как это работает

Допустим вы делаете анкету или форму, которую должен заполнить пользователь. Модуль Conditional Fields позволяет создать условия для вызова и показа определенных полей. В зависимости от того, что выбирает юзер ему будут показываться, заранее подготовленные Вами поля. Это особенно может быть полезно если форма получается большая или вы просто хотите спрятать "лишние" поля, чтобы сразу не отпугивать юзера.

Пример использования

Если вы делаете форму, анкету, бриф и "это" получается громоздким, то будет вполне уместно заранее скрыть "лишние" поля.

Приступим. Для примера делаем обычный вопрос для анкеты. Естественно сначала устанавливаем Conditional Fields (требует CCK)

Пример: Вопрос в анкете со следующей структурой.

У вас есть машина?—|
                    |—-> да
                    |      |—--—--> Марка
                    |                /
                    |            Lada       BMW
                    |             |__________|
                    |           1       |       2
                    |       Модель < —-+—- > Модель
                    |           /                 \
                    |   Priora Coupe              Z-3
                    |   Priora                    Z-8
                    |   Kalina
                    |   Силуэт
                    |
                    |—-> нет

Описание: Если пользватель выбрал "да" ? появляется зависимое поле-список с лейблом "Марка", он выбирает марку и появляется еще одно зависимое поле-список с лейблом "Модель". Если пользователь выбрал "нет" ? он не видит полей зависимых от поля "да" и просто переходит к следующему вопросу.

Отметьте, что это делается без использования таксономии.

Действия

  1. Создаем поле вопроса "У вас есть машина?" и ответа с радио-кнопками ? "да" и "нет" (без кавычек).
  2. Создаем поле-список "Марка" и определяем, что это поле будет зависеть от ответа "да". В списке ответов напишем: Lada и BMW.
  3. Создаем первый список с моделями для Lada и определяем зависимость от поля Lada.
  4. Создаем второй список с моделями для BMW и определяем зависимость от поля BMW.

В настройках зависимых полей (или полей по условию) вы можете определить отображение этих полей, как:

  • не использовать javascript. Поля будут спрятаны только при просмотре материала.
  • скрыть (будут спрятаны)
  • отключить (будут показаны, но не активны)

Причем отображение настраивается и для показа при просмотре материала, и при создании.

Для тех кто "в танке" или просто любит наглядность — смотрите скринкаст.

Если у вас медленное соединение вы можете Загрузить скринкаст - "Зависимые поля - Conditional Fields" (размер 9,9МБ), для личного просмотра, а не для размещения на другом интернет ресурсе.

RSS-материал

15 Комментариев [Нет новых]

Аватар пользователя %username%

>> Если у вас медленное соединение вы можете скачать скринкаст Conditional Fields (80) (размер 9,9МБ),

Битый файл? Скачивается 2 мб и всё

Аватар пользователя EllECTRONC

Ссылка обновлена.
Теперь файл качается полностью.

Аватар пользователя %username%

Спасибо, сейчас нормальный объём, но не смотрел

Аватар пользователя Pavel

А есть ли что-нибудь подобное во views, чтобы фильтр появлялся по поусловию другого фильтра?

Аватар пользователя EllECTRONC

Хм… точно не помню такого… не попадалось.

Аватар пользователя Павел

Пытаюсь создать зависимость от списка, а не от радиобатона и зависимости не появляется (((

Аватар пользователя Павел

Извините, все заработало.
Присоединяюсь к Pavel.

Аватар пользователя EllECTRONC

@Pavel и Павел, на счет фильтров по условию другого фильтра есть Hierarchical Select (как обещают совместимость с CCK, Таксономия, Views)… правда он еще в дев, можете попробовать потом расскажете. Есть еще модуль Exposed Filters…

Аватар пользователя EllECTRONC

Для D6 вышел официальный релиз conditional_fields-6.x-1.0: November 28, 2009 - 18:08

Аватар пользователя Гость

Спасибо, пригодилось Улыбка

Аватар пользователя mamba

Странно, что в комплекте нет ru.po

Аватар пользователя EllECTRONC

Что странного? Перевод есть не во всех проектах. Даже в модулях от русских собратьев бывает нет перевода. Однако не вижу в этом проблему.

Аватар пользователя Валерий

Я так понял в базе создаются дополнительные поля model и model1
Т.е. представим, у нас список областей и населенных пунктов, примерно 20 тыс. записей, и данный модуль создает поля в базе gorod1 … gorod20569.
Таблица получается из более чем 20 тыс. колонок.
—--—--—-

Вопросы:
1. Я правильно понял действие данного модуля?
2. Как с таким монстром работать?

Аватар пользователя EllECTRONC

Почему бы просто не использовать Hierarchical Select и древовидный словарь таксономии?

Аватар пользователя Гость

Спасибо за скринкаст и пост о модуле на друпал.ру

Что ты об этом думаешь?

МультиВход
ИЛИ

Комментарии