370 lines
8.6 KiB
PHP
370 lines
8.6 KiB
PHP
<?php
|
|
/**
|
|
* SOTESHOP/stCountriesPlugin
|
|
*
|
|
* Ten plik należy do aplikacji stCountriesPlugin opartej na licencji (Professional License SOTE).
|
|
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
|
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
|
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
|
*
|
|
* @package stCountriesPlugin
|
|
* @subpackage libs
|
|
* @copyright SOTE (www.sote.pl)
|
|
* @license http://www.sote.pl/license/sote (Professional License SOTE)
|
|
* @version $Id: stCountries.class.php 5356 2010-05-31 11:07:06Z michal $
|
|
* @author Marcin Olejniczak <marcin.olejniczak@sote.pl>
|
|
*/
|
|
|
|
/**
|
|
* Klasa do obsługi krajów.
|
|
*
|
|
* @package stCountriesPlugin
|
|
* @subpackage libs
|
|
*/
|
|
class stCountries
|
|
{
|
|
/**
|
|
* Przestrzeń nazw
|
|
*/
|
|
const SESSION_NAMESPACE = 'soteshop/countries';
|
|
|
|
const ISO_CODES = [
|
|
"BD" => "BGD",
|
|
"BE" => "BEL",
|
|
"BF" => "BFA",
|
|
"BG" => "BGR",
|
|
"BA" => "BIH",
|
|
"BB" => "BRB",
|
|
"WF" => "WLF",
|
|
"BL" => "BLM",
|
|
"BM" => "BMU",
|
|
"BN" => "BRN",
|
|
"BO" => "BOL",
|
|
"BH" => "BHR",
|
|
"BI" => "BDI",
|
|
"BJ" => "BEN",
|
|
"BT" => "BTN",
|
|
"JM" => "JAM",
|
|
"BV" => "BVT",
|
|
"BW" => "BWA",
|
|
"WS" => "WSM",
|
|
"BQ" => "BES",
|
|
"BR" => "BRA",
|
|
"BS" => "BHS",
|
|
"JE" => "JEY",
|
|
"BY" => "BLR",
|
|
"BZ" => "BLZ",
|
|
"RU" => "RUS",
|
|
"RW" => "RWA",
|
|
"RS" => "SRB",
|
|
"TL" => "TLS",
|
|
"RE" => "REU",
|
|
"TM" => "TKM",
|
|
"TJ" => "TJK",
|
|
"RO" => "ROU",
|
|
"TK" => "TKL",
|
|
"GW" => "GNB",
|
|
"GU" => "GUM",
|
|
"GT" => "GTM",
|
|
"GS" => "SGS",
|
|
"GR" => "GRC",
|
|
"GQ" => "GNQ",
|
|
"GP" => "GLP",
|
|
"JP" => "JPN",
|
|
"GY" => "GUY",
|
|
"GG" => "GGY",
|
|
"GF" => "GUF",
|
|
"GE" => "GEO",
|
|
"GD" => "GRD",
|
|
"GB" => "GBR",
|
|
"GA" => "GAB",
|
|
"SV" => "SLV",
|
|
"GN" => "GIN",
|
|
"GM" => "GMB",
|
|
"GL" => "GRL",
|
|
"GI" => "GIB",
|
|
"GH" => "GHA",
|
|
"OM" => "OMN",
|
|
"TN" => "TUN",
|
|
"JO" => "JOR",
|
|
"HR" => "HRV",
|
|
"HT" => "HTI",
|
|
"HU" => "HUN",
|
|
"HK" => "HKG",
|
|
"HN" => "HND",
|
|
"HM" => "HMD",
|
|
"VE" => "VEN",
|
|
"PR" => "PRI",
|
|
"PS" => "PSE",
|
|
"PW" => "PLW",
|
|
"PT" => "PRT",
|
|
"SJ" => "SJM",
|
|
"PY" => "PRY",
|
|
"IQ" => "IRQ",
|
|
"PA" => "PAN",
|
|
"PF" => "PYF",
|
|
"PG" => "PNG",
|
|
"PE" => "PER",
|
|
"PK" => "PAK",
|
|
"PH" => "PHL",
|
|
"PN" => "PCN",
|
|
"PL" => "POL",
|
|
"PM" => "SPM",
|
|
"ZM" => "ZMB",
|
|
"EH" => "ESH",
|
|
"EE" => "EST",
|
|
"EG" => "EGY",
|
|
"ZA" => "ZAF",
|
|
"EC" => "ECU",
|
|
"IT" => "ITA",
|
|
"VN" => "VNM",
|
|
"SB" => "SLB",
|
|
"ET" => "ETH",
|
|
"SO" => "SOM",
|
|
"ZW" => "ZWE",
|
|
"SA" => "SAU",
|
|
"ES" => "ESP",
|
|
"ER" => "ERI",
|
|
"ME" => "MNE",
|
|
"MD" => "MDA",
|
|
"MG" => "MDG",
|
|
"MF" => "MAF",
|
|
"MA" => "MAR",
|
|
"MC" => "MCO",
|
|
"UZ" => "UZB",
|
|
"MM" => "MMR",
|
|
"ML" => "MLI",
|
|
"MO" => "MAC",
|
|
"MN" => "MNG",
|
|
"MH" => "MHL",
|
|
"MK" => "MKD",
|
|
"MU" => "MUS",
|
|
"MT" => "MLT",
|
|
"MW" => "MWI",
|
|
"MV" => "MDV",
|
|
"MQ" => "MTQ",
|
|
"MP" => "MNP",
|
|
"MS" => "MSR",
|
|
"MR" => "MRT",
|
|
"IM" => "IMN",
|
|
"UG" => "UGA",
|
|
"TZ" => "TZA",
|
|
"MY" => "MYS",
|
|
"MX" => "MEX",
|
|
"IL" => "ISR",
|
|
"FR" => "FRA",
|
|
"IO" => "IOT",
|
|
"SH" => "SHN",
|
|
"FI" => "FIN",
|
|
"FJ" => "FJI",
|
|
"FK" => "FLK",
|
|
"FM" => "FSM",
|
|
"FO" => "FRO",
|
|
"NI" => "NIC",
|
|
"NL" => "NLD",
|
|
"NO" => "NOR",
|
|
"NA" => "NAM",
|
|
"VU" => "VUT",
|
|
"NC" => "NCL",
|
|
"NE" => "NER",
|
|
"NF" => "NFK",
|
|
"NG" => "NGA",
|
|
"NZ" => "NZL",
|
|
"NP" => "NPL",
|
|
"NR" => "NRU",
|
|
"NU" => "NIU",
|
|
"CK" => "COK",
|
|
"XK" => "XKX",
|
|
"CI" => "CIV",
|
|
"CH" => "CHE",
|
|
"CO" => "COL",
|
|
"CN" => "CHN",
|
|
"CM" => "CMR",
|
|
"CL" => "CHL",
|
|
"CC" => "CCK",
|
|
"CA" => "CAN",
|
|
"CG" => "COG",
|
|
"CF" => "CAF",
|
|
"CD" => "COD",
|
|
"CZ" => "CZE",
|
|
"CY" => "CYP",
|
|
"CX" => "CXR",
|
|
"CR" => "CRI",
|
|
"CW" => "CUW",
|
|
"CV" => "CPV",
|
|
"CU" => "CUB",
|
|
"SZ" => "SWZ",
|
|
"SY" => "SYR",
|
|
"SX" => "SXM",
|
|
"KG" => "KGZ",
|
|
"KE" => "KEN",
|
|
"SS" => "SSD",
|
|
"SR" => "SUR",
|
|
"KI" => "KIR",
|
|
"KH" => "KHM",
|
|
"KN" => "KNA",
|
|
"KM" => "COM",
|
|
"ST" => "STP",
|
|
"SK" => "SVK",
|
|
"KR" => "KOR",
|
|
"SI" => "SVN",
|
|
"KP" => "PRK",
|
|
"KW" => "KWT",
|
|
"SN" => "SEN",
|
|
"SM" => "SMR",
|
|
"SL" => "SLE",
|
|
"SC" => "SYC",
|
|
"KZ" => "KAZ",
|
|
"KY" => "CYM",
|
|
"SG" => "SGP",
|
|
"SE" => "SWE",
|
|
"SD" => "SDN",
|
|
"DO" => "DOM",
|
|
"DM" => "DMA",
|
|
"DJ" => "DJI",
|
|
"DK" => "DNK",
|
|
"VG" => "VGB",
|
|
"DE" => "DEU",
|
|
"YE" => "YEM",
|
|
"DZ" => "DZA",
|
|
"US" => "USA",
|
|
"UY" => "URY",
|
|
"YT" => "MYT",
|
|
"UM" => "UMI",
|
|
"LB" => "LBN",
|
|
"LC" => "LCA",
|
|
"LA" => "LAO",
|
|
"TV" => "TUV",
|
|
"TW" => "TWN",
|
|
"TT" => "TTO",
|
|
"TR" => "TUR",
|
|
"LK" => "LKA",
|
|
"LI" => "LIE",
|
|
"LV" => "LVA",
|
|
"TO" => "TON",
|
|
"LT" => "LTU",
|
|
"LU" => "LUX",
|
|
"LR" => "LBR",
|
|
"LS" => "LSO",
|
|
"TH" => "THA",
|
|
"TF" => "ATF",
|
|
"TG" => "TGO",
|
|
"TD" => "TCD",
|
|
"TC" => "TCA",
|
|
"LY" => "LBY",
|
|
"VA" => "VAT",
|
|
"VC" => "VCT",
|
|
"AE" => "ARE",
|
|
"AD" => "AND",
|
|
"AG" => "ATG",
|
|
"AF" => "AFG",
|
|
"AI" => "AIA",
|
|
"VI" => "VIR",
|
|
"IS" => "ISL",
|
|
"IR" => "IRN",
|
|
"AM" => "ARM",
|
|
"AL" => "ALB",
|
|
"AO" => "AGO",
|
|
"AQ" => "ATA",
|
|
"AS" => "ASM",
|
|
"AR" => "ARG",
|
|
"AU" => "AUS",
|
|
"AT" => "AUT",
|
|
"AW" => "ABW",
|
|
"IN" => "IND",
|
|
"AX" => "ALA",
|
|
"AZ" => "AZE",
|
|
"IE" => "IRL",
|
|
"ID" => "IDN",
|
|
"UA" => "UKR",
|
|
"QA" => "QAT",
|
|
"MZ" => "MOZ"
|
|
];
|
|
|
|
/**
|
|
* Instanacja obiektu stCountries
|
|
* @var stCountries object
|
|
*/
|
|
protected static $instance = null;
|
|
|
|
/**
|
|
* Zmienna całej klasy
|
|
* @var int
|
|
*/
|
|
private $countries = null;
|
|
|
|
/**
|
|
* Przelicznik instancji
|
|
* @var int
|
|
*/
|
|
private $counter = 1;
|
|
|
|
/**
|
|
* Inicjalizacja countries
|
|
*
|
|
* @param string $context instancja obiektu sfContext::getInstance()
|
|
*/
|
|
private $context;
|
|
|
|
/**
|
|
* Incjalizacja klasy stCountries
|
|
*
|
|
* @param string $context
|
|
*/
|
|
public function initialize($context)
|
|
{
|
|
$this->context = $context;
|
|
$this->countries = $context->getUser()->getAttribute('countries', null, self::SESSION_NAMESPACE);
|
|
}
|
|
|
|
/**
|
|
* Zwraca instancje obiektu
|
|
*
|
|
* @param string $context
|
|
* @return stCountries
|
|
*/
|
|
public static function getInstance($context)
|
|
{
|
|
if (!isset(self::$instance))
|
|
{
|
|
$class = __CLASS__;
|
|
self::$instance = new $class();
|
|
self::$instance->initialize($context);
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
/**
|
|
* Zapisuje ID countries dla uzytkownika
|
|
*
|
|
* @param idCountries $id
|
|
*/
|
|
public function set($id)
|
|
{
|
|
$this->context->getUser()->setAttribute('countries', $id);
|
|
}
|
|
|
|
/**
|
|
* Konwertuje kod ALPHA-2 do ALPHA-3
|
|
*
|
|
* @param string $alpha2 Kod kraju w formacie ISO3
|
|
* @return string|null
|
|
*/
|
|
public static function convAlpha2ToAlpha3(string $alpha2): ?string
|
|
{
|
|
return isset(self::ISO_CODES[$alpha2]) ? self::ISO_CODES[$alpha2] : null;
|
|
}
|
|
|
|
/**
|
|
* Konwertuje kod ALPHA-3 do ALPHA-2
|
|
*
|
|
* @param string $alpha3 Kod kraju w formacie ALPHA-3
|
|
* @return string|null
|
|
*/
|
|
public static function convAlpha3ToAlpha2(string $alpha3): ?string
|
|
{
|
|
$result = array_search($alpha3, self::ISO_CODES);
|
|
|
|
return false !== $result ? $result : null;
|
|
}
|
|
} |