Score:1

ฉันจะบังคับใช้คำนำหน้าชื่อเครื่องเริ่มต้นได้อย่างไร

ธง cn

เรากำหนดให้ผู้ดูแลไซต์สร้างเว็บฟอร์มใหม่โดยมีชื่อเครื่องขึ้นต้นด้วย งาน_. (นี่เป็นเพราะการตั้งค่าการเพิกเฉยต่อการกำหนดค่าเป็นละเว้น เว็บฟอร์ม.เว็บฟอร์ม.ไซต์_* สำหรับแบบฟอร์มที่ผู้ใช้สร้างขึ้น ในขณะที่แบบฟอร์มอื่นๆ เป็นส่วนหนึ่งของการกำหนดค่า) คุณจะตรวจสอบความถูกต้องและตั้งชื่อเครื่องเว็บฟอร์มให้ขึ้นต้นด้วยค่านำหน้านี้ได้อย่างไร

Score:1
ธง cn

ด้วยการเพิ่มรหัสนี้ในโมดูล ผู้ดูแลระบบสามารถสร้างแบบฟอร์มที่สามารถส่งออกไปยังการกำหนดค่าได้ ในขณะที่ผู้ใช้รายอื่นที่มีสิทธิ์ในการสร้างเว็บฟอร์มจะมีชื่อเครื่องที่ตั้งค่าโดยอัตโนมัติด้วย งาน_ คำนำหน้า

ฟังก์ชัน 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);
      }
    }
  }
}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา