ด้วยการเพิ่มรหัสนี้ในโมดูล ผู้ดูแลระบบสามารถสร้างแบบฟอร์มที่สามารถส่งออกไปยังการกำหนดค่าได้ ในขณะที่ผู้ใช้รายอื่นที่มีสิทธิ์ในการสร้างเว็บฟอร์มจะมีชื่อเครื่องที่ตั้งค่าโดยอัตโนมัติด้วย งาน_
คำนำหน้า
ฟังก์ชัน mymodule_form_alter(&$form, FormStateInterface $form_state, $form_id) {
// เพิ่มการตรวจสอบให้กับเว็บฟอร์มเพื่อตรวจสอบชื่อเครื่องเมื่อสร้าง
ถ้า ($form_id == "webform_add_form") {
$form['#validate'][] = 'webform_create_validation';
}
}
ฟังก์ชัน webform_create_validation (&$form, FormStateInterface $form_state) {
$current_user = \Drupal::currentUser();
// หากผู้ใช้สร้างเว็บฟอร์มไม่ใช่ผู้ดูแลระบบ
ถ้า (!in_array('administrator', $current_user->getRoles())) {
// รับชื่อเครื่องของเว็บฟอร์มที่กำลังสร้าง
$ent = $form_state->getFormObject()->getEntity();
ถ้า (isset($ent)) {
$id = $ent->id();
// ตรวจสอบดูว่าชื่อเครื่องเว็บฟอร์มขึ้นต้นด้วย "site_" หรือไม่
// ถ้าไม่มี ให้เพิ่มและบันทึก
ถ้า (substr($id, 0, 5) !== "site_") {
$new_id = 'ไซต์_' รหัส $;
$form_state->setValue('id', $new_id);
}
}
}
}