คุณสามารถใช้งานได้เสมอ drupal_get_form
ฟังก์ชั่นดึงฟอร์มใน drupal ฟังก์ชันนี้ให้คุณส่งอาร์กิวเมนต์ที่จำเป็น เช่น คุณสามารถเรียกมันว่า:
$form = drupal_get_form('SOME_FORM_ID', $argument1);
ในกรณีนี้ $argument1
ค่าผ่านและสามารถเข้าถึงได้ใน hook_form_SOME_FORM_ID_alter
ดังต่อไปนี้:
ถ้า (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 = node_load($นิด);
$submission = (วัตถุ) อาร์เรย์ ();
$enabled = จริง;
$ดูตัวอย่าง = FALSE;
$webform = drupal_get_form('webform_client_form_' . $nid, $node, $submission, $enabled, $preview, $YOUR_ADDITIONAL_ARGUMENT);
จากนั้นในไฟล์เทมเพลตของคุณ คุณสามารถพิมพ์ $webform ของคุณ:
พิมพ์ drupal_render($webform);
อย่างที่ฉันบอกว่าคุณสามารถใช้ hook_form_alter เพื่อตั้งค่าเริ่มต้นขององค์ประกอบที่ซ่อนอยู่โดยใช้พารามิเตอร์ที่ส่ง