Como customizar um formulário de node no Drupal 6 e 7
Submitted by pedrorocha on qui, 22/12/2011 - 11:21
E outra coisa que os Drupaleiros brasileiros volta e meia se embolam é em como utilizar aquela tal de "FAPI", ou "Form API", também conhecida como "aquilo que você precisa saber para fazer módulos que customizem os formulários do Drupal".
Atenção: partirei do módulo criado em http://pedrorocha.net/2011/12/como-criar-um-m%C3%B3dulo-para-drupal-6-e-7
Qual meu objetivo com esse módulo: customizar a página de criação do node do tipo Página(page).
Drupal 6
No arquivo meuprimeiromodulo.module, adicionaremos o seguinte trecho de código:
function meuprimeiromodulo_form_page_node_form_alter(&$form, &$form_state) {
// Exemplo de como mudar o título
drupal_set_title("Eu quero mudar o título do formulário");
// Exemplo de como mudar o tamanho do campo body
$form['body_field']['body']['#rows'] = 3;
// Exemplo de como mudar o texto do botão "Salvar"
$form['buttons']['submit']['#value'] = 'E também quero mudar o botão salvar';
// Exemplo de como adicionar uma função específica sua para ser executada ao
// salvar o node
$form['#submit'][] = 'meuprimeiromodulo_meu_submit_especial';
}
function meuprimeiromodulo_meu_submit_especial() {
/* Aqui vai seu código */
}
Drupal 7
No arquivo meuprimeiromodulo.module, adicionaremos o seguinte trecho de código:
function meuprimeiromodulo_form_page_node_form_alter(&$form, &$form_state) {
// Exemplo de como mudar o título
drupal_set_title("Eu quero mudar o título do formulário");
// Exemplo de como mudar o tamanho do campo body
$form['body']['und'][0]['#rows'] = 3;
// Exemplo de como mudar o texto do botão "Salvar"
$form['actions']['submit']['#value'] = 'E também quero mudar o botão salvar';
// Exemplo de como adicionar uma função específica sua para ser executada ao
// salvar o node
$form['#submit'][] = 'meuprimeiromodulo_meu_submit_especial';
}
function meuprimeiromodulo_meu_submit_especial() {
/* Aqui vai seu código */
}