Як встановити фіксовану кількість значень на 11?


14

Я встановлюю поле з кількома значеннями. Максимальна фіксована кількість значень, які я можу налаштувати, - 10.

Якщо я хочу більше, я повинен встановлювати це необмеженим.

Чи є спосіб встановити фіксовану кількість значень у полі на 11 значень?

Відповіді:


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, і зберігає її без проблем під час редагування поля в інтерфейсі адміністратора.


0

Я використовував цей проект із пісочницею, щоб вирішити ту саму проблему: https://www.drupal.org/sandbox/ydahi/2421885

Він надає інтерфейс користувача для встановлення діапазону для кількості значень.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.