You are here

function aggregator_element_data in Drupal 7

Same name and namespace in other branches
  1. 4 modules/aggregator.module \aggregator_element_data()
  2. 5 modules/aggregator/aggregator.module \aggregator_element_data()
  3. 6 modules/aggregator/aggregator.module \aggregator_element_data()

Performs an action when data is encountered.

Callback function used by xml_parse() within aggregator_parse_feed().

1 string reference to 'aggregator_element_data'
aggregator_parse_feed in modules/aggregator/aggregator.parser.inc
Parses a feed and stores its items.

File

modules/aggregator/aggregator.parser.inc, line 246
Parser functions for the aggregator module.

Code

function aggregator_element_data($parser, $data) {
  global $channel, $element, $items, $item, $image, $tag;
  $items += array(
    $item => array(),
  );
  switch ($element) {
    case 'item':
      $items[$item] += array(
        $tag => '',
      );
      $items[$item][$tag] .= $data;
      break;
    case 'image':
    case 'logo':
      $image += array(
        $tag => '',
      );
      $image[$tag] .= $data;
      break;
    case 'link':
      if ($data) {
        $items[$item] += array(
          $tag => '',
        );
        $items[$item][$tag] .= $data;
      }
      break;
    case 'content':
      $items[$item] += array(
        'content' => '',
      );
      $items[$item]['content'] .= $data;
      break;
    case 'summary':
      $items[$item] += array(
        'summary' => '',
      );
      $items[$item]['summary'] .= $data;
      break;
    case 'tagline':
    case 'subtitle':
      $channel += array(
        'description' => '',
      );
      $channel['description'] .= $data;
      break;
    case 'info':
    case 'id':
    case 'textinput':

      // The sub-element is not supported. However, we must recognize
      // it or its contents will end up in the item array.
      break;
    default:
      $channel += array(
        $tag => '',
      );
      $channel[$tag] .= $data;
  }
}