From 5f67c194592c4930c652ee55cb0912b5563ff91d Mon Sep 17 00:00:00 2001 From: barraponto Date: Fri, 11 Oct 2013 08:30:47 -0300 Subject: Issue #1276258 by mavimo, barraponto, 30equals, rvilar, idflood, mongolito404: Completely hide empty field collections --- field_collection.module | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/field_collection.module b/field_collection.module index 6462014..394f6c8 100644 --- a/field_collection.module +++ b/field_collection.module @@ -1227,7 +1227,6 @@ function field_collection_field_formatter_view($entity_type, $entity, $field, $i case 'field_collection_view': - $element['#attached']['css'][] = drupal_get_path('module', 'field_collection') . '/field_collection.theme.css'; $view_mode = !empty($display['settings']['view_mode']) ? $display['settings']['view_mode'] : 'full'; foreach ($items as $delta => $item) { if ($field_collection = field_collection_field_get_entity($item)) { @@ -1254,6 +1253,9 @@ function field_collection_field_formatter_view($entity_type, $entity, $field, $i } } field_collection_field_formatter_links($element, $entity_type, $entity, $field, $instance, $langcode, $items, $display); + if (!empty($items) || !empty($element['#suffix'])) { + $element['#attached']['css'][] = drupal_get_path('module', 'field_collection') . '/field_collection.theme.css'; + } break; case 'field_collection_fields': @@ -1275,6 +1277,7 @@ function field_collection_field_formatter_view($entity_type, $entity, $field, $i */ function field_collection_field_formatter_links(&$element, $entity_type, $entity, $field, $instance, $langcode, $items, $display) { $settings = $display['settings']; + $allow_create_item = FALSE; if ($settings['add'] && ($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED || count($items) < $field['cardinality'])) { // Check whether the current is allowed to create a new item. @@ -1282,6 +1285,7 @@ function field_collection_field_formatter_links(&$element, $entity_type, $entity $field_collection_item->setHostEntity($entity_type, $entity, LANGUAGE_NONE, FALSE); if (field_collection_item_access('create', $field_collection_item)) { + $allow_create_item = TRUE; $path = field_collection_field_get_path($field); list($id) = entity_extract_ids($entity_type, $entity); $element['#suffix'] = ''; @@ -1296,14 +1300,16 @@ function field_collection_field_formatter_links(&$element, $entity_type, $entity } } // If there is no add link, add a special class to the last item. - if (empty($element['#suffix'])) { - $index = count(element_children($element)) - 1; - $element[$index]['#attributes']['class'][] = 'field-collection-view-final'; - } + if (!empty($items) || $allow_create_item) { + if (empty($element['#suffix'])) { + $index = count(element_children($element)) - 1; + $element[$index]['#attributes']['class'][] = 'field-collection-view-final'; + } - $element += array('#prefix' => '', '#suffix' => ''); - $element['#prefix'] .= '
'; - $element['#suffix'] .= '
'; + $element += array('#prefix' => '', '#suffix' => ''); + $element['#prefix'] .= '
'; + $element['#suffix'] .= '
'; + } return $element; } -- 1.8.4