Comment puis-je transmettre des arguments drupal_get_form()
dans 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?
}
Réponses:
Ajoutez simplement
$vars
comme deuxième argument.et...
Citation de drupal_get_form ()
la source
Les arguments supplémentaires auxquels vous passez
drupal_get_form()
sont disponibles dans$form_state['build_info']['args']
, mais vous ne pouvez pas avoir d'appels de fonction dans votrepage arguments
. Je suggérerais l'approche suivante:Le reste de ce dont vous avez besoin se trouve dans la référence de l'API Form
la source
J'ai eu un problème similaire et il a été résolu avec un mélange de la réponse de @ kalabro et de ma propre façon de le gérer.
Donc, fondamentalement, j'ai une page de destination statique où j'utilise des jetons. Dans le
hook_tokens
j'appelle le formulaire d'inscription via$form = drupal_get_form('user_register_form', 'register-test');
.Et enfin dans le hook_form_alter je vérifie si la chaîne est "register-test". Cela se fait via
$form_state['build_info']['args'][0]
. Voici la fonction:la source