Respuestas:
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.
He usado este proyecto de sandbox para resolver el mismo problema: https://www.drupal.org/sandbox/ydahi/2421885
Proporciona una interfaz de usuario para establecer el rango para el número de valores.