You are here

public function FeedsSyndicationParser::parse in Feeds 7.2

Same name and namespace in other branches
  1. 6 plugins/FeedsSyndicationParser.inc \FeedsSyndicationParser::parse()
  2. 7 plugins/FeedsSyndicationParser.inc \FeedsSyndicationParser::parse()

Implements FeedsParser::parse().

Overrides FeedsParser::parse

File

plugins/FeedsSyndicationParser.inc, line 18
Contains FeedsSyndicationParser and related classes.

Class

FeedsSyndicationParser
Class definition for Common Syndication Parser.

Code

public function parse(FeedsSource $source, FeedsFetcherResult $fetcher_result) {
  feeds_include_library('common_syndication_parser.inc', 'common_syndication_parser');
  $feed = common_syndication_parser_parse($fetcher_result
    ->getRaw());
  $result = new FeedsParserResult();

  // Return an empty result object when feed is false.
  if (!$feed) {
    return $result;
  }
  $result->title = $feed['title'];
  $result->description = $feed['description'];
  $result->link = $feed['link'];
  if (is_array($feed['items'])) {
    foreach ($feed['items'] as $item) {
      if (isset($item['geolocations'])) {
        foreach ($item['geolocations'] as $k => $v) {
          $item['geolocations'][$k] = new FeedsGeoTermElement($v);
        }
      }
      $result->items[] = $item;
    }
  }
  return $result;
}