Locale) return $member->Locale; return i18n::get_locale(); } public function __construct($name, $title = null, $source = null, $value = "", $form=null) { if(!is_array($source)) { // Get a list of countries from Zend $source = Zend_Locale::getTranslationList('territory', $this->locale(), 2); // We want them ordered by display name, not country code // PHP 5.3 has an extension that sorts UTF-8 strings correctly if (class_exists('Collator') && ($collator = Collator::create($this->locale()))) { $collator->asort($source); } // Otherwise just put up with them being weirdly ordered for now else { asort($source); } // We don't want "unknown country" as an option unset($source['ZZ']); } parent::__construct($name, ($title===null) ? $name : $title, $source, $value, $form); } public function Field($properties = array()) { $source = $this->getSource(); if (!$this->value || !isset($source[$this->value])) { if ($this->config()->get('default_to_locale') && $this->locale()) { $locale = new Zend_Locale(); $locale->setLocale($this->locale()); $this->value = $locale->getRegion(); } } if (!$this->value || !isset($source[$this->value])) { $this->value = $this->config()->get('default_country'); } return parent::Field(); } }