Код позволяет в настройках поля выбрать первоначальное число значений для unlimited поля:
/**
* Implements hook_form_FORM_ID_alter(): field_ui_field_edit_form.
*/
function hook_form_field_ui_field_edit_form_alter(&$form, $form_state) {
$field_instance = $form['#instance'];
$form['instance']['settings']['default_cardinality'] = array(
'#type' => 'textfield',
'#title' => t('Default cardinality'),
'#default_value' => isset($field_instance['settings']['default_cardinality']) ? $field_instance['settings']['default_cardinality'] : 1,
'#weight' => 10,
'#states' => array(
'visible' => array(
'#edit-field-cardinality' => array(
'value' => FIELD_CARDINALITY_UNLIMITED,
),
),
),
);
}
/**
* Implements hook_field_update_instance().
*/
function hook_field_update_instance($instance, $prior_instance) {
$field = field_info_field($instance['field_name']);
if ($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED && $instance['settings']['default_cardinality'] > 1) {
$instance['default_value'] = array_fill(0, $instance['settings']['default_cardinality'] - 1, NULL);
_field_write_instance($instance, TRUE);
}
}
Написанное актуально для
Drupal 7
Добавить комментарий