Completed
Pull Request — master (#194)
by De Cramer
24:15 queued 02:45
created

Countries::getCodeFromCountry()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
ccs 0
cts 6
cp 0
cc 2
eloc 6
nc 2
nop 1
crap 6
1
<?php
2
3
namespace eXpansion\Framework\Core\Helpers;
4
5
class Countries
6
{
7
8
    public static $countries = array(
9
        'Afghanistan' => 'AFG',
10
        'Albania' => 'ALB',
11
        'Algeria' => 'ALG',
12
        'Andorra' => 'AND',
13
        'Angola' => 'ANG',
14
        'Argentina' => 'ARG',
15
        'Armenia' => 'ARM',
16
        'Aruba' => 'ARU',
17
        'Australia' => 'AUS',
18
        'Austria' => 'AUT',
19
        'Azerbaijan' => 'AZE',
20
        'Bahamas' => 'BAH',
21
        'Bahrain' => 'BRN',
22
        'Bangladesh' => 'BAN',
23
        'Barbados' => 'BAR',
24
        'Belarus' => 'BLR',
25
        'Belgium' => 'BEL',
26
        'Belize' => 'BIZ',
27
        'Benin' => 'BEN',
28
        'Bermuda' => 'BER',
29
        'Bhutan' => 'BHU',
30
        'Bolivia' => 'BOL',
31
        'Bosnia&Herzegovina' => 'BIH',
32
        'Botswana' => 'BOT',
33
        'Brazil' => 'BRA',
34
        'Brunei' => 'BRU',
35
        'Bulgaria' => 'BUL',
36
        'Burkina Faso' => 'BUR',
37
        'Burundi' => 'BDI',
38
        'Cambodia' => 'CAM',
39
        'Cameroon' => 'CAR',
40
        'Canada' => 'CAN',
41
        'Cape Verde' => 'CPV',
42
        'Central African Republic' => 'CAF',
43
        'Chad' => 'CHA',
44
        'Chile' => 'CHI',
45
        'China' => 'CHN',
46
        'Chinese Taipei' => 'TPE',
47
        'Colombia' => 'COL',
48
        'Congo' => 'CGO',
49
        'Costa Rica' => 'CRC',
50
        'Croatia' => 'CRO',
51
        'Cuba' => 'CUB',
52
        'Cyprus' => 'CYP',
53
        'Czech Republic' => 'CZE',
54
        'Czech republic' => 'CZE',
55
        'DR Congo' => 'COD',
56
        'Denmark' => 'DEN',
57
        'Djibouti' => 'DJI',
58
        'Dominica' => 'DMA',
59
        'Dominican Republic' => 'DOM',
60
        'Ecuador' => 'ECU',
61
        'Egypt' => 'EGY',
62
        'El Salvador' => 'ESA',
63
        'Eritrea' => 'ERI',
64
        'Estonia' => 'EST',
65
        'Ethiopia' => 'ETH',
66
        'Fiji' => 'FIJ',
67
        'Finland' => 'FIN',
68
        'France' => 'FRA',
69
        'Gabon' => 'GAB',
70
        'Gambia' => 'GAM',
71
        'Georgia' => 'GEO',
72
        'Germany' => 'DEU',
73
        'Ghana' => 'GHA',
74
        'Greece' => 'GRE',
75
        'Grenada' => 'GRN',
76
        'Guam' => 'GUM',
77
        'Guatemala' => 'GUA',
78
        'Guinea' => 'GUI',
79
        'Guinea-Bissau' => 'GBS',
80
        'Guyana' => 'GUY',
81
        'Haiti' => 'HAI',
82
        'Honduras' => 'HON',
83
        'Hong Kong' => 'HKG',
84
        'Hungary' => 'HUN',
85
        'Iceland' => 'ISL',
86
        'India' => 'IND',
87
        'Indonesia' => 'INA',
88
        'Iran' => 'IRI',
89
        'Iraq' => 'IRQ',
90
        'Ireland' => 'IRL',
91
        'Israel' => 'ISR',
92
        'Italy' => 'ITA',
93
        'Ivory Coast' => 'CIV',
94
        'Jamaica' => 'JAM',
95
        'Japan' => 'JPN',
96
        'Jordan' => 'JOR',
97
        'Kazakhstan' => 'KAZ',
98
        'Kenya' => 'KEN',
99
        'Kiribati' => 'KIR',
100
        'Korea' => 'KOR',
101
        'Kuwait' => 'KUW',
102
        'Kyrgyzstan' => 'KGZ',
103
        'Laos' => 'LAO',
104
        'Latvia' => 'LAT',
105
        'Lebanon' => 'LIB',
106
        'Lesotho' => 'LES',
107
        'Liberia' => 'LBR',
108
        'Libya' => 'LBA',
109
        'Liechtenstein' => 'LIE',
110
        'Lithuania' => 'LTU',
111
        'Luxembourg' => 'LUX',
112
        'Macedonia' => 'MKD',
113
        'Malawi' => 'MAW',
114
        'Malaysia' => 'MAS',
115
        'Mali' => 'MLI',
116
        'Malta' => 'MLT',
117
        'Mauritania' => 'MTN',
118
        'Mauritius' => 'MRI',
119
        'Mexico' => 'MEX',
120
        'Moldova' => 'MDA',
121
        'Monaco' => 'MON',
122
        'Mongolia' => 'MGL',
123
        'Montenegro' => 'MNE',
124
        'Morocco' => 'MAR',
125
        'Mozambique' => 'MOZ',
126
        'Myanmar' => 'MYA',
127
        'Namibia' => 'NAM',
128
        'Nauru' => 'NRU',
129
        'Nepal' => 'NEP',
130
        'Netherlands' => 'NED',
131
        'New Zealand' => 'NZL',
132
        'Nicaragua' => 'NCA',
133
        'Niger' => 'NIG',
134
        'Nigeria' => 'NGR',
135
        'Norway' => 'NOR',
136
        'Oman' => 'OMA',
137
        'Other Countries' => 'OTH',
138
        'Pakistan' => 'PAK',
139
        'Palau' => 'PLW',
140
        'Palestine' => 'PLE',
141
        'Panama' => 'PAN',
142
        'Paraguay' => 'PAR',
143
        'Peru' => 'PER',
144
        'Philippines' => 'PHI',
145
        'Poland' => 'POL',
146
        'Portugal' => 'POR',
147
        'Puerto Rico' => 'PUR',
148
        'Qatar' => 'QAT',
149
        'Romania' => 'ROM',
150
        'Russia' => 'RUS',
151
        'Rwanda' => 'RWA',
152
        'Samoa' => 'SAM',
153
        'San Marino' => 'SMR',
154
        'Saudi Arabia' => 'KSA',
155
        'Senegal' => 'SEN',
156
        'Serbia' => 'SCG',
157
        'Sierra Leone' => 'SLE',
158
        'Singapore' => 'SIN',
159
        'Slovakia' => 'SVK',
160
        'Slovenia' => 'SLO',
161
        'Somalia' => 'SOM',
162
        'South Africa' => 'RSA',
163
        'Spain' => 'ESP',
164
        'Sri Lanka' => 'SRI',
165
        'Sudan' => 'SUD',
166
        'Suriname' => 'SUR',
167
        'Swaziland' => 'SWZ',
168
        'Sweden' => 'SWE',
169
        'Switzerland' => 'SUI',
170
        'Syria' => 'SYR',
171
        'Taiwan' => 'TWN',
172
        'Tajikistan' => 'TJK',
173
        'Tanzania' => 'TAN',
174
        'Thailand' => 'THA',
175
        'Togo' => 'TOG',
176
        'Tonga' => 'TGA',
177
        'Trinidad and Tobago' => 'TRI',
178
        'Tunisia' => 'TUN',
179
        'Turkey' => 'TUR',
180
        'Turkmenistan' => 'TKM',
181
        'Tuvalu' => 'TUV',
182
        'Uganda' => 'UGA',
183
        'Ukraine' => 'UKR',
184
        'United Arab Emirates' => 'UAE',
185
        'United Kingdom' => 'GBR',
186
        'United States of America' => 'USA',
187
        'Uruguay' => 'URU',
188
        'Uzbekistan' => 'UZB',
189
        'Vanuatu' => 'VAN',
190
        'Venezuela' => 'VEN',
191
        'Vietnam' => 'VIE',
192
        'Yemen' => 'YEM',
193
        'Zambia' => 'ZAM',
194
        'Zimbabwe' => 'ZIM',
195
    );
196
197
    /**
198
     * Get 3-letter country code from full country name
199
     *
200
     * @param $country
201
     * @return mixed|string
202
     */
203
    public static function getCodeFromCountry($country)
204
    {
205
        $countries = self::$countries;
206
207
        $output = 'OTH';
208
        if (array_key_exists($country, $countries)) {
209
            $output = $countries[$country];
210
        }
211
212
        return $output;
213
    }
214
215
    /**
216
     * Get full country name from 3-letter country code
217
     *
218
     * @param string $code
219
     * @return string
220
     */
221
    public static function getCountryFromCode($code)
222
    {
223
        $countries = self::$countries;
224
225
        $code = strtoupper($code);
226
        $output = "Other";
227
        if (in_array($code, $countries)) {
228
            foreach ($countries as $country => $short) {
229
                if (strtoupper($code) == $short) {
230
                    $output = $country;
231
                    break;
232
                }
233
            }
234
        }
235
236
        return $output;
237
    }
238
239
    /**
240
     * Parses country from maniaplanet player objects' path
241
     *
242
     * @param string $path Maniaplanet path from player object
243
     * @return string long country name
244
     */
245
    public static function parseCountryFromPath($path)
246
    {
247
        $parts = explode("|", $path, 3);
248
        if (count($parts)>= 2) {
249
            return $parts[2];
250
        }
251
252
        return "Other";
253
    }
254
}
255