Skip navigation
Help

hook_aggregator_parse

7 aggregator.api.php hook_aggregator_parse($feed)

Implement this hook to create an alternative parser for aggregator module.

A parser converts feed item data to a common format. The parser is called at the second of the three aggregation stages: data is downloaded by the active fetcher, it is converted to a common format by the active parser and finally, it is passed to all active processors which manipulate or store the data.

Modules that define this hook can be set as active parser on admin/config/services/aggregator. Only one parser can be active at a time.

Parameters

$feed: The $feed object that describes the resource to be parsed. $feed->source_string contains the raw feed data as a string. Parse data from $feed->source_string and expose it to other modules as an array of data items on $feed->items.

Feed format:

  • $feed->description (string) - description of the feed
  • $feed->image (string) - image for the feed
  • $feed->etag (string) - value of feed's entity tag header field
  • $feed->modified (UNIX timestamp) - value of feed's last modified header field
  • $feed->items (Array) - array of feed items.

By convention, the common format for a single feed item is: $item[key-name] = value;

Recognized keys: TITLE (string) - the title of a feed item DESCRIPTION (string) - the description (body text) of a feed item TIMESTAMP (UNIX timestamp) - the feed item's published time as UNIX timestamp AUTHOR (string) - the feed item's author GUID (string) - RSS/Atom global unique identifier LINK (string) - the feed item's URL

Return value

TRUE if parsing was successful, FALSE otherwise.

See also

hook_aggregator_parse_info()

hook_aggregator_fetch()

hook_aggregator_process()

Related topics

1 function implements hook_aggregator_parse()

2 invocations of hook_aggregator_parse()

File

drupal/modules/aggregator/aggregator.api.php, line 116
Documentation for aggregator API.

Code

function hook_aggregator_parse($feed) {
  if ($items = mymodule_parse($feed->source_string)) {
    $feed->items = $items;
    return TRUE;
  }
  return FALSE;
}