Drupal 7)에서 Field API를 사용하여 만든 필드에 대한 코드를 사용하여 무제한의 값을 강제로 적용하는 방법은 무엇입니까? 이 필드의 인스턴스를 만들려면 값 수를 1에서 무제한으로 설정해야합니다.
직접 만든 필드 유형을 의미합니까?
선언 할 실제 API는 없습니다. 추가/편집 필드 양식을 변경하는 것만 가능합니다.
속성 모듈을 위해 이미이 작업을 수행했습니다. 다음은 코드입니다 ( source) :
function properties_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
if ($form['#field']['type'] == 'properties') {
// Hide the cardinality setting on the field settings for properties fields.
$form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
$form['field']['#access'] = FALSE;
}
}
(form_alter 후크를 변경 한 후 캐시를 비우는 것을 잊지 마십시오. 인스턴스 설정 인 경우 인스턴스를 삭제하고 다시 작성하여 이전 기본값을 제거하십시오)
Hook_form_field_ui_field_edit_form_alter ()를 사용하는 대답은 작동하지만 카디널리티뿐만 아니라 필드 가시성 및 권한을 숨 깁니다. 카디널리티를 비활성화하는 것을 선호합니다.
$form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
$form['field']['cardinality']['#disabled'] = TRUE;