diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc index a6aaab1..313be90 100644 --- a/modules/field/field.crud.inc +++ b/modules/field/field.crud.inc @@ -591,6 +591,7 @@ function _field_write_instance($instance, $update = FALSE) { $display += array( 'label' => 'above', 'type' => isset($field_type['default_formatter']) ? $field_type['default_formatter'] : 'hidden', + 'limit' => FALSE, 'settings' => array(), ); if ($display['type'] != 'hidden') { diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc index cb49bdb..c262361 100644 --- a/modules/field/field.default.inc +++ b/modules/field/field.default.inc @@ -221,6 +221,7 @@ function field_default_view($entity_type, $entity, $field, $instance, $langcode, '#field_name' => $field['field_name'], '#field_type' => $field['type'], '#field_translatable' => $field['translatable'], + '#field_limit' => $display['limit'], '#entity_type' => $entity_type, '#bundle' => $bundle, '#object' => $entity, diff --git a/modules/field/field.module b/modules/field/field.module index af9e8c8..0746eb9 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -1031,6 +1031,12 @@ function template_preprocess_field(&$variables, $hook) { $variables['label_hidden'] = ($element['#label_display'] == 'hidden'); $variables['label'] = $variables['label_hidden'] ? NULL : check_plain($element['#title']); + // Check whether we need to reduce the number of items to display. + $field_limit = $element['#field_limit']; + if ($field_limit && count($element['#items']) > $field_limit) { + $element['#items'] = array_slice($element['#items'], 0, $field_limit); + } + // We want other preprocess functions and the theme implementation to have // fast access to the field item render arrays. The item render array keys // (deltas) should always be a subset of the keys in #items, and looping on diff --git a/modules/field_ui/field_ui.admin.inc b/modules/field_ui/field_ui.admin.inc index b594fac..6dc2067 100644 --- a/modules/field_ui/field_ui.admin.inc +++ b/modules/field_ui/field_ui.admin.inc @@ -956,6 +956,24 @@ function field_ui_display_overview_form($form, &$form_state, $entity_type, $bund 'settings_edit_form' => array(), ); + if (isset($field['cardinality']) && $field['cardinality'] != 1) { + $table[$name]['format']['type']['#prefix'] = '