Изображение пользователя snetcher.

После того как мой производственный транс перевалил на вторые сутки я решил отдохнуть, а как учили нас авторитеты прошлого - "Лучший отдых - это смена вида деятельности...". Вот я и решил вылезти из кода и написать, что ни будь полезное, а полезное у нас сегодня "Conditional Fields". Модуль незамысловатый, но полезный. Работает в связке с CCK, а нужен он, собственно, вот зачем: он позволяет отображать или скрывать одни поля при выборе определенных значений в других. На первый взгляд путано, но на деле всё просто.

Приступим:

О необходимости и процессе установки CCK я рассказывать не буду там всё просто.

Качаем Conditional Fields и включаем его на странице admin/build/modules наряду с Content, Option Widgets (нужен нам для создания выпадающего списка, используемого в нашем примере) и Text.

Создаем новый тип материала (admin/content/types/add)

Name:
test material
Type:
test_material

остальные поля нас не интересуют в рамках этой статьи.

Переходим на страницу управления полями только что созданного нами материала (admin/content/node-type/test-material/fields) и добавляем новое поле

Label:
testselect
Field name:
field_testselect
Type of data to store:
text
Form element to edit the data:
Select list

Save

Добавляем список допустимых значений (Allowed values list)

red|Красный
green|Зеленый
blue|Синий
other|Другой

другие настройки не трогаем (для нашего примера, во всяком случае, этого не нужно)

Save

Добавляем еще одно поле

Label:
Custom Color
Field name:
field_custom_color
Type of data to store:
text
Form element to edit the data:
Text field

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

Save

Заходим снова в настройки поля "Custom Color" и в разделе "Conditional fields settings" из списка допустимых значений поля testselect выбираем "Другой"

Save

Рядом с закладкой "Display fields" появилась закладка "Conditional fields", в ней доступны некоторые настройки которые вполне можно проигнорировать в рамках данной статьи, чем я и намерен заняться )), а Вам советую заглянуть и в разделе "Animation" выбрать "Slide down", а скорость анимации (Speed) оставить как есть.

Save

И, наконец, идем проверять работоспособность нашего решения. Создадим наш материал (node/add/test). В форме создания материала видим поле "testselect", но, поля "Custom Color" не видно, что бы оно появилось необходимо из выпадающего списка "testselect" выбрать пункт "Другой".

Вот собственно и всё.