Révision a192dc0b
Ajouté par Assos Assos il y a environ 8 ans
drupal7/sites/all/modules/feeds/plugins/FeedsParser.inc | ||
---|---|---|
119 | 119 |
return $sources; |
120 | 120 |
} |
121 | 121 |
|
122 |
/** |
|
123 |
* Get list of mapped sources. |
|
124 |
* |
|
125 |
* @return array |
|
126 |
* List of mapped source names in an array. |
|
127 |
*/ |
|
128 |
public function getMappingSourceList() { |
|
129 |
$mappings = feeds_importer($this->id)->processor->config['mappings']; |
|
130 |
$sources = array(); |
|
131 |
foreach ($mappings as $mapping) { |
|
132 |
$sources[] = $mapping['source']; |
|
133 |
} |
|
134 |
return $sources; |
|
135 |
} |
|
136 |
|
|
122 | 137 |
/** |
123 | 138 |
* Get an element identified by $element_key of the given item. |
124 | 139 |
* The element key corresponds to the values in the array returned by |
... | ... | |
554 | 569 |
* Helper method for buildDateField(). Build a FeedsDateTimeElement object |
555 | 570 |
* from a standard formatted node. |
556 | 571 |
*/ |
557 |
protected static function readDateField($entity, $field_name, $delta = 0) { |
|
572 |
protected static function readDateField($entity, $field_name, $delta = 0, $language = LANGUAGE_NONE) {
|
|
558 | 573 |
$ret = new FeedsDateTimeElement(); |
559 |
if (isset($entity->{$field_name}['und'][$delta]['date']) && $entity->{$field_name}['und'][$delta]['date'] instanceof FeedsDateTime) {
|
|
560 |
$ret->start = $entity->{$field_name}['und'][$delta]['date'];
|
|
574 |
if (isset($entity->{$field_name}[$language][$delta]['date']) && $entity->{$field_name}[$language][$delta]['date'] instanceof FeedsDateTime) {
|
|
575 |
$ret->start = $entity->{$field_name}[$language][$delta]['date'];
|
|
561 | 576 |
} |
562 |
if (isset($entity->{$field_name}['und'][$delta]['date2']) && $entity->{$field_name}['und'][$delta]['date2'] instanceof FeedsDateTime) {
|
|
563 |
$ret->end = $entity->{$field_name}['und'][$delta]['date2'];
|
|
577 |
if (isset($entity->{$field_name}[$language][$delta]['date2']) && $entity->{$field_name}[$language][$delta]['date2'] instanceof FeedsDateTime) {
|
|
578 |
$ret->end = $entity->{$field_name}[$language][$delta]['date2'];
|
|
564 | 579 |
} |
565 | 580 |
return $ret; |
566 | 581 |
} |
... | ... | |
575 | 590 |
* @param int $delta |
576 | 591 |
* The delta in the field. |
577 | 592 |
*/ |
578 |
public function buildDateField($entity, $field_name, $delta = 0) { |
|
593 |
public function buildDateField($entity, $field_name, $delta = 0, $language = LANGUAGE_NONE) {
|
|
579 | 594 |
$info = field_info_field($field_name); |
580 | 595 |
|
581 |
$oldfield = FeedsDateTimeElement::readDateField($entity, $field_name, $delta); |
|
596 |
$oldfield = FeedsDateTimeElement::readDateField($entity, $field_name, $delta, $language);
|
|
582 | 597 |
// Merge with any preexisting objects on the field; we take precedence. |
583 | 598 |
$oldfield = $this->merge($oldfield); |
584 | 599 |
$use_start = $oldfield->start; |
... | ... | |
611 | 626 |
|
612 | 627 |
$db_tz = new DateTimeZone($db_tz); |
613 | 628 |
if (!isset($entity->{$field_name})) { |
614 |
$entity->{$field_name} = array('und' => array());
|
|
629 |
$entity->{$field_name} = array($language => array());
|
|
615 | 630 |
} |
616 | 631 |
if ($use_start) { |
617 |
$entity->{$field_name}['und'][$delta]['timezone'] = $use_start->getTimezone()->getName();
|
|
618 |
$entity->{$field_name}['und'][$delta]['offset'] = $use_start->getOffset();
|
|
632 |
$entity->{$field_name}[$language][$delta]['timezone'] = $use_start->getTimezone()->getName();
|
|
633 |
$entity->{$field_name}[$language][$delta]['offset'] = $use_start->getOffset();
|
|
619 | 634 |
$use_start->setTimezone($db_tz); |
620 |
$entity->{$field_name}['und'][$delta]['date'] = $use_start;
|
|
635 |
$entity->{$field_name}[$language][$delta]['date'] = $use_start;
|
|
621 | 636 |
/** |
622 | 637 |
* @todo the date_type_format line could be simplified based upon a patch |
623 | 638 |
* DO issue #259308 could affect this, follow up on at some point. |
624 | 639 |
* Without this, all granularity info is lost. |
625 | 640 |
* $use_start->format(date_type_format($field['type'], $use_start->granularity)); |
626 | 641 |
*/ |
627 |
$entity->{$field_name}['und'][$delta]['value'] = $use_start->format(date_type_format($info['type']));
|
|
642 |
$entity->{$field_name}[$language][$delta]['value'] = $use_start->format(date_type_format($info['type']));
|
|
628 | 643 |
} |
629 | 644 |
if ($use_end) { |
630 | 645 |
// Don't ever use end to set timezone (for now) |
631 |
$entity->{$field_name}['und'][$delta]['offset2'] = $use_end->getOffset();
|
|
646 |
$entity->{$field_name}[$language][$delta]['offset2'] = $use_end->getOffset();
|
|
632 | 647 |
$use_end->setTimezone($db_tz); |
633 |
$entity->{$field_name}['und'][$delta]['date2'] = $use_end;
|
|
634 |
$entity->{$field_name}['und'][$delta]['value2'] = $use_end->format(date_type_format($info['type']));
|
|
648 |
$entity->{$field_name}[$language][$delta]['date2'] = $use_end;
|
|
649 |
$entity->{$field_name}[$language][$delta]['value2'] = $use_end->format(date_type_format($info['type']));
|
|
635 | 650 |
} |
636 | 651 |
} |
637 | 652 |
} |
Formats disponibles : Unified diff
Weekly update of contrib modules