Những gì bạn đang thấy là cách Drupal thể hiện các trường trong một biểu mẫu. Nó bị hỏng như thế này:
- Các phần tử con của mảng ngoài,
$form['field_back']['und']
( 'und'
for 'undefined'
), là các ngôn ngữ khác nhau mà trường đã được dịch sang. Trong Drupal, bạn được khuyến khích để sử dụng LANGUAGE_NONE
cho 'und'
trong mã.
- Các con bên trong mỗi mảng ngôn ngữ, ví dụ
$form['field_feedback']['und'][0]
, đại diện cho các mục khác nhau cho trường. Ví dụ, nếu một lĩnh vực có cardinality không giới hạn, và có một số mục cho lĩnh vực đó, họ sẽ hiển thị như $form['field_feedback']['und'][0]
, $form['field_feedback']['und'][1]
vv
- Cuối cùng, bạn có (các) phần tử đầu vào biểu mẫu, cho chính các giá trị trường, vd
$form['field_feedback']['und'][0]['value']
. Trong trường hợp này, tên cột là value
, đối với kiểu trường tham chiếu nút, nó sẽ nid
như vậy, v.v. Nếu một trường có nhiều cột dữ liệu được liên kết với nó, bạn cũng sẽ thấy nhiều trẻ em hơn. Chúng được đại diện bởi một trường văn bản / hộp chọn / tiện ích đặc biệt và cuối cùng sẽ cung cấp giá trị cho trường.
Thực tế là các tiêu đề đã được thêm vào các yếu tố khác nhau trong toàn bộ hệ thống phân cấp là ngẫu nhiên để thành thật. Việc các tiêu đề đó có được hiển thị trên biểu mẫu hay không tùy thuộc vào các cài đặt cụ thể của mảng kết xuất trong đó mỗi tiêu đề #title
được chứa.
Để thay đổi tiêu đề trên tiện ích biểu mẫu thực tế, bạn chỉ cần lo lắng về phần tử biểu mẫu ở dưới cùng của mảng: tức là các phần tử đầu vào thực tế ( $form['field_feedback']['und'][0]['value']
, v.v.).
Có lẽ đáng lưu ý rằng phần tử / widget được sử dụng cho một trường cụ thể có thể khá phức tạp. Nếu bạn chưa có nó, bạn nên cài đặt mô-đun Devel và sử dụng dpm()
chức năng để kiểm tra $form
mảng; nó sẽ cho bạn thấy chính xác vị trí trong các phần tử mà bạn đang nhắm mục tiêu.