Files
grzanieplus.pl/plugins/stCountriesPlugin/lib/stCountries.class.php
2025-03-12 17:06:23 +01:00

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;
}
}