You are here

static function CurrencyLocalePattern::loadFromEnv in Currency 7.2

Loads a single CurrencyLocalePattern based on environment variables.

If no country code is set in $language->currency_country_code, the "site_default_country" system variable will be used instead. If a CurrencyLocalePattern could not be loaded using these country sources and $language->language, the locale pattern for en_US will be loaded. This is consistent with Drupal's default language, which is US English.

Return value

CurrencyLocalePattern

Throws

RuntimeException

1 call to CurrencyLocalePattern::loadFromEnv()
CurrencyLocalePatternWebTestCase::testLocaleDelegation in currency/tests/CurrencyLocalePatternWebTestCase.test
Tests locale delegation.

File

currency/includes/CurrencyLocalePattern.inc, line 113
Contains class CurrencyLocalePattern.

Class

CurrencyLocalePattern
A currency pattern for a locale.

Code

static function loadFromEnv() {
  global $language;
  $locale_pattern =& drupal_static('currency_env_locale_pattern');
  if (is_null($locale_pattern)) {

    // Try this request's country code.
    if (self::getCountryCode()) {
      $locale_pattern = ctools_export_crud_load('currency_locale_pattern', $language->language . '_' . self::getCountryCode());
    }

    // Try the global default country code.
    if (!$locale_pattern && ($country_code = variable_get('site_default_country', ''))) {
      $locale_pattern = ctools_export_crud_load('currency_locale_pattern', $language->language . '_' . $country_code);
    }

    // Try the Currency default.
    if (!$locale_pattern) {
      $locale_pattern = ctools_export_crud_load('currency_locale_pattern', CURRENCY_DEFAULT_LOCALE);
    }
    if (!$locale_pattern) {
      throw new RuntimeException(t('The CurrencyLocalePattern en_US could not be loaded.'));
    }
  }
  return $locale_pattern;
}