mirror of
https://github.com/php/web-php.git
synced 2026-03-23 23:02:13 +01:00
Merge pull request #35 from heiglandreas/feature/addUgFromLiveData
Optimizes Usergroup-display * heiglandreas/feature/addUgFromLiveData: Removes unnecessary code Optimizes Usergroup-display
This commit is contained in:
255
include/countries-alpha2.inc
Normal file
255
include/countries-alpha2.inc
Normal file
@@ -0,0 +1,255 @@
|
||||
<?php
|
||||
/**
|
||||
* Taken from http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
|
||||
*/
|
||||
$COUNTRIES_ALPHA2 = array(
|
||||
"AD" => "Andorra",
|
||||
"AE" => "United Arab Emirates",
|
||||
"AF" => "Afghanistan",
|
||||
"AG" => "Antigua and Barbuda",
|
||||
"AI" => "Anguilla",
|
||||
"AL" => "Albania",
|
||||
"AM" => "Armenia",
|
||||
"AO" => "Angola",
|
||||
"AQ" => "Antarctica",
|
||||
"AR" => "Argentina",
|
||||
"AS" => "American Samoa",
|
||||
"AT" => "Austria",
|
||||
"AU" => "Australia",
|
||||
"AW" => "Aruba",
|
||||
"AX" => "Åland Islands",
|
||||
"AZ" => "Azerbaijan",
|
||||
"BA" => "Bosnia and Herzegovina",
|
||||
"BB" => "Barbados",
|
||||
"BD" => "Bangladesh",
|
||||
"BE" => "Belgium",
|
||||
"BF" => "Burkina Faso",
|
||||
"BG" => "Bulgaria",
|
||||
"BH" => "Bahrain",
|
||||
"BI" => "Burundi",
|
||||
"BJ" => "Benin",
|
||||
"BL" => "Saint Barthélemy",
|
||||
"BM" => "Bermuda",
|
||||
"BN" => "Brunei Darussalam",
|
||||
"BO" => "Bolivia, Plurinational State of",
|
||||
"BQ" => "Bonaire, Sint Eustatius and Saba",
|
||||
"BR" => "Brazil",
|
||||
"BS" => "Bahamas",
|
||||
"BT" => "Bhutan",
|
||||
"BV" => "Bouvet Island",
|
||||
"BW" => "Botswana",
|
||||
"BY" => "Belarus",
|
||||
"BZ" => "Belize",
|
||||
"CA" => "Canada",
|
||||
"CC" => "Cocos (Keeling) Islands",
|
||||
"CD" => "Congo, the Democratic Republic of the",
|
||||
"CF" => "Central African Republic",
|
||||
"CG" => "Congo",
|
||||
"CH" => "Switzerland",
|
||||
"CI" => "Côte d'Ivoire",
|
||||
"CK" => "Cook Islands",
|
||||
"CL" => "Chile",
|
||||
"CM" => "Cameroon",
|
||||
"CN" => "China",
|
||||
"CO" => "Colombia",
|
||||
"CR" => "Costa Rica",
|
||||
"CU" => "Cuba",
|
||||
"CV" => "Cape Verde",
|
||||
"CW" => "Curaçao",
|
||||
"CX" => "Christmas Island",
|
||||
"CY" => "Cyprus",
|
||||
"CZ" => "Czech Republic",
|
||||
"DE" => "Germany",
|
||||
"DJ" => "Djibouti",
|
||||
"DK" => "Denmark",
|
||||
"DM" => "Dominica",
|
||||
"DO" => "Dominican Republic",
|
||||
"DZ" => "Algeria",
|
||||
"EC" => "Ecuador",
|
||||
"EE" => "Estonia",
|
||||
"EG" => "Egypt",
|
||||
"EH" => "Western Sahara",
|
||||
"ER" => "Eritrea",
|
||||
"ES" => "Spain",
|
||||
"ET" => "Ethiopia",
|
||||
"FI" => "Finland",
|
||||
"FJ" => "Fiji",
|
||||
"FK" => "Falkland Islands (Malvinas)",
|
||||
"FM" => "Micronesia, Federated States of",
|
||||
"FO" => "Faroe Islands",
|
||||
"FR" => "France",
|
||||
"GA" => "Gabon",
|
||||
"GB" => "United Kingdom",
|
||||
"GD" => "Grenada",
|
||||
"GE" => "Georgia",
|
||||
"GF" => "French Guiana",
|
||||
"GG" => "Guernsey",
|
||||
"GH" => "Ghana",
|
||||
"GI" => "Gibraltar",
|
||||
"GL" => "Greenland",
|
||||
"GM" => "Gambia",
|
||||
"GN" => "Guinea",
|
||||
"GP" => "Guadeloupe",
|
||||
"GQ" => "Equatorial Guinea",
|
||||
"GR" => "Greece",
|
||||
"GS" => "South Georgia and the South Sandwich Islands",
|
||||
"GT" => "Guatemala",
|
||||
"GU" => "Guam",
|
||||
"GW" => "Guinea-Bissau",
|
||||
"GY" => "Guyana",
|
||||
"HK" => "Hong Kong",
|
||||
"HM" => "Heard Island and McDonald Islands",
|
||||
"HN" => "Honduras",
|
||||
"HR" => "Croatia",
|
||||
"HT" => "Haiti",
|
||||
"HU" => "Hungary",
|
||||
"ID" => "Indonesia",
|
||||
"IE" => "Ireland",
|
||||
"IL" => "Israel",
|
||||
"IM" => "Isle of Man",
|
||||
"IN" => "India",
|
||||
"IO" => "British Indian Ocean Territory",
|
||||
"IQ" => "Iraq",
|
||||
"IR" => "Iran, Islamic Republic of",
|
||||
"IS" => "Iceland",
|
||||
"IT" => "Italy",
|
||||
"JE" => "Jersey",
|
||||
"JM" => "Jamaica",
|
||||
"JO" => "Jordan",
|
||||
"JP" => "Japan",
|
||||
"KE" => "Kenya",
|
||||
"KG" => "Kyrgyzstan",
|
||||
"KH" => "Cambodia",
|
||||
"KI" => "Kiribati",
|
||||
"KM" => "Comoros",
|
||||
"KN" => "Saint Kitts and Nevis",
|
||||
"KP" => "Korea, Democratic People's Republic of",
|
||||
"KR" => "Korea, Republic of",
|
||||
"KW" => "Kuwait",
|
||||
"KY" => "Cayman Islands",
|
||||
"KZ" => "Kazakhstan",
|
||||
"LA" => "Lao People's Democratic Republic",
|
||||
"LB" => "Lebanon",
|
||||
"LC" => "Saint Lucia",
|
||||
"LI" => "Liechtenstein",
|
||||
"LK" => "Sri Lanka",
|
||||
"LR" => "Liberia",
|
||||
"LS" => "Lesotho",
|
||||
"LT" => "Lithuania",
|
||||
"LU" => "Luxembourg",
|
||||
"LV" => "Latvia",
|
||||
"LY" => "Libya",
|
||||
"MA" => "Morocco",
|
||||
"MC" => "Monaco",
|
||||
"MD" => "Moldova, Republic of",
|
||||
"ME" => "Montenegro",
|
||||
"MF" => "Saint Martin (French part)",
|
||||
"MG" => "Madagascar",
|
||||
"MH" => "Marshall Islands",
|
||||
"MK" => "Macedonia, the former Yugoslav Republic of",
|
||||
"ML" => "Mali",
|
||||
"MM" => "Myanmar",
|
||||
"MN" => "Mongolia",
|
||||
"MO" => "Macao",
|
||||
"MP" => "Northern Mariana Islands",
|
||||
"MQ" => "Martinique",
|
||||
"MR" => "Mauritania",
|
||||
"MS" => "Montserrat",
|
||||
"MT" => "Malta",
|
||||
"MU" => "Mauritius",
|
||||
"MV" => "Maldives",
|
||||
"MW" => "Malawi",
|
||||
"MX" => "Mexico",
|
||||
"MY" => "Malaysia",
|
||||
"MZ" => "Mozambique",
|
||||
"NA" => "Namibia",
|
||||
"NC" => "New Caledonia",
|
||||
"NE" => "Niger",
|
||||
"NF" => "Norfolk Island",
|
||||
"NG" => "Nigeria",
|
||||
"NI" => "Nicaragua",
|
||||
"NL" => "Netherlands",
|
||||
"NO" => "Norway",
|
||||
"NP" => "Nepal",
|
||||
"NR" => "Nauru",
|
||||
"NU" => "Niue",
|
||||
"NZ" => "New Zealand",
|
||||
"OM" => "Oman",
|
||||
"PA" => "Panama",
|
||||
"PE" => "Peru",
|
||||
"PF" => "French Polynesia",
|
||||
"PG" => "Papua New Guinea",
|
||||
"PH" => "Philippines",
|
||||
"PK" => "Pakistan",
|
||||
"PL" => "Poland",
|
||||
"PM" => "Saint Pierre and Miquelon",
|
||||
"PN" => "Pitcairn",
|
||||
"PR" => "Puerto Rico",
|
||||
"PS" => "Palestine, State of",
|
||||
"PT" => "Portugal",
|
||||
"PW" => "Palau",
|
||||
"PY" => "Paraguay",
|
||||
"QA" => "Qatar",
|
||||
"RE" => "Réunion",
|
||||
"RO" => "Romania",
|
||||
"RS" => "Serbia",
|
||||
"RU" => "Russian Federation",
|
||||
"RW" => "Rwanda",
|
||||
"SA" => "Saudi Arabia",
|
||||
"SB" => "Solomon Islands",
|
||||
"SC" => "Seychelles",
|
||||
"SD" => "Sudan",
|
||||
"SE" => "Sweden",
|
||||
"SG" => "Singapore",
|
||||
"SH" => "Saint Helena, Ascension and Tristan da Cunha",
|
||||
"SI" => "Slovenia",
|
||||
"SJ" => "Svalbard and Jan Mayen",
|
||||
"SK" => "Slovakia",
|
||||
"SL" => "Sierra Leone",
|
||||
"SM" => "San Marino",
|
||||
"SN" => "Senegal",
|
||||
"SO" => "Somalia",
|
||||
"SR" => "Suriname",
|
||||
"SS" => "South Sudan",
|
||||
"ST" => "Sao Tome and Principe",
|
||||
"SV" => "El Salvador",
|
||||
"SX" => "Sint Maarten (Dutch part)",
|
||||
"SY" => "Syrian Arab Republic",
|
||||
"SZ" => "Swaziland",
|
||||
"TC" => "Turks and Caicos Islands",
|
||||
"TD" => "Chad",
|
||||
"TF" => "French Southern Territories",
|
||||
"TG" => "Togo",
|
||||
"TH" => "Thailand",
|
||||
"TJ" => "Tajikistan",
|
||||
"TK" => "Tokelau",
|
||||
"TL" => "Timor-Leste",
|
||||
"TM" => "Turkmenistan",
|
||||
"TN" => "Tunisia",
|
||||
"TO" => "Tonga",
|
||||
"TR" => "Turkey",
|
||||
"TT" => "Trinidad and Tobago",
|
||||
"TV" => "Tuvalu",
|
||||
"TW" => "Taiwan, Province of China",
|
||||
"TZ" => "Tanzania, United Republic of",
|
||||
"UA" => "Ukraine",
|
||||
"UG" => "Uganda",
|
||||
"UM" => "United States Minor Outlying Islands",
|
||||
"US" => "United States",
|
||||
"UY" => "Uruguay",
|
||||
"UZ" => "Uzbekistan",
|
||||
"VA" => "Holy See (Vatican City State)",
|
||||
"VC" => "Saint Vincent and the Grenadines",
|
||||
"VE" => "Venezuela, Bolivarian Republic of",
|
||||
"VG" => "Virgin Islands, British",
|
||||
"VI" => "Virgin Islands, U.S.",
|
||||
"VN" => "Viet Nam",
|
||||
"VU" => "Vanuatu",
|
||||
"WF" => "Wallis and Futuna",
|
||||
"WS" => "Samoa",
|
||||
"YE" => "Yemen",
|
||||
"YT" => "Mayotte",
|
||||
"ZA" => "South Africa",
|
||||
"ZM" => "Zambia",
|
||||
"ZW" => "Zimbabwe",
|
||||
);
|
||||
@@ -609,13 +609,16 @@ function get_usergroups_in($country, &$allcountries = array()) {
|
||||
$matches = array();
|
||||
$data = json_decode(file_get_contents($filename), true);
|
||||
foreach($data["groups"] as $group) {
|
||||
if (isset($group["ccc"])) {
|
||||
$allcountries[$group["ccc"]] = 1;
|
||||
if ($group["ccc"] == $country) {
|
||||
if (isset($group["country"])) {
|
||||
$allcountries[$group["country"]] = 1;
|
||||
if ($group["country"] == $country) {
|
||||
$matches[] = $group;
|
||||
}
|
||||
}
|
||||
}
|
||||
usort($matches, function($first, $second){
|
||||
return strnatcasecmp($first['name'], $second['name']);
|
||||
});
|
||||
|
||||
return $matches;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ include $_SERVER['DOCUMENT_ROOT'] . '/include/mirrors.inc';
|
||||
// Define $COUNTRIES array
|
||||
include $_SERVER['DOCUMENT_ROOT'] . '/include/countries.inc';
|
||||
|
||||
// Define $COUNTRIES_ALPHA2 array
|
||||
include $_SERVER['DOCUMENT_ROOT'] . '/include/countries-alpha2.inc';
|
||||
|
||||
// Define $LANGUAGES array
|
||||
include $_SERVER['DOCUMENT_ROOT'] . '/include/languages.inc';
|
||||
|
||||
|
||||
58
ug.php
58
ug.php
@@ -12,36 +12,31 @@ site_header("Hypertext Preprocessor",
|
||||
|
||||
|
||||
function print_cc_header($country) {
|
||||
global $COUNTRIES;
|
||||
global $COUNTRIES_ALPHA2;
|
||||
?>
|
||||
<div class="country" id="<?php echo $country ?>">
|
||||
<h2 class="title countrytitle">User Groups in <?php echo $COUNTRIES[$country] ?>
|
||||
<h2 class="title countrytitle">User Groups in <?php echo $COUNTRIES_ALPHA2[$country] ?>
|
||||
<img height="25" width="45" src="/images/flags/beta/<?php echo strtolower($country) ?>.png">
|
||||
</h2>
|
||||
<ul class="ugs">
|
||||
<?php
|
||||
}
|
||||
function ug_get_more_info($group) {
|
||||
if (trim($group["icalendar_url"])) {
|
||||
$url = $group["icalendar_url"];
|
||||
/*
|
||||
if (strncmp("webcal://", $url, strlen("webcal://")) == 0) {
|
||||
$url = str_replace("webcal://", "http://", $url);
|
||||
$data = file_get_contents($url);
|
||||
file_put_contents("backend/events/" . md5($group["icalendar_url"]), $data);
|
||||
}
|
||||
*/
|
||||
$filename = "backend/events/" . md5($url);
|
||||
/* Broken icalendar link */
|
||||
if (!file_exists($filename)) {
|
||||
return "";
|
||||
}
|
||||
$data = file($filename, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||||
$retval = ug_get_next_even_from_ical_array($data);
|
||||
return $retval;
|
||||
if (! trim($group["icalendar_url"])) {
|
||||
return null;
|
||||
}
|
||||
$url = $group["icalendar_url"];
|
||||
|
||||
return "";
|
||||
$filename = "backend/events/" . md5($url);
|
||||
|
||||
/* Broken icalendar link */
|
||||
if (!file_exists($filename)) {
|
||||
return null;
|
||||
}
|
||||
$data = file($filename, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||||
$retval = ug_get_next_even_from_ical_array($data);
|
||||
|
||||
return $retval;
|
||||
}
|
||||
function ug_get_next_even_from_ical_array($ical) {
|
||||
$ok = false;
|
||||
@@ -76,7 +71,9 @@ function ug_get_next_even_from_ical_array($ical) {
|
||||
return array("event" => $data);
|
||||
}
|
||||
function print_ug_matches($matches) {
|
||||
global $COUNTRIES_ALPHA2, $country;
|
||||
$content = "";
|
||||
echo '<dl>';
|
||||
foreach($matches as $group) {
|
||||
$data = ug_get_more_info($group);
|
||||
$details = "";
|
||||
@@ -88,22 +85,22 @@ function print_ug_matches($matches) {
|
||||
* newlines making this look like geocities */
|
||||
//$description = nl2br(htmlspecialchars($data["event"]["DESCRIPTION"]), false);
|
||||
if ($url) { /* Google Calendar doesn't have this */
|
||||
$details = ": <a href='$url'>{$summary}</a> - {$d}"; //<br>" . $description;
|
||||
$details = "{$d} - <a href='$url'>{$summary}</a>"; //<br>" . $description;
|
||||
} else {
|
||||
$details = ": $summary - {$d}";// . $description;
|
||||
$details = "{$d} - $summary";// . $description;
|
||||
}
|
||||
}
|
||||
echo '<li class="ug"><a href="'. $group["url"].'">' . $group["name"] . "</a>$details</li>";
|
||||
echo '<dt class="ug"><a href="'. $group["url"].'">' . $group["name"] . "</a></dt><dd>$details</dd>";
|
||||
}
|
||||
if (!$matches) {
|
||||
echo "<li>There are no known User Groups in {$COUNTRIES[$country]} at this time :(</li>";
|
||||
echo "<dt>Sorry</dt><dd>There are no known User Groups in {$COUNTRIES_ALPHA2[$country]} at this time :(</dd>";
|
||||
}
|
||||
echo "</ul>";
|
||||
echo "</dl>";
|
||||
}
|
||||
|
||||
$country = isset($_GET["cc"]) ? $_GET["cc"] : $COUNTRY;
|
||||
|
||||
if (isset($COUNTRIES[$country])) {
|
||||
$allcountries = array();
|
||||
if (isset($COUNTRIES_ALPHA2[$country])) {
|
||||
$matches = get_usergroups_in($country, $allcountries);
|
||||
print_cc_header($country);
|
||||
print_ug_matches($matches);
|
||||
@@ -111,13 +108,16 @@ if (isset($COUNTRIES[$country])) {
|
||||
echo "<h1>Unknown country</h1>";
|
||||
}
|
||||
|
||||
|
||||
uksort($allcountries, function($first, $second){
|
||||
global $COUNTRIES_ALPHA2;
|
||||
return strnatcasecmp($COUNTRIES_ALPHA2[$first], $COUNTRIES_ALPHA2[$second]);
|
||||
});
|
||||
|
||||
$SIDEBAR_DATA = <<< EOF
|
||||
<p class="panel"><a href="http://php.ug/ug/promote">Register new UG</a></p>
|
||||
EOF;
|
||||
foreach($allcountries as $country => $nada) {
|
||||
$SIDEBAR_DATA .= '<p class="panel"><a href="/ug.php?cc=' . $country . '">' . $COUNTRIES[$country] . '</a></p>';
|
||||
$SIDEBAR_DATA .= '<p class="panel"><a href="/ug.php?cc=' . $country . '">' . $COUNTRIES_ALPHA2[$country] . '</a></p>';
|
||||
}
|
||||
|
||||
// Print the common footer.
|
||||
|
||||
Reference in New Issue
Block a user