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!