function fboauth_field_convert_location in Facebook OAuth (FBOAuth) 7
Same name and namespace in other branches
- 7.2 includes/fboauth.field.inc \fboauth_field_convert_location()
Facebook data conversion function.
Converts an incoming Facebook location (which is an object) into a string, and then searches location array for the US or Canadian province
1 string reference to 'fboauth_field_convert_location'
- fboauth_field_convert_info in includes/
fboauth.field.inc - Provide a callback map for converting Facebook data to fields.
File
- includes/
fboauth.field.inc, line 189 - Facebook to Field module mapping.
Code
function fboauth_field_convert_location($facebook_property_name, $fbuser, $field, $instance) {
if (!module_exists('location')) {
return NULL;
}
$value = NULL;
if (isset($fbuser->{$facebook_property_name})) {
// Most Facebook properties are simple strings.
if (is_string($fbuser->{$facebook_property_name})) {
$value = $fbuser->{$facebook_property_name};
}
elseif (is_object($fbuser->{$facebook_property_name})) {
$object = $fbuser->{$facebook_property_name};
// Locations, Signficant Other, Hometown, and other properties use "name"
// as the human-readable value in the object.
if (isset($object->name)) {
$value = $object->name;
}
}
}
$loc = explode(',', $value);
$city = trim($loc[0]);
$prov_name = trim($loc[1]);
$us_prov = location_get_provinces();
$us_prov_abbr = array_search($prov_name, $us_prov);
if ($us_prov_abbr) {
$prov_abbr = $us_prov_abbr;
$country = 'us';
}
else {
// Lets check Canada!
$ca_prov = location_get_provinces('ca');
$ca_prov_abbr = array_search($prov_name, $ca_prov);
if ($ca_prov_abbr) {
$prov_abbr = $ca_prov_abbr;
$country = 'ca';
}
else {
// not us or canadian
$prov_name = '';
$prov_abbr = '';
$country = '';
}
}
return $value ? array(
'city' => $city,
'province_name' => $prov_name,
'province' => $prov_abbr,
'country' => $country,
) : NULL;
}