Como posso passar argumentos drupal_get_form()
no Drupal 7?
function new_menu_callback() {
$vars = some_example_function(); // returns: array(1 => 'one', 2 => 'two');
$output = $vars[2];
$output .= drupal_render(drupal_get_form('new_form'));
}
function new_form($form, &$form_state) {
// How can I access $vars[1] from new_menu_callback() here?
}
Respostas:
Apenas adicione
$vars
como segundo argumento.e...
Citação de drupal_get_form ()
fonte
Os argumentos adicionais pelos quais você passa
drupal_get_form()
estão disponíveis$form_state['build_info']['args']
, mas você não pode ter chamadas de função no seupage arguments
. Eu sugeriria a seguinte abordagem:O restante do que você precisa está na referência da API do formulário
fonte
Eu tive um problema semelhante e foi resolvido com uma mistura de respostas do @ kalabro e minha própria maneira de lidar com isso.
Então, basicamente, eu tenho uma landing page estática onde uso tokens. No
hook_tokens
eu chamo o formulário de registro via$form = drupal_get_form('user_register_form', 'register-test');
.E, finalmente, no hook_form_alter, verifico se a String é "register-test". Isso é feito via
$form_state['build_info']['args'][0]
. Aqui a função:fonte