如何将固定数量的值设置为11?


14

我正在设置一个具有多个值的字段。我可以配置的最大固定值是10。

如果我想要更多,我必须将其设置为无限制。

是否可以将字段上的固定数量的值设置为11个值?

Answers:


20

基数选项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中编辑该字段时将其毫无问题地保存。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.