Projet

Général

Profil

Révision 41cc1b08

Ajouté par Assos Assos il y a presque 9 ans

Update feeds 7.x-2.0-alpha9 -> 7.x-2.0-beta1

Install lib simplepie 1.3.1

Voir les différences:

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