public static function getCountriesList() { if (is_null(self::$_countries_list)) { self::$_countries_list = array(); $locale = Zend_Registry::get('Zend_Locale'); $currency = new Zend_Currency(); foreach (Zend_Locale::getTranslationList('Territory', null, 2) as $ter => $name) { $country_code = Zend_Locale::getLocaleToTerritory($ter); if (!is_null($country_code)) { try { $symbol = $currency->getSymbol($country_code); if (!empty($symbol)) { $countries[$country_code] = array('code' => $country_code, 'name' => $name, 'symbol' => $symbol); } } catch (Exception $e) { } } } uasort($countries, 'cmp'); foreach ($countries as $currency) { self::$_countries_list[] = new Core_Model_Default($currency); } } return self::$_countries_list; }