FundacionLQDVI_WebCongresos/www/modules/mod_metamod/elements/moretimezones.php

87 lines
14 KiB
PHP
Raw Normal View History

<?php
/**
* @version 2.3
* @copyright Copyright (C) 2007-2010 Stephen Brandon
* @license GNU/GPL
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();
class JElementMoretimezones extends JElement
{
/**
* Element name
*
* @access protected
* @var string
*/
var $_name = 'Moretimezones';
function get_tz_options($name, $selectedzone, $control_name) {
$r = '';
$r .= '<select name="'.htmlentities($control_name).'['.htmlentities($name).']">';
$r .= $this->timezonechoice($selectedzone);
$r .= '</select>';
return $r;
}
function static_zones() {
return $timezones = array('Africa/Abidjan' => 0, 'Africa/Accra' => 0, 'Africa/Addis_Ababa' => 10800, 'Africa/Algiers' => 3600, 'Africa/Asmera' => 10800, 'Africa/Bamako' => 0, 'Africa/Bangui' => 3600, 'Africa/Banjul' => 0, 'Africa/Bissau' => 0, 'Africa/Blantyre' => 7200, 'Africa/Brazzaville' => 3600, 'Africa/Bujumbura' => 7200, 'Africa/Cairo' => 7200, 'Africa/Casablanca' => 0, 'Africa/Ceuta' => 3600, 'Africa/Conakry' => 0, 'Africa/Dakar' => 0, 'Africa/Dar_es_Salaam' => 10800, 'Africa/Djibouti' => 10800, 'Africa/Douala' => 3600, 'Africa/El_Aaiun' => 0, 'Africa/Freetown' => 0, 'Africa/Gaborone' => 7200, 'Africa/Harare' => 7200, 'Africa/Johannesburg' => 7200, 'Africa/Kampala' => 10800, 'Africa/Khartoum' => 10800, 'Africa/Kigali' => 7200, 'Africa/Kinshasa' => 3600, 'Africa/Lagos' => 3600, 'Africa/Libreville' => 3600, 'Africa/Lome' => 0, 'Africa/Luanda' => 3600, 'Africa/Lubumbashi' => 7200, 'Africa/Lusaka' => 7200, 'Africa/Malabo' => 3600, 'Africa/Maputo' => 7200, 'Africa/Maseru' => 7200, 'Africa/Mbabane' => 7200, 'Africa/Mogadishu' => 10800, 'Africa/Monrovia' => 0, 'Africa/Nairobi' => 10800, 'Africa/Ndjamena' => 3600, 'Africa/Niamey' => 3600, 'Africa/Nouakchott' => 0, 'Africa/Ouagadougou' => 0, 'Africa/Porto-Novo' => 3600, 'Africa/Sao_Tome' => 0, 'Africa/Timbuktu' => 0, 'Africa/Tripoli' => 7200, 'Africa/Tunis' => 3600, 'Africa/Windhoek' => 3600, 'America/Adak' => -36000, 'America/Anchorage' => -32400, 'America/Anguilla' => -14400, 'America/Antigua' => -14400, 'America/Araguaina' => -10800, 'America/Argentina/Buenos_Aires' => 0, 'America/Argentina/Catamarca' => 0, 'America/Argentina/ComodRivadavia' => 0, 'America/Argentina/Cordoba' => 0, 'America/Argentina/Jujuy' => 0, 'America/Argentina/La_Rioja' => 0, 'America/Argentina/Mendoza' => 0, 'America/Argentina/Rio_Gallegos' => 0, 'America/Argentina/San_Juan' => 0, 'America/Argentina/Tucuman' => 0, 'America/Argentina/Ushuaia' => 0, 'America/Aruba' => -14400, 'America/Asuncion' => -14400, 'America/Atikokan' => 0, 'America/Atka' => -36000, 'America/Bahia' => 0, 'America/Barbados' => -14400, 'America/Belem' => -10800, 'America/Belize' => -21600, 'America/Blanc-Sablon' => 0, 'America/Boa_Vista' => -14400, 'America/Bogota' => -18000, 'America/Boise' => -25200, 'America/Buenos_Aires' => -10800, 'America/Cambridge_Bay' => -25200, 'America/Campo_Grande' => 0, 'America/Cancun' => -21600, 'America/Caracas' => -14400, 'America/Catamarca' => -10800, 'America/Cayenne' => -10800, 'America/Cayman' => -18000, 'America/Chicago' => -21600, 'America/Chihuahua' => -25200, 'America/Coral_Harbour' => 0, 'America/Cordoba' => -10800, 'America/Costa_Rica' => -21600, 'America/Cuiaba' => -14400, 'America/Curacao' => -14400, 'America/Danmarkshavn' => 0, 'America/Dawson' => -28800, 'America/Dawson_Creek' => -25200, 'America/Denver' => -25200, 'America/Detroit' => -18000, 'America/Dominica' => -14400, 'America/Edmonton' => -25200, 'America/Eirunepe' => -18000, 'America/El_Salvador' => -21600, 'America/Ensenada' => -28800, 'America/Fort_Wayne' => -18000, 'America/Fortaleza' => -10800, 'America/Glace_Bay' => -14400, 'America/Godthab' => -10800, 'America/Goose_Bay' => -14400, 'America/Grand_Turk' => -18000, 'America/Grenada' => -14400, 'America/Guadeloupe' => -14400, 'America/Guatemala' => -21600, 'America/Guayaquil' => -18000, 'America/Guyana' => -14400, 'America/Halifax' => -14400, 'America/Havana' => -18000, 'America/Hermosillo' => -25200, 'America/Indiana/Indianapolis' => -18000, 'America/Indiana/Knox' => -18000, 'America/Indiana/Marengo' => -18000, 'America/Indiana/Petersburg' => 0, 'America/Indiana/Vevay' => -18000, 'America/Indiana/Vincennes' => 0, 'America/Indianapolis' => -18000, 'America/Inuvik' => -25200, 'America/Iqaluit' => -18000, 'America/Jamaica' => -18000, 'America/Jujuy' => -10800, 'America/Juneau' => -32400, 'America/Kentucky/Louisville' => -18000, 'America/Kentucky/Monticello' => -18000, 'America/Knox_IN' => -18000, 'America/La_Paz' => -14400, 'America/Lima' => -18000, 'America/Los_Angeles' => -28800, 'America/Louisville' => -18000, 'America/Maceio' => -10800, 'America/Managua' => -21600, 'Am
}
function timezonechoice($selectedzone) {
$structure = '';
$structure .= '<option '.( ($selectedzone == "default") ?' selected="selected"':'').'value="default">Joomla! default</option>';
if (function_exists("timezone_identifiers_list")) {
$all = timezone_identifiers_list(); //php5 only
} else {
$all = array_keys($this->static_zones()); // I would rather get them from the OS, but this will do at a pinch.
}
$i = 0;
foreach($all AS $zone) {
$zone = explode('/',$zone);
$zonen[$i]['continent'] = isset($zone[0]) ? $zone[0] : '';
$zonen[$i]['city'] = isset($zone[1]) ? $zone[1] : '';
$zonen[$i]['subcity'] = isset($zone[2]) ? $zone[2] : '';
$i++;
}
asort($zonen);
foreach($zonen AS $zone) {
extract($zone);
if($continent == 'Africa' || $continent == 'America' || $continent == 'Antarctica'
|| $continent == 'Arctic' || $continent == 'Asia' || $continent == 'Atlantic'
|| $continent == 'Australia' || $continent == 'Europe' || $continent == 'Indian'
|| $continent == 'Pacific') {
if(!isset($selectcontinent)) {
$structure .= '<optgroup label="'.$continent.'">'; // continent
} elseif($selectcontinent != $continent) {
$structure .= '</optgroup><optgroup label="'.$continent.'">'; // continent
}
if(isset($city) != ''){
if (!empty($subcity) != ''){
$city = $city . '/'. $subcity;
}
$structure .= "<option ".((($continent.'/'.$city)==$selectedzone)?'selected="selected "':'')." value=\"".($continent.'/'.$city)."\">".str_replace('_',' ',$city)."</option>"; //Timezone
} else {
if (!empty($subcity) != ''){
$city = $city . '/'. $subcity;
}
$structure .= "<option ".(($continent==$selectedzone)?'selected="selected "':'')." value=\"".$continent."\">".$continent."</option>"; //Timezone
}
$selectcontinent = $continent;
}
}
$structure .= '</optgroup>';
return $structure;
}
function fetchElement($name, $value, &$node, $control_name) {
return $this->get_tz_options($name, $value, $control_name);
}
}