Как заставить поле разрешать неограниченное количество значений с помощью API полей?


Как принудительно ввести неограниченное количество значений, используя код для поля, созданного с помощью API полей в Drupal 7? В этом случае нет смысла устанавливать какие-либо другие настройки, поэтому каждый раз, когда я создаю экземпляр этого поля, я должен устанавливать количество значений от 1 до неограниченного.

 5
Author: kiamlaluno, 2011-05-06

2 answers

Вы имеете в виду для типа поля, который вы создали сами?

Нет реального API, чтобы объявить это, единственное, что вы можете сделать, это изменить форму поля добавления/редактирования.

Я уже сделал это сам для модуля свойств; вот код ( источник):

function properties_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
  if ($form['#field']['type'] == 'properties') {
    // Hide the cardinality setting on the field settings for properties fields.
    $form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
    $form['field']['#access'] = FALSE;
  }
}

(Не забудьте очистить кэш после изменения крючков form_alter и, если это параметр экземпляра, удалите и создайте экземпляр заново, чтобы удалить предыдущее значение по умолчанию)

 5
Author: Berdir, 2011-09-04 17:46:20

Ответ с использованием функции hook_form_field_ui_field_edit_form_alter() работает, но он скрывает видимость поля и разрешения, а также количество элементов. Я предпочитаю просто отключить количество элементов:

$form['field']['cardinality']['#default_value'] = FIELD_CARDINALITY_UNLIMITED;
$form['field']['cardinality']['#disabled'] = TRUE;
 1
Author: Fonant, 2015-09-30 16:25:22