it-swarm-vi.com

Làm cách nào tôi có thể tìm ID biểu mẫu của biểu mẫu?

Làm thế nào để tôi có được id mẫu của mẫu của tôi? Tôi mới bắt đầu thực hiện các mô-đun của mình và tôi đứng yên. Tôi đã nhận được mã này từ người khác và đang cố gắng tùy chỉnh nó:

function hook_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'the form id for the node form') {
    $form['#submit'][] = 'my_custom_submit_handler';
  }
}
23
enchance

Hãy thử in các biến biểu mẫu với PHP print_r .

function hook_form_alter(&$form, &$form_state, $form_id) {
  print_r($form);
}

Khi bạn truy cập trang biểu mẫu được bật, các biến (và tên) sẽ được hiển thị.

Một cách dễ dàng hơn để truy cập (hoặc đúng hơn là xem) thông tin sẽ được sử dụng dpm () chức năng được cung cấp bởi mô-đun Devel . Bạn có thể sử dụng nó giống như cách bạn sẽ sử dụng print_r.

17
Bart

Tìm ID FORM mà không cần cài đặt mô-đun

Tìm ID mẫu rất dễkhông cần cài đặt mô-đun và tất cả

BƯỚC 1 : Mở bạn từ trang chỉnh sửa của nó (HOẶC kiểm tra biểu mẫu của bạn).

BƯỚC 2 : nếu là a dạng nút find "dạng nút" trong phần tử kiểm tra

Finding the form id kiểm tra xem bạn đang ở trong phần tử biểu mẫ.

BƯỚC 3 : xem hình ảnh đính kèm văn bản màu xanh lá cây văn bản là ID của biểu mẫu

BƯỚC 4: QUAN TRỌNG Cuối cùng nếu bạn muốn sử dụng nó trong hook_form_alter() thay thế hypen bằng gạch dưới

Ví dụ: yourform_id_with_content_type_name_form

Giống như khôn ngoan, bạn có thể tìm id ở bất kỳ dạng nào trong drupal tất cả những gì bạn phải làm là kiểm tra-> tìm phần tử biểu mẫu và tìm kiếm thuộc tính ID và sử dụng nó

Hy vọng nó giúp :)

37
DEVARAJ JOHNSON

Nếu biểu mẫu web của bạn được đặt tại "www.mydomain.com/node3531" thì ID biểu mẫu của bạn sẽ là "webform_client_form_351". Vì vậy, bất kể nid của bạn là gì - đó là ID mẫu của bạn.

11
JasmineM

Nếu bạn biết mã ở đâu xác định hình thức bạn muốn thay đổi, hãy nhìn vào đó. Id biểu mẫu chỉ là tên của hàm xác định biểu mẫu đó.

Ví dụ: Lượt xem xác định hàm Views_ui_edit_view_form trên dòng 875 lượt xem/gồm/admin.inc. Bộ lọc khung nhìn Chọn thứ bậc tìm kiếm id mẫu trên dòng 50 của hVELical_select/module/hs_taxonomy_view.module trong hàm hood_form_alter.

6
David L

Sử dụng hàm drupal_set_message() để hiển thị id mẫu.

function hook_form_alter(&$form, $form_state, $form_id) {
drupal_set_message($form_id);
// other codes
}
4
Utsav Sinha

Sử dụng mô đun Lấy ID mẫ để dễ dàng tìm ra id mẫu của bất kỳ biểu mẫu nào trong Drupal.

Đây là một trích dẫn về nó từ trang dự án của nó:

Bằng cách di chuột qua bất kỳ hình thức nào, bạn sẽ thấy một liên kết theo ngữ cảnh có sẵn. Bằng cách mở rộng liên kết, bạn sẽ thấy ID mẫu. Nhấp vào liên kết và bạn sẽ thấy một cửa sổ phương thức với id biểu mẫu có thể sao chép và gợi ý hook hook_form_FORM_ID_alter ().

Mô-đun này không được chấp nhận. Nó đã được cải thiện, mở rộng và đổi thương hiệu thành gỡ lỗi dạng Devel ; sử dụng nó thay thế.

Tiết lộ: Tôi đang duy trì các mô-đun này.

4
Tim

Vì mã bạn đã báo cáo đang tìm ID mẫu của biểu mẫu nút, có hai trường hợp.

Drupal 6

Nếu mã đang cố gắng thay đổi biểu mẫu được sử dụng để đặt cài đặt cho loại nội dung, thì nó nên sử dụng câu lệnh IF sau.

if ($form_id == 'node_type_form' && isset($form['identity']['type'])) { /* … */ }

Nếu mã đang cố gắng thay đổi hình thức chỉnh sửa nút, thì mã nên sử dụng câu lệnh IF sau.

if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }

Drupal 7 trở lên

Trong trường hợp đầu tiên, câu lệnh IF phải là câu lệnh sau:

if ($form_id == 'node_type_form') { /* … */ }

Sử dụng một cách tiếp cận khác, giả sử mymodule là tên viết tắt của mô-đun của bạn, bạn có thể sử dụng mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id). Vì Drupal 7, tất cả các hook được sử dụng để thay đổi biểu mẫu được thực hiện bởi một mô-đun khác lấy $form_id Làm tham số cuối cùng. Xem hook_form_alter () , - hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .

Trong trường hợp thứ hai, câu lệnh IF được sử dụng tương tự cho Drupal 6.

if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }
3
kiamlaluno

Cài đặt đầu tiên mô-đun Devel . Sau đó tạo mô-đun giống như mã bên dưới

function hook_form_alter(&$form, &$form_state, $form_id) {
  dpm($form);
}

Sau đó, bạn có thể thấy TẤT CẢ chi tiết của biểu mẫu, như ID biểu mẫu, tên trường của biểu mẫu, v.v.

1
sokratis