diff --git a/mappers/date.inc b/mappers/date.inc index 9344d279bdaec67be1c71d4c7b6ecb1a7a281eef..8ff4cbb0ef8b166381f8afe346d47e631bbad946 100644 --- a/mappers/date.inc +++ b/mappers/date.inc @@ -46,23 +46,28 @@ function date_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_nam */ function date_feeds_set_target($source, $entity, $target, $feed_element) { list($field_name, $sub_field) = explode(':', $target, 2); - if (!($feed_element instanceof FeedsDateTimeElement)) { - if (!is_array($feed_element)) { - $feed_element = array($feed_element); - } - $delta = 0; - foreach ($feed_element as $f) { - if (empty($f) || !is_numeric($f) && !date_create($f)) { - $array_element = new FeedsDateTimeElement(NULL, NULL); + + if (!is_array($feed_element)) { + $feed_element = array($feed_element); + } + + $delta = 0; + foreach ($feed_element as $f) { + + if (!($feed_element instanceof FeedsDateTimeElement)) { + + if (empty($f) || !is_numeric($f) && is_string($f) && !date_create($f)) { + $f = new FeedsDateTimeElement(NULL, NULL); } elseif ($sub_field == 'end') { - $array_element = new FeedsDateTimeElement(NULL, $f); + $f = new FeedsDateTimeElement(NULL, $f); } else { - $array_element = new FeedsDateTimeElement($f, NULL); + $f = new FeedsDateTimeElement($f, NULL); } - $array_element->buildDateField($entity, $field_name, $delta); - $delta++; } + + $f->buildDateField($entity, $field_name, $delta); + $delta++; } }