Я знаю, что это старый, но мне нужно то же самое, поэтому я надеюсь, что это поможет другим в поиске.
Мне потребовались значения из предыдущего шага веб-формы для моего пользовательского компонента веб-формы. Хук _webform_redner_[component](...)
не предоставляет form
или form_state
, а также данные предыдущих шагов (больше, чем предыдущий шаг, который был только что отправлен) отсутствует в $_POST
.
Чтобы решить эту проблему, я вручную извлекаю форму из системы кэширования форм Drupal, используя form_build_id
, который находится в переменной $_POST
.
/* ... */
$form_state = array();
// Get the form_state to pass on to our build function.
// Webforms doesn't provide it at this point so we'll need to manually get it using the form's build_id.
$form = form_get_cache($_POST['form_build_id'], $form_state);
/* ... */
Теперь у вас есть все form
и form_state
, которые также включают значения предыдущих шагов.