diff --git a/field_collection.module b/field_collection.module index b5cfc07..4ec2126 100644 --- a/field_collection.module +++ b/field_collection.module @@ -604,6 +604,8 @@ function field_collection_item_is_empty(FieldCollectionItemEntity $item) { return $field['type'] != 'list_boolean'; }); + $non_empty_instances = array(); // so altering modules dont need to iterate again + foreach ($instances as $instance) { $field_name = $instance['field_name']; $field = field_info_field($field_name); @@ -624,6 +626,7 @@ function field_collection_item_is_empty(FieldCollectionItemEntity $item) { foreach ($item->{$field_name}[$langcode] as $field_item) { if (!module_invoke($field['module'], 'field_is_empty', $field_item, $field)) { $is_empty = FALSE; + $non_empty_instances[$field_name] = 1; } } } @@ -631,7 +634,7 @@ function field_collection_item_is_empty(FieldCollectionItemEntity $item) { } // Allow other modules a chance to alter the value before returning. - drupal_alter('field_collection_is_empty', $is_empty, $item); + drupal_alter('field_collection_is_empty', $is_empty, $item, $non_empty_instances); return $is_empty; }