Closed (duplicate)
Project:
Feeds
Version:
7.x-2.x-dev
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
3 Jul 2012 at 16:08 UTC
Updated:
2 Oct 2013 at 17:15 UTC
The patch for supporting multiple values in the #697842: Support array of values for dates issue and the patch for supporting empty values in Date in the #857216: Behavior on importing empty/NULL/invalid dates issue edit the same lines of codes in the date.inc file.
Here is what I have for supporting multiple values.
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)) {
$delta = 0;
foreach ($feed_element as $f) {
if ($sub_field == 'end') {
$array_element = new FeedsDateTimeElement(NULL, $f);
}
else {
$array_element = new FeedsDateTimeElement($f, NULL);
}
$array_element->buildDateField($entity, $field_name, $delta);
$delta++;
}
}
else {
if ($sub_field == 'end') {
$feed_element = new FeedsDateTimeElement(NULL, $feed_element);
}
else {
$feed_element = new FeedsDateTimeElement($feed_element, NULL);
}
$feed_element->buildDateField($entity, $field_name);
}
}
}I tried this per the empty values patch, but it doesn't seem to work.
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)) {
$delta = 0;
foreach ($feed_element as $f) {
if ($sub_field == 'end') {
$array_element = new FeedsDateTimeElement(NULL, $f);
}
else {
$array_element = new FeedsDateTimeElement($f, NULL);
}
$array_element->buildDateField($entity, $field_name, $delta);
$delta++;
}
}
else {
if (!is_numeric($feed_element) && !strtotime($feed_element)) {
$feed_element = new FeedsDateTimeElement(NULL, NULL);
}
elseif ($sub_field == 'end') {
$feed_element = new FeedsDateTimeElement(NULL, $feed_element);
}
else {
$feed_element = new FeedsDateTimeElement($feed_element, NULL);
}
$feed_element->buildDateField($entity, $field_name);
}
}
}Anyone have any thoughts on what I am doing wrong?
Comments
Comment #1
liquid06 commentedI've been assembling a feeds patchwork quilt and I ran into the same thing. The data I'm trying to import looks kind of like this:
I set up feeds_tamper (the latest -dev seems to be the best version) to explode the date field on semicolon. Then on feeds: the patch here #697842: Support array of values for dates seems quite a bit bigger, so I applied that one first (comment #39.) After applying that, the patch in #1537776: Importing a single 21st century year defaults to the current year failed. So I tried to apply those changes by hand.
Here's the full
date.incfile that seems to work for my case.Comment #2
colanThis looks a lot like #1989196: Never Pass FeedsDateTime objects into date_create.