name array of sub fields on 'list'. * If only one field and no subfields are available for this content type return TRUE. * If no fields available for this content type return FALSE. * Options are necessary because a field like * e. g. "taxonomy" might have more than one slot for information - e. g. vocabularies. * * Todo: $node could be passed by reference - implementers wouldn't need to return node * (PHP5 passes in by reference by default). */ function location_feedapi_mapper($op, $node, $field_name, $feed_element = array(), $sub_field = '') { if ($field_name == 'locations' && variable_get('location_maxnum_'. $node->type, 0)) { if ($op == 'describe') { return t('Maps pairs of geographic coordinates to the location of a node.'); } else if ($op == 'list') { $sub_fields['latitude'] = 'Latitude'; $sub_fields['longitude'] = 'Longitude'; $sub_fields['name'] = 'Name'; $sub_fields['street'] = 'Street'; $sub_fields['additional'] = 'Additional'; $sub_fields['city'] = 'City'; $sub_fields['province'] = 'Province'; $sub_fields['province_name'] = 'Province name'; $sub_fields['postal_code'] = 'Postal code'; $sub_fields['country'] = 'Country'; $sub_fields['country_name'] = 'Country Name'; $sub_fields['phone'] = 'Phone'; $sub_fields['fax'] = 'Fax'; return $sub_fields; } else if ($op == 'map') { if (is_array($feed_element)) { foreach ($feed_element as $i => $val) { $node->locations[$i][$sub_field] = $val; } } else { $node->locations[0][$sub_field] = $feed_element; } return $node; } } else { return FALSE; } }