¿Cómo configuro la cantidad fija de valores en 11?

14

Estoy configurando un campo con múltiples valores. La cantidad máxima fija de valores que puedo configurar es 10.

Si quiero más, tengo que establecer esto en ilimitado.

¿Hay alguna manera de establecer la cantidad fija de valores en un campo a 11 valores?

jeroen
fuente

Respuestas:

20

Las opciones de cardinalidad están codificadas en la field_ui_field_edit_form()función utilizando estas líneas de código:

$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,
);

Es la drupal_map_assoc(range(1, 10))línea que limita el número a 10.

Sin embargo, no parece que la cardinalidad máxima esté validada (o más limitada) en ningún otro lugar (al menos no por núcleo), por lo que sería bastante fácil ofrecer más opciones para ese valor utilizando un formulario 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;
}

Acabo de probar esto y parece no tener efectos secundarios. El sistema de campo respeta cualquier cardinalidad que establezca que sea superior a 10, y la guarda sin problemas cuando edita el campo en la interfaz de usuario del administrador.

Clive
fuente