Antworten:
Die Kardinalitätsoptionen sind field_ui_field_edit_form()
mit den folgenden Codezeilen fest in die Funktion codiert :
$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 ist die drupal_map_assoc(range(1, 10))
Linie, die die Zahl auf 10 begrenzt.
Es scheint jedoch nicht, dass die maximale Kardinalität irgendwo anders validiert (oder weiter eingeschränkt) ist (zumindest nicht nach Kern), daher wäre es ziemlich einfach, mit einem Form-Alter-Hook mehr Optionen für diesen Wert anzubieten:
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;
}
Ich habe es gerade ausprobiert und es scheint überhaupt keine Nebenwirkungen zu haben. Das Feldsystem berücksichtigt alle von Ihnen festgelegten Kardinalitäten, die höher als 10 sind, und speichert sie problemlos, wenn Sie das Feld in der Admin-Benutzeroberfläche bearbeiten.
Ich habe dieses Sandbox-Projekt verwendet, um das gleiche Problem zu lösen: https://www.drupal.org/sandbox/ydahi/2421885
Es bietet eine Benutzeroberfläche zum Festlegen des Bereichs für die Anzahl der Werte.