Construindo um formulário Drupal simples

Você já quis fazer um formulário personalizado? Talvez você tenha um módulo personalizado e ache a API de formulário do Drupal confusa?

A API Drupal Form pode ser assustadora.
http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7

Aqui está um exemplo simples de como criar um formulário personalizado.
Vamos fingir que você tem um módulo personalizado chamado MyModule :

function MyModule_test_form(){
$form
['email'] = array(
'type'=>'textfield',
'title'=>'Enter your email:',
);
$form
['submit'] = array(
'type'=>'submit',
'value'=>'Subscribe',
);
return $form;
}

Para usar o formulário, você só precisa usar drupal get form () .

drupal_get_form('test_form');

Você pode aprender mais sobre a API de formulário aqui: http://drupal.org/node/751826

Para mim, a coisa mais poderosa sobre a API de formulário é a maneira como você pode lidar com a validação e o envio de formulários.

Vamos escrever um manipulador de validação para garantir que o e-mail inserido seja válido:

function MyModule_test_form_validate($form, &$form_state){
$v
= $form_state['values'];
if(empty($v['email'])){
// When you call form_set_error(), that stops the form
// submission process
form_set_error
('email','Oops, email address is required!');
}
if(!valid_email_address($v['email'])){
form_set_error
('email', "Oops, that's not an email address!");
}
}

Se o formulário passar na validação, podemos enviar o formulário.

function MyModule_test_form_submit($form, &$form_state){
$v
= $form_state['values'];
MyModule_subscribe($v['email']);
}

Construir formulários no Drupal é muito divertido!