DefinizioneQuesta risorsa permetterà di visualizzare dove si desidera il tempo totale di connessione di un utente nel forum.
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 () { if (!window.localStorage || !window._userdata || _userdata["user_id"] === -1) return; var intervalTime = 19000; var savingField = 12; var updateLastSeen = function () { var now = +new Date(); var lastSeen = parseInt(localStorage.lastSeenCT); localStorage.lastSeenCT = now; if (!lastSeen || now - intervalTime - 1000 > lastSeen) { return; } localStorage.timeToAddCT = parseInt(localStorage.timeToAddCT || 0) + now - lastSeen; if (localStorage.timeToAddCT > 300000) { var timeToAdd = parseInt(localStorage.timeToAddCT / 60000); $.get('/u'+uid).then(function (profil) { var currentVal = parseInt($('[name="profile_field_10_'+savingField+'"]', profil).val() || 0); localStorage.fullCT = currentVal + timeToAdd; $.post("/ajax_profile.forum?jsoncallback=?", { user: uid, id: savingField, content: '[["profile_field_10_'+savingField+'", "' + (currentVal + timeToAdd) +'"]]', tid: tid, 'active': 1, }, undefined, 'json').then(function () { localStorage.timeToAddCT %= 60000; }); }); } }; var tid = $("input[name=tid]:first").val() || ($("a[href*='&tid=']:first").attr("href") || "").replace(/^.*&tid=([a-z0-9]*)?.*$/, "$1"); var uid = _userdata["user_id"]; // update connection time setInterval(updateLastSeen, intervalTime); updateLastSeen(); // display connection time var $el = $('#displayCT'); if (!$el.length) return; var def = $.when(); if (localStorage.fullCT === undefined) { def = $.get('/u'+uid).then(function (profil) { var currentVal = parseInt($('[name="'+savingField+'"]', profil).val() || 0); localStorage.fullCT = currentVal; }); } def.then(function () { var connectionTime = parseInt(localStorage.fullCT || 0); var minutes = connectionTime % 60; var hours = parseInt(connectionTime / 60) % 24; var days = parseInt(connectionTime / 1440); $el.text((giorni ? giorni + " giorno" + (days > 1 ? "s" : "") : "") + (ore ? ore+ " ora" + (ore> 1 ? "s" : "") : "") + (minuti + " minuto" + (minuti > 1 ? "s" : ""))); }) });
Visualizzare l'informazioneBasterà aggiungere questo codice dove vorremo visualizzare il dato.
- Codice:
<span id="displayCT"/>
Il codice HTML deve essere supportato dove volete inserire questo codice.
Campo profiloDovremo inoltre creare un nuovo campo profilo in Pannello di amministrazione ► Utenti e gruppi ► Utenti ► Profili ► Campi profilo, inserendo questi parametri:
- Tipo: Numero
- Display: [V] Profilo
- Chi può modificare il valore del suo contenuto? [V] L'utente stesso
- Visualizza questo campo per gli utenti con almeno lo stato: Membri
Una volta creato, devi tornare al campo e nella barra degli indirizzi dovrebbe esserci "id = 12" o un altro numero:
Devi sostituire il numero che hai nel tuo caso in questa riga dello script sopra riportato:
- Codice:
var savingField = 12;
|