고정 된 값을 11로 설정하려면 어떻게합니까?


14

여러 값을 가진 필드를 설정하고 있습니다. 구성 할 수있는 최대 고정 값은 10입니다.

더 많이 원한다면 이것을 무제한으로 설정해야합니다.

필드의 고정 된 값을 11 값으로 설정하는 방법이 있습니까?

답변:


20

카디널리티 옵션은 field_ui_field_edit_form()다음 코드 행을 사용 하여 함수에 하드 코딩됩니다 .

$form['field']['cardinality'] = array(
  '#type' => 'select',
  '#title' => t('Number of values'),
  '#options' => array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + drupal_map_assoc(range(1, 10)),
  '#default_value' => $field['cardinality'],
  '#description' => $description,
);

drupal_map_assoc(range(1, 10))숫자를 10으로 제한 하는 줄입니다.

비록 최대 카디널리티가 다른 곳 어디에서나 (적어도 코어가 아닌) 유효성을 검사 (또는 더 제한적)하는 것처럼 보이지 않으므로 alter alter hook 양식을 사용하여 해당 값에 대한 더 많은 옵션을 제공하는 것이 매우 쉽습니다.

function MYMODULE_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
  // Increase the max cardinality to 20
  $range = drupal_map_assoc(range(1, 20));
  $new_options =  array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + $range;

  // Change the options
  $form['field']['cardinality']['#options'] = $new_options;
}

방금 시도했지만 부작용이 전혀없는 것 같습니다. 필드 시스템은 10보다 높은 카디널리티를 설정하고 관리 UI에서 필드를 편집 할 때 문제없이 저장합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.