ttk가 제안한 기능을 집중적으로 사용하고 있었지만 최근 업데이트로 인해 문제가 발생했다고 생각합니다 ...
다음은 Drupal 7.22 및 ctools 7.x-1.3에서 잘 작동하는 이전 솔루션의 새 버전입니다.
따라서 이전 게시물과 같이 다음과 같이 사용자 정의 함수를 호출합니다.
my_field_attach_form('field_body', 'node', 'blog', $node, $form, $form_state, LANGUAGE_NONE);
엔티티 번들 은 이제 매개 변수입니다. 이 기능을 사용하여 사용자를 편집했기 때문에이 작업을 수행했습니다. 이런 식으로, 분류 용어 또는 다른 엔티티에도 사용될 수 있습니다.
그리고 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
에서 해킹 된 것처럼 보이는 설정 대신 다른 콘텐츠 유형처럼 필드를 제어 할 수 있도록 더미 콘텐츠 유형을 만들었습니다 .