DefinizioneQuesta risorsa permetterà di modificare il campo profilo sotto preferenze per selezionare il fuso orario dell'utente.
Installazione JavascriptAndiamo verso Pannello di amministrazione ► , assicuriamoci che la gestione dei codici Javascript sia attivata e creiamo un nuovo codice con queste impostazioni:
- Titolo: a tua scelta
- Dove: in tutte le pagine
- Codice:
- Codice:
$(function () { // fusi orari in ordine di preferenza var preferences = "Toronto Vancouver New_York Mexico_City Paris Anchorage Halifax"; // permetti agli utenti di selezionare il fuso orario solo tra quelli disponibili var force_preference = true; // forza il fuso orario predefinito se non indicato var force_if_no_match = false; // utenti con questo numero max di messaggi hanno la timezone automaticamente impostata var auto_set_max_messages = 0; // rinominare fusi orari var rename = { Toronto: "Montréal", }; if (!window.localStorage || !window._userdata || !_userdata.session_logged_in) return; var tz_selector = force_preference ? preferences.replace(/(\S+)/g, '[value$="/$1"],').replace(/,\s*$/,'') : '*'; var replace_time_zone = function (content) { localStorage.tz_auto_set = 1; var os_time_diff = -new Date().getTimezoneOffset(); var min_diff = Math.abs(os_time_diff)%60; var hour_diff = ('0'+(Math.abs(os_time_diff)-min_diff)/60).slice(-2); var utc_diff = 'UTC '+'+-'[+(os_time_diff<0)]+hour_diff+':'+(' 0'+min_diff).slice(-2); var form = $('form#register', content); var timezones = $('select[name="timezone"] option', form); if (timezones.filter(':selected:contains("'+utc_diff+'")').filter(tz_selector).length) { return; } var found; $.each(preferences.match(/\S+/g), function (_, pref) { found = timezones.filter('[value$="/'+pref+'"]:contains("'+utc_diff+'")'); return !found.length; }); if (!found.length && force_if_no_match) { found = timezones.filter('[value$="/'+preferences.match(/\S+/)[0]+'"]'); } if (!found.length) return; $('[name="timezone"]', form).val(found.val()); $.post('/profile', form.serialize()+'&submit=1'); }; // auto set the timezone for member with `auto_set_max_messages` messages or less if (!localStorage.tz_auto_set && _userdata.user_posts <= auto_set_max_messages) { $.get('/profile?mode=editprofile&page_profil=preferences').then(replace_time_zone) }; if (location.pathname != '/profile') return; $('[name="timezone"] option').not(tz_selector).remove().filter(':selected').each(function() { replace_time_zone(); }); $('[name="timezone"] option').each(function () { var tz = $(this).val().split('/')[1]; if (rename[tz] != undefined) { $(this).text($(this).text().replace(tz, rename[tz])); } }); $('[name="timezone"] optgroup:not(:has(option))').remove(); });
PersonalizzazioneAll'interno del codice è possibile cambiare "Toronto Vancouver New_York Mexico_City Paris Anchorage Halifax"
Questo è l'elenco dei fusi orari in ordine di preferenza (il più preferito per primo) separati da spazi. I fusi orari devono corrispondere a ciò che è dopo la / in questo elenco:
- Codice:
Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda Africa/Lubumbashi Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Mogadishu Africa/Monrovia Africa/Nairobi Africa/Ndjamena Africa/Niamey Africa/Nouakchott Africa/Ouagadougou Africa/Porto-Novo Africa/Sao_Tome Africa/Tripoli Africa/Tunis Africa/Windhoek America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina America/Argentina/Buenos_Aires America/Argentina/Catamarca America/Argentina/Cordoba America/Argentina/Jujuy America/Argentina/La_Rioja America/Argentina/Mendoza America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Aruba America/Asuncion America/Atikokan America/Bahia America/Bahia_Banderas America/Barbados America/Belem America/Belize America/Blanc-Sablon America/Boa_Vista America/Bogota America/Boise America/Cambridge_Bay America/Campo_Grande America/Cancun America/Caracas America/Cayenne America/Cayman America/Chicago America/Chihuahua America/Costa_Rica America/Creston America/Cuiaba America/Curacao America/Danmarkshavn America/Dawson America/Dawson_Creek America/Denver America/Detroit America/Dominica America/Edmonton America/Eirunepe America/El_Salvador America/Fort_Nelson America/Fortaleza America/Glace_Bay America/Godthab America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo America/Indiana/Indianapolis America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Tell_City America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Inuvik America/Iqaluit America/Jamaica America/Juneau America/Kentucky/Louisville America/Kentucky/Monticello America/Kralendijk America/La_Paz America/Lima America/Los_Angeles America/Lower_Princes America/Maceio America/Managua America/Manaus America/Marigot America/Martinique America/Matamoros America/Mazatlan America/Menominee America/Merida America/Metlakatla America/Mexico_City America/Miquelon America/Moncton America/Monterrey America/Montevideo America/Montserrat America/Nassau America/New_York America/Nipigon America/Nome America/Noronha America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem America/Ojinaga America/Panama America/Pangnirtung America/Paramaribo America/Phoenix America/Port-au-Prince America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Punta_Arenas America/Rainy_River America/Rankin_Inlet America/Recife America/Regina America/Resolute America/Rio_Branco America/Santarem America/Santiago America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/Sitka America/St_Barthelemy America/St_Johns America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Swift_Current America/Tegucigalpa America/Thule America/Thunder_Bay America/Tijuana America/Toronto America/Tortola America/Vancouver America/Whitehorse America/Winnipeg America/Yakutat America/Yellowknife Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Macquarie Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Arctic/Longyearbyen Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Atyrau Asia/Baghdad Asia/Bahrain Asia/Baku Asia/Bangkok Asia/Barnaul Asia/Beirut Asia/Bishkek Asia/Brunei Asia/Chita Asia/Choibalsan Asia/Colombo Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai Asia/Dushanbe Asia/Famagusta Asia/Gaza Asia/Hebron Asia/Ho_Chi_Minh Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Kathmandu Asia/Khandyga Asia/Kolkata Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait Asia/Macau Asia/Magadan Asia/Makassar Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk Asia/Oral Asia/Phnom_Penh Asia/Pontianak Asia/Pyongyang Asia/Qatar Asia/Qyzylorda Asia/Riyadh Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Thimphu Asia/Tokyo Asia/Tomsk Asia/Ulaanbaatar Asia/Urumqi Asia/Ust-Nera Asia/Vientiane Asia/Vladivostok Asia/Yakutsk Asia/Yangon Asia/Yekaterinburg Asia/Yerevan Atlantic/Azores Atlantic/Bermuda Atlantic/Canary Atlantic/Cape_Verde Atlantic/Faroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/South_Georgia Atlantic/St_Helena Atlantic/Stanley Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Currie Australia/Darwin Australia/Eucla Australia/Hobart Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/Perth Australia/Sydney Europe/Amsterdam Europe/Andorra Europe/Astrakhan Europe/Athens Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Busingen Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Guernsey Europe/Helsinki Europe/Isle_of_Man Europe/Istanbul Europe/Jersey Europe/Kaliningrad Europe/Kiev Europe/Kirov Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Mariehamn Europe/Minsk Europe/Monaco Europe/Moscow Europe/Oslo Europe/Paris Europe/Podgorica Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/San_Marino Europe/Sarajevo Europe/Saratov Europe/Simferopol Europe/Skopje Europe/Sofia Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Ulyanovsk Europe/Uzhgorod Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Volgograd Europe/Warsaw Europe/Zagreb Europe/Zaporozhye Europe/Zurich Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte Indian/Reunion Pacific/Apia Pacific/Auckland Pacific/Bougainville Pacific/Chatham Pacific/Chuuk Pacific/Easter Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Pohnpei Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Wake Pacific/Wallis
Ulteriori personalizzazioni- Codice:
var force_preference = true;
- Se il valore è true:
- nel profilo, i fusi orari che non sono nell'elenco delle preferenze non vengono visualizzati,
- quando la pagina del profilo delle preferenze è aperta, se l'utente si trova in un fuso orario che non è nell'elenco delle preferenze lo script proverà a cambiarlo in un fuso orario nell'elenco delle preferenze corrispondente all'ora in cui il sistema operativo (windows, android, ...),
- quando il membro ha il numero di messaggi richiesto per il fuso orario da impostare automaticamente una volta, se il fuso orario corrente non è nell'elenco delle preferenze, anche se ha la differenza di orario corretta che il sistema operativo può essere modificato.
Se il valore è falso e il fuso orario ha la stessa differenza di orario del sistema operativo, non verrà modificato.
- Codice:
// force the first time zone preference if no timezone match var force_if_no_match = false;
Se il fuso orario viene impostato automaticamente e nessuno corrisponde alla differenza oraria del sistema operativo, con true verrà scelto il primo fuso orario della lista di riferimento. Con false in questo caso il fuso orario non verrà modificato.
- Codice:
// user with at most this number of message has timezone automatically set once var auto_set_max_messages = 0;
Questo è il numero massimo di messaggi che un membro deve avere affinché il fuso orario venga impostato automaticamente una volta (se cambia browser o passa alla navigazione privata, verrà eseguito di nuovo).
Mettendo 0 questo sarà fatto solo per i membri con 0 messaggi (questo ti permette di cambiare il fuso orario solo per quelli nuovi senza influenzare quelli che hanno un account). Mettendo ad esempio un numero negativo ( -1 ) verrà disattivato. Mettendo un numero elevato ( 999999999 per esempio) dovrebbe applicarsi a tutti i membri.
- Codice:
// timezone with given name will be renamed as specified var rename = { Toronto: "Montréal", }; Un elenco di sostituzioni visive da fare, ad esempio questo sostituirà "Toronto" con "Montreal", se vogliamo aggiungere "Thunder_Bay" con "Quebec" possiamo aggiungere una riga:
- Codice:
var rename = { Thunder_Bay: "Québec", Toronto: "Montréal", };
La parte a sinistra deve essere esattamente ciò che c'è a destra di / nell'elenco sopra. Inoltre, poiché la modifica è solo visiva, è imperativo che il nome sostituito corrisponda effettivamente allo stesso fuso orario estivo e invernale della sostituzione.
Per testare lo script, puoi modificare force_preference in false per inserire un fuso orario che non è nell'elenco delle preferenze, quindi reimpostare force_preference su true e riaprire la pagina "Profilo"> "Preferenze", lo script dovrebbe:
- prendi il primo fuso orario dell'elenco delle preferenze che corrisponde alla differenza di orario del sistema operativo,
- se non ce n'è nessuno e force_if_no_match è true, prendi il primo fuso orario dall'elenco delle preferenze,
- se force_if_no_match è
- , verrà visualizzato il primo fuso orario nell'elenco, ma verrà salvato solo premendo il pulsante "Salva".
Se vuoi testare il fatto che il fuso orario di un membro viene automaticamente messo al di sotto del numero di messaggi di auto_set_max_messages , è necessario inserire una finestra di navigazione in incognito con un utente che abbia configurato il numero massimo di messaggi.
|