Відповіді:
Параметри кардинальності жорстко закодовані у 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.
Не видається, що максимальна кардинальність підтверджена (або додатково обмежена) в будь-якому іншому місці, хоча (принаймні, не за ядром), тому було б досить просто запропонувати більше варіантів для цього значення, використовуючи гачок форми зміни:
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, і зберігає її без проблем під час редагування поля в інтерфейсі адміністратора.
Я використовував цей проект із пісочницею, щоб вирішити ту саму проблему: https://www.drupal.org/sandbox/ydahi/2421885
Він надає інтерфейс користувача для встановлення діапазону для кількості значень.