Révision 41cc1b08
Ajouté par Assos Assos il y a presque 9 ans
drupal7/sites/all/modules/feeds/mappers/date.inc | ||
---|---|---|
6 | 6 |
*/ |
7 | 7 |
|
8 | 8 |
/** |
9 |
* Implements hook_feeds_processor_targets_alter(). |
|
10 |
* |
|
11 |
* @see FeedsNodeProcessor::getMappingTargets(). |
|
9 |
* Implements hook_feeds_processor_targets(). |
|
12 | 10 |
* |
13 | 11 |
* @todo Only provides "end date" target if field allows it. |
14 | 12 |
*/ |
15 |
function date_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) { |
|
13 |
function date_feeds_processor_targets($entity_type, $bundle_name) { |
|
14 |
$targets = array(); |
|
15 |
|
|
16 | 16 |
foreach (field_info_instances($entity_type, $bundle_name) as $name => $instance) { |
17 | 17 |
$info = field_info_field($name); |
18 | 18 |
if (in_array($info['type'], array('date', 'datestamp', 'datetime'))) { |
... | ... | |
30 | 30 |
); |
31 | 31 |
} |
32 | 32 |
} |
33 |
|
|
34 |
return $targets; |
|
33 | 35 |
} |
34 | 36 |
|
35 | 37 |
/** |
36 |
* Implements hook_feeds_set_target(). |
|
37 |
* |
|
38 |
* @param $node |
|
39 |
* The target node. |
|
40 |
* @param $field_name |
|
41 |
* The name of field on the target node to map to. |
|
42 |
* @param $feed_element |
|
43 |
* The value to be mapped. Should be either a (flexible) date string |
|
44 |
* or a FeedsDateTimeElement object. |
|
45 |
* |
|
38 |
* Callback for setting date values. |
|
46 | 39 |
*/ |
47 |
function date_feeds_set_target($source, $entity, $target, $feed_element) {
|
|
40 |
function date_feeds_set_target(FeedsSource $source, $entity, $target, array $values) {
|
|
48 | 41 |
list($field_name, $sub_field) = explode(':', $target, 2); |
49 |
if (!($feed_element instanceof FeedsDateTimeElement)) { |
|
50 |
if (!is_array($feed_element)) {
|
|
51 |
$feed_element = array($feed_element);
|
|
52 |
} |
|
53 |
$delta = 0;
|
|
54 |
foreach ($feed_element as $f) { |
|
55 |
if (empty($f) || !is_numeric($f) && !date_create($f)) {
|
|
56 |
$array_element = new FeedsDateTimeElement(NULL, NULL);
|
|
42 |
|
|
43 |
$delta = 0;
|
|
44 |
foreach ($values as $value) {
|
|
45 |
|
|
46 |
if (!($value instanceof FeedsDateTimeElement)) {
|
|
47 |
|
|
48 |
if (empty($value) || !is_numeric($value) && is_string($value) && !date_create($value)) {
|
|
49 |
$value = new FeedsDateTimeElement(NULL, NULL);
|
|
57 | 50 |
} |
58 | 51 |
elseif ($sub_field == 'end') { |
59 |
$array_element = new FeedsDateTimeElement(NULL, $f);
|
|
52 |
$value = new FeedsDateTimeElement(NULL, $value);
|
|
60 | 53 |
} |
61 | 54 |
else { |
62 |
$array_element = new FeedsDateTimeElement($f, NULL);
|
|
55 |
$value = new FeedsDateTimeElement($value, NULL);
|
|
63 | 56 |
} |
64 |
$array_element->buildDateField($entity, $field_name, $delta); |
|
65 |
$delta++; |
|
66 | 57 |
} |
58 |
|
|
59 |
$value->buildDateField($entity, $field_name, $delta); |
|
60 |
$delta++; |
|
67 | 61 |
} |
68 | 62 |
} |
Formats disponibles : Unified diff
Update feeds 7.x-2.0-alpha9 -> 7.x-2.0-beta1
Install lib simplepie 1.3.1