You are here

function _socialmedia_widgets_get_facebook_locales in Social media 7

Retrieve locale keys from Facebook.

Return value

array|mixed

1 call to _socialmedia_widgets_get_facebook_locales()
socialmedia_widgets_facebook_js_sdk in ./socialmedia.widgets.inc

File

./socialmedia.widgets.inc, line 747
Functions needed to execute image elements provided by Image module.

Code

function _socialmedia_widgets_get_facebook_locales() {
  $fb_locale = array();
  $cache = cache_get('socialmedia_facebook_locales');
  if (empty($cache->data)) {
    $result = drupal_http_request("https://www.facebook.com/translations/FacebookLocales.xml");
    if ($result->code == 200) {
      $xml = simplexml_load_string($result->data);
      foreach ($xml->locale as $line) {
        $representation = (array) $line->codes->code->standard->representation;
        $name = (array) $line->englishName;
        $key = $representation[0];
        $value = $name[0];
        $fb_locale[$key] = $value;
      }
    }
    else {

      // Use JSON version from Github.
      $result = drupal_http_request("https://raw.githubusercontent.com/akarve/facebook-locales-to-json/master/FacebookLocalesSimple.json");
      if ($result->code == 200) {
        $json = json_decode($result->data);
        foreach ($json as $key => $value) {
          $fb_locale[$value] = $key;
        }
      }
    }
    cache_set('socialmedia_facebook_locales', serialize($fb_locale), 'cache');
  }
  else {
    $fb_locale = unserialize($cache->data);
  }
  return $fb_locale;
}