Jawaban:
Opsi kardinalitas dikodekan ke dalam field_ui_field_edit_form()
fungsi menggunakan baris kode ini:
$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,
);
Ini adalah drupal_map_assoc(range(1, 10))
garis yang membatasi angka ke 10.
Tampaknya kardinalitas maksimum tidak divalidasi (atau lebih terbatas lagi) di tempat lain, meskipun (setidaknya tidak dengan inti), jadi akan cukup mudah untuk menawarkan lebih banyak opsi untuk nilai itu menggunakan form 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;
}
Saya baru saja mencobanya dan sepertinya tidak memiliki efek samping sama sekali. Sistem bidang menghormati kardinalitas apa pun yang Anda atur lebih tinggi dari 10, dan menyimpannya tanpa masalah saat Anda mengedit bidang di UI admin.
Saya telah menggunakan proyek kotak pasir ini untuk menyelesaikan masalah yang sama: https://www.drupal.org/sandbox/ydahi/2421885
Ini memberikan UI untuk mengatur rentang jumlah nilai.