Связанные элементы форм в 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;
}
?>

Drupal 7 - зависимые элементы формы: enabled

Упрощенный он потому, что в оригинальном Вебмастере есть ещё проверка на то, что введен именно адрес сайта, а у нас её нет. У нас просто кнопка, которая становится доступной, когда пользователь заполнил поле, и наоборот снова недоступной, когда поле станет пустым. Конструкция, отвечающая за это действие находится на участке с 12-ой по 16-ю. строчку кода.

Собственно все это мощный API CMS Drupal.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.