Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Модуль Conditional Fields. Создание условных полей на Drupal 7

Раздел: 

Условные поля

Возможности CMS Drupal в значительно мере расширяются благодаря установке новых модулей. Сегодня мы поговорим о модуле Conditional Fields.

Описание модуля

Этот модуль позволяет выводить поля на страницу в зависимости от значений других полей.

Рассмотрим данный модуль на примере. Но для самого начала нам его необходимо установить. Как его устанавливать мы можете ознакомиться, прочитав соответствующею статью, а скачать его можете, перейдя по этой ссылке.

Устанавливаем и включаем данный модуль.

Включение модуля

После активации модуля он готов к использованию.

Пример работы с Conditional Fields

Создание полей

Для начала необходимо в выбранном типе материалов создать поля, которые будут связаны между собой. Для этого нам надо выбрать тип материала которому мы будем связывать поля, перейдем в управление его полей. Я выберу тип материала «Article».

Выбираем тип материала

Теперь следует создать поле с условием. В своём случае я создам поле тип выпечки со значениями «Пирожки» и «Торты».

Заполняем поле «Метка», вводим машинное имя, выбирает тип поля «Список (текст)» виджет выставляем по своему усмотрению

зависящее поле

Заполняем Список допустимых значений и нажимаем сохранить

Допустимые значения

Остальные настройки оставляем без изменений.

Затем создаём поля, которые будут зависимы от нашего "типа выпечки". В моем случае это будут «Пирожки» и «Торты», типа ссылка на термин таксономии (как создавать такие поля?), которые мы создадим заранее.

зависящее поле

Настройки данного поля не отличаются от стандартных условий, выбираем словарь, следующую страницу оставляем без изменений и сохраняем настройки.

настройки

Настройки связи

Теперь переходим к настройкам этой самой связи. Для этого необходимо перейти в подраздел «Manage dependencies»

Связь

Перед нами откроется окно имеющее 4 настройки.

Первая Dependent(зависимый) — поле которое будет зависеть от другого. В своём случае я выберу поле «Пирожки»

Второе Dependee(зависящий) — поле, которое будет завесить от Dependent. В своём случая я выберу «Тип выпечки».

Следующее The dependent field is (Зависит поле) - тут выбираем «Видимый» , это значение отвечает за эффект, который будет происходить с зависимым полем при заданных условиях.

Последним выбираем «when the depende» (когда зависим)- has value…( имеет значение …), то самое условие при котором будет срабатывать наш эффект.

поле настроек связей

И нажимаем кнопку добавить.

Первое поле «Condition» - в этом поле мы выбираем условие, которое должно произойти с зависимым полем, для вызова зависящего.

При нажатие на него у нас открывается список с возможными условиями.

Условия

  1. Filled (заполненный) — это условие работает только при наличии текстовых полей. Зависящее поле будет видно, только при наличии текста в зависимом поле.
  2. Пусто — принцип работы такой же как и у условия filled, только на оборот. Пока поле пустое связанное поле видно, а когда в нём появляется текст оно исщезает.
  3. Touched– срабатывает при нажатии.
  4. Untouched — при нажатие скрывает связанное поле.
  5. Focused - срабатывает пока поле находиться в фокусе*
  6. Unfocused — противоположное focused
  7. Значение — поле сработает при соблюдении установленного значения.

Фокус- активное состояние поля заполнения, после щелчка на заполняемое поле оно переходит в состояние фокуса, и будет в нём находиться пока мы не перейдём на другое поле или не выйдем из страницы

Values input mode — поле, как и «INSERT VALUE FROM WIDGET», видно только в случае если выбрано тип условия «Значение». В этом поле мы выставляем как будут задавятся те самые значения при которых будет срабатывать наш модуль.

В своём случае я выберу INSERT VALUE FROM WIDGET, а в появившемся одноимённом поле поставлю галочку возле «Пирожки».

Затем идёт поле «Interaction with other dependencies» - связывает зависимости между собой. Так как у нас нету других зависимостей оставляем его без изменений.

Следующий блок называется «EDIT CONTEXT SETTINGS» и в нём мы выбираем, что должно происходить с нашим полем при соблюдении условия, а также с каким эффектом это будет происходить.

Остальные настройки оставляем без изменений и нажимаем сохранить.

Повторяем те же действия с полем для тортов.

Что получилось в итоге?

Создадим наш тип материала.

Как мы видим, поля «пирожки» и «торты», которые являются ссылкой на термин, не отображаются.

Поля

Если нажать на «Пирожки», которые мы выставили как условия для отображения одноимённого поля, то появится новое поле

Связь с пирожками

Если изменить наш выбор на «Торты» то поле с видами пирожков исчезнет и появиться новое поля с видами тортов.

Вторая связь

Подводя итоги

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

Модуль работает не только с полями конкретного типа материала, а также и с полями пользователей и прочих сущностей, что делает его сферу применения очень обширной.