ฉันใช้ฟังก์ชั่นที่แนะนำโดย ttk อย่างเข้มข้น แต่ฉันคิดว่าการอัปเดตล่าสุดทำให้สิ่งต่าง ๆ ยุ่งเหยิง ...
นี่เป็นเวอร์ชั่นใหม่ของโซลูชันก่อนหน้าซึ่งทำงานได้ดีกับ Drupal 7.22 และ ctools 7.x-1.3
ดังนั้นเช่นเดียวกับในโพสต์ก่อนหน้าคุณเรียกฟังก์ชั่นที่คุณกำหนดเองเช่นนี้:
my_field_attach_form('field_body', 'node', 'blog', $node, $form, $form_state, LANGUAGE_NONE);
โปรดสังเกตว่าตอนนี้เอนทิตีบันเดิลเป็นพารามิเตอร์ ฉันทำสิ่งนี้เพราะฉันใช้ฟังก์ชันนี้เพื่อแก้ไขผู้ใช้ด้วย ด้วยวิธีนี้มันยังสามารถใช้สำหรับระยะเวลา taxonomy หรือนิติบุคคลอื่น ๆ
และmy_field_attach_form
ถูกกำหนดเป็น:
function my_field_attach_form($field_name, $entity_type, $bundle, $entity, &$form, &$form_state, $langcode = NULL) {
// Set #parents to 'top-level' if it doesn't exist.
$form += array('#parents' => array());
// If no language is provided use the default site language.
$options = array(
'language' => field_valid_language($langcode),
'default' => TRUE,
);
// Append to the form
ctools_include('fields');
$field_instance = field_info_instance($entity_type, $field_name, $bundle);
$form += (array) ctools_field_invoke_field($field_instance, 'form', $entity_type, $entity, $form, $form_state, $options);
}
ฟังก์ชั่นนี้ช่วยฉันได้มากฉันหวังว่ามันจะช่วยคุณเช่นกัน!
#access = FALSE
ซึ่งดูเหมือนว่าแฮ็คในบริบทนี้