Jak mogę przekazywać argumenty drupal_get_form()
w 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?
}
Odpowiedzi:
Po prostu dodaj
$vars
jako drugi argument.i...
Cytat z drupal_get_form ()
źródło
Dodatkowe argumenty, które przekazujesz,
drupal_get_form()
są dostępne$form_state['build_info']['args']
, ale nie możesz mieć w sobie wywołań funkcjipage arguments
. Sugerowałbym następujące podejście:Reszta jest potrzebna w dokumentacji interfejsu API formularza
źródło
Miałem podobny problem i został rozwiązany przez połączenie odpowiedzi @ kalabro i mojego własnego sposobu radzenia sobie z tym.
Więc w zasadzie mam statyczną stronę docelową, na której używam tokenów. W
hook_tokens
formularzu rejestracyjnym dzwonię za pośrednictwem$form = drupal_get_form('user_register_form', 'register-test');
.I na koniec w hook_form_alter sprawdzam, czy ciąg znaków to „register-test”. Odbywa się to za pośrednictwem
$form_state['build_info']['args'][0]
. Tutaj funkcja:źródło