สิ่งที่คุณเห็นคือ Drupal เป็นตัวแทนของเขตข้อมูลในฟอร์ม มันพังลงมาเช่นนี้
- ลูกของอาเรย์ด้านนอก$form['field_back']['und']('und'สำหรับ'undefined') เป็นภาษาต่าง ๆ ที่ฟิลด์ได้รับการแปล ใน Drupal คุณจะแนะนำให้ใช้LANGUAGE_NONEสำหรับ'und'ในรหัส
- เด็ก ๆ ในแต่ละอาเรย์ภาษาเช่น$form['field_feedback']['und'][0]เป็นตัวแทนรายการที่แตกต่างกันสำหรับฟิลด์ ตัวอย่างเช่นถ้าข้อมูลมี cardinality ไม่ จำกัด และมีรายการหลายเขตข้อมูลที่พวกเขาจะแสดงเป็น$form['field_feedback']['und'][0],$form['field_feedback']['und'][1]ฯลฯ
- สุดท้ายคุณมีองค์ประกอบเข้าฟอร์ม (s), $form['field_feedback']['und'][0]['value']ค่าฟิลด์ของตัวเองเช่น ในกรณีนี้ชื่อคอลัมน์คือvalueสำหรับเขตข้อมูลอ้างอิงโหนดพิมพ์มันจะเป็นnidและอื่น ๆ หากเขตข้อมูลมีคอลัมน์ข้อมูลหลายคอลัมน์ที่เชื่อมโยงอยู่คุณจะเห็นเด็ก ๆ เพิ่มขึ้นเช่นกัน เหล่านี้จะถูกแสดงด้วยฟิลด์ข้อความ / เลือกกล่อง / เครื่องมือพิเศษและในที่สุดจะให้ค่าสำหรับฟิลด์
ความจริงที่ว่าชื่อได้ถูกเพิ่มเข้าไปในองค์ประกอบต่าง ๆ ตลอดทั้งลำดับชั้นเป็นเรื่องเล็กน้อยที่จะซื่อสัตย์ ไม่ว่าหัวเรื่องนั้นจะแสดงบนแบบฟอร์มหรือไม่นั้นก็จะเป็นการตั้งค่าเฉพาะของอาเรย์สำหรับการเรนเดอร์ที่แต่ละอัน#titleมีอยู่
ในการเปลี่ยนชื่อเรื่องในวิดเจ็ตแบบฟอร์มที่เกิดขึ้นจริงคุณจะต้องกังวลเกี่ยวกับองค์ประกอบแบบฟอร์มที่ด้านล่างสุดของอาร์เรย์: เช่นองค์ประกอบอินพุตจริง ( $form['field_feedback']['und'][0]['value']ฯลฯ )
อาจเป็นเรื่องที่น่าสังเกตว่าองค์ประกอบ / วิดเจ็ตที่ใช้สำหรับเขตข้อมูลเฉพาะอาจมีความซับซ้อน หากคุณยังไม่มีคุณควรติดตั้งโมดูล Develและใช้dpm()ฟังก์ชันเพื่อตรวจสอบ$formอาร์เรย์ ที่จะแสดงให้คุณเห็นว่าองค์ประกอบที่คุณพยายามจะกำหนดเป้าหมายอยู่ที่ไหนในอาเรย์