示例#1
0
 /**
  * Get country list
  * 
  * @return array
  */
 public function getList($lang = null)
 {
     if (!$lang) {
         $lang = CURR_LANG;
     }
     $settings = $this->_settings;
     $countries = Application_Model_CountryMapper::getInstance()->getAllCountries($lang);
     if (isset($settings['selected_only']) && $settings['selected_only']) {
         $result = array();
         foreach ($countries as $country) {
             if (in_array($country->get_code2(), $settings['selected_countries'])) {
                 $result[] = $country;
             }
         }
         return $result;
     } else {
         if (isset($settings['selected_countries']) && count($settings['selected_countries'])) {
             $rest_countries = array();
             $selected_countries = array();
             foreach ($countries as $country) {
                 if (!in_array($country->get_code2(), $settings['selected_countries'])) {
                     $rest_countries[$country->get_code2()] = $country;
                 }
                 if (in_array($country->get_code2(), $settings['selected_countries'])) {
                     $selected_countries[$country->get_code2()] = $country;
                 }
             }
             $selected_countries = $this->sortSelected($selected_countries, $settings['selected_countries']);
             $spacer = new Application_Model_Country();
             $spacer->set_code2('')->set_name("--------------------");
             $selected_countries[] = $spacer;
             return array_merge($selected_countries, $rest_countries);
         } else {
             return $countries;
         }
     }
 }