Пов’язані елементи форм в Drupal 7: enabled або доступність
Чи Знали ви, що Drupal 7 крім усього іншого CMS, що є в FAPI (Form API) володіє можливостями створення зв’язаних елементів веб-форм.
Що це означає? Це означає, що можна відносно гнучко створювати умови для зміни атрибутів різних елементів в залежності від різних умов. Загалом кажучи це все відразу не пояснити, бо дивимося на приклад програмного коду.
Тому просто спробуємо реалізувати спрощений аналог форми “Повідомити про новому сайті”, що є в сервісі Яндекс.Вебмастер.
<?php
function druwebru_add_site($form, &$form_state) {
$form[‘sitename’] = array(
‘#title’ => ‘Сайт’,
‘#type’ => ‘textfield’,
‘#description’ => ‘Наприклад, http://druweb.ru’,
);
$form[‘actions’] = array(‘#type’ => ‘actions’);
$form[‘actions’][‘add_site’] = array(
‘#type’ => ‘submit’,
‘#value’ => ‘Додати сайт’,
‘#states’ => array(
‘enabled’ => array(
‘input[name=”sitename”]’ => array(‘filled’ => TRUE),
)
),
);
return $form;
}
?>
Спрощений він тому, що в оригінальному Вебмастере є ще перевірка на те, що введений саме адресу сайту, а у нас її немає. У нас просто кнопка, яка стає доступною, коли користувач заповнив полі, і навпаки знову недоступною, коли поле стане порожнім. Конструкція, що відповідає за це дію знаходиться на ділянці з 12-го по 16-ю. рядок коду.
Власне все це потужний API CMS Drupal.