回答:
カーディナリティオプションは、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を超えるカーディナリティを尊重し、管理UIでフィールドを編集するときに問題なく保存します。
このサンドボックスプロジェクトを使用して同じ問題を解決しました:https : //www.drupal.org/sandbox/ydahi/2421885
値の数の範囲を設定するUIを提供します。