it-swarm-ko.com

Field API를 사용하여 필드가 무제한의 값을 허용하도록 강제하는 방법은 무엇입니까?

Drupal 7)에서 Field API를 사용하여 만든 필드에 대한 코드를 사용하여 무제한의 값을 강제로 적용하는 방법은 무엇입니까? 이 필드의 인스턴스를 만들려면 값 수를 1에서 무제한으로 설정해야합니다.

5
Adam S

직접 만든 필드 유형을 의미합니까?

선언 할 실제 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 후크를 변경 한 후 캐시를 비우는 것을 잊지 마십시오. 인스턴스 설정 인 경우 인스턴스를 삭제하고 다시 작성하여 이전 기본값을 제거하십시오)

5
Berdir

Hook_form_field_ui_field_edit_form_alter ()를 사용하는 대답은 작동하지만 카디널리티뿐만 아니라 필드 가시성 및 권한을 숨 깁니다. 카디널리티를 비활성화하는 것을 선호합니다.

$form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
$form['field']['cardinality']['#disabled'] = TRUE;
1
Fonant