вы всегда можете использовать drupal_get_form
функция для получения формы в drupal. эта функция позволяет вам отправлять любые необходимые аргументы, например, вы можете вызвать ее так:
$form = drupal_get_form('SOME_FORM_ID', $argument1);
в таком случае $аргумент1
значение передается и может быть доступно в hook_form_SOME_FORM_ID_alter
следующим образом:
if(isset($form_state['build_info']['args'][0]) {
$form['SOME_ELEMENT']['#default_value'] = $form_state['build_info']['args'][0]; //поскольку $arguments1 передается в качестве первого параметра
}
теперь, имея это в виду, чтобы получить веб-форму, используя drupal_get_form
вам нужен этот фрагмент кода (лучше использовать hook_preprocess_HOOK, чтобы добавить веб-форму в ваш массив рендеринга):
$нид = ; //ИДЕНТИФИКАТОР УЗЛА ВАШЕЙ ВЕБ-ФОРМЫ
$ узел = node_load ($ nid);
$submission = (объект) массив();
$включено = ИСТИНА;
$предварительный просмотр = ЛОЖЬ;
$webform = drupal_get_form('webform_client_form_' . $nid, $node, $submission, $enabled, $preview, $YOUR_ADDITIONAL_ARGUMENT);
а затем в файле шаблона вы можете просто распечатать свою веб-форму $:
распечатать drupal_render($webform);
как я уже сказал, вы можете использовать hook_form_alter, чтобы установить значение по умолчанию для вашего скрытого элемента, используя отправленный параметр.