Skip to content
Snippets Groups Projects
Commit e79ab348 authored by Alex Barth's avatar Alex Barth
Browse files

#949916: Convert values mapped to user->created.

parent abbe0ef4
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@
Feeds 7.x 2.0 XXXXXXXXXXXXXXXXXXX
---------------------------------
- #949916 alex_b: Convert values mapped to user->created.
- #949236 Ian Ward: Allow mapping empty values to fields.
- Allow for mapping to list_number field types.
- Fix entity inspection in file fetcher.
......
......@@ -210,17 +210,7 @@ class FeedsNodeProcessor extends FeedsProcessor {
public function setTargetElement($target_node, $target_element, $value) {
switch ($target_element) {
case 'created':
$target_node->created = REQUEST_TIME;
if (is_numeric($value)) {
$target_node->created = $value;
}
elseif (is_string($value)) {
$value = new FeedsDateTimeElement($value);
$value->created = $value->getValue();
}
elseif ($value instanceof FeedsDateTimeElement) {
$target_node->created = $value->getValue();
}
$target_node->created = feeds_to_unixtime($value, REQUEST_TIME);
break;
case 'feeds_source':
// Get the class of the feed node importer's fetcher and set the source
......
......@@ -734,3 +734,28 @@ class FeedsDateTime extends DateTime {
return array('year' => $this->format('Y'), 'month' => $this->format('m'), 'day' => $this->format('d'), 'hour' => $this->format('H'), 'minute' => $this->format('i'), 'second' => $this->format('s'), 'zone' => $this->format('e'));
}
}
/**
* Converts to UNIX time.
*
* @param $date
* A date that is either a string, a FeedsDateTimeElement or a UNIX timestamp.
* @param $default_value
* A default UNIX timestamp to return if $date could not be parsed.
*
* @return
* $date as UNIX time if conversion was successful, $dfeault_value otherwise.
*/
function feeds_to_unixtime($date, $default_value) {
if (is_numeric($date)) {
return $date;
}
elseif (is_string($date)) {
$date = new FeedsDateTimeElement($date);
return $date->getValue();
}
elseif ($date instanceof FeedsDateTimeElement) {
return $date->getValue();
}
return $default_value;
}
......@@ -123,6 +123,20 @@ class FeedsUserProcessor extends FeedsProcessor {
return $form;
}
/**
* Override setTargetElement to operate on a target item that is a node.
*/
public function setTargetElement($target_user, $target_element, $value) {
switch ($target_element) {
case 'created':
$target_user->created = feeds_to_unixtime($value, REQUEST_TIME);
break;
default:
parent::setTargetElement($target_user, $target_element, $value);
break;
}
}
/**
* Return available mapping targets.
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment