Как создать обработчик для собственной формы и куда его поместить?

Главные вкладки

Аватар пользователя ali-big ali-big 2 апреля 2016 в 20:26

Доброго времени суток, переделываю сайт с html на друпал. Ранее создавал все формы через webform, но есть готовая форма на html5 и никак не могу разобраться куда вставить обработчик и как его вообще создать. Перегуглил и переяндексил все что мог вплоть до 10-х страниц. Form Api изучать некогда. Нашел вот это: http://www.drupal.ru/node/40831 но тоже не пойму как это делать. Добрые друпаллеры помогите пожалуйста!

код самой формы прост:

Ваш телефон:
Например "8 978 321456"
Отправить

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 2 апреля 2016 в 22:16
myModule_form($form, &$form_state){
$form['phone'] = array(
'#type' => 'textfield',
'#title' => t('Your phone'),
'#description'=> t('Example 8 978 321456'),
 '#size' => 17,
'#maxlength' => 15
);
$form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Send'),
);
}
myModule_form_submit($form, &$form_state) {
...
}
Аватар пользователя .poltergeist .poltergeist 3 апреля 2016 в 1:42

готовая форма на html5 вам не поможет, только если стили содрать. в конструкторе формы прописывате textfield поле или любое другое, см. пред. сообщение
а в сабмите всё остальное, что должно происходить. также есть hook_form_validate для валидации
аякс прицепляется через '#ajax' с указанием коллбэка и обертки, в которую вернется результат
делать всё это надо в отдельном модуле
посмотрите examples модуль, он вам поможет в понимании кода (внутри модуля отдельная директория по form api)

Аватар пользователя abutan abutan 3 апреля 2016 в 12:13

Вы не поняли. В drupal, если вы не хотите пользоваться готовым модулем WEBFORM, можно написать свою форму. Писать ее надо в своем модуле. Как делать модуль материалов очень много. Что и как можно писать в форму описано здесь . Там же в модуле описываете и обработчик формы, hook_validate и hook_submit. Выводить форму можно на страницу, в блок, модальное окно и тп. Но в браузере вы естественно будете видеть только hnml, то есть стандартные form, input и что вы там еще напишете.