Temps de connexion total d'un membre
3 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Temps de connexion total d'un membre
Détails techniques
Version du forum : phpBB2Poste occupé : Fondateur
Navigateur(s) concerné(s) : Mozilla Firefox, Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Problème apparu depuis : - - -
Lien du forum : http://elfs-school.forumactif.com/
Description du problème
Bonjour à tous !Je n'ai présentement pas de "problème" avec mon Forum, mais pour l'améliorer je souhaiterais pouvoir ajouter un message (personnalisé - avec les codes) aux membres connectés sous le menu de navigation. Du style "Bonjour [USERNAME]".
Jusque là, rien de bien folichon, je sais faire. Mais dans ce message je souhaiterais également ajouter le temps de connexion TOTAL que le joueur a passé sur le Forum depuis son inscription - ou au moins depuis l'installation de ce compteur...
Je ne sais pas si un tel code existe, si oui, quel est-il ?
Merci pour votre aide !
Dernière édition par Night Elensar le Ven 2 Nov 2018 - 10:29, édité 2 fois
Re: Temps de connexion total d'un membre
Bonjour,
Voici un exemple de script:
à mettre sur toutes les pages Index > Panneau d'administration > Modules > HTML & JAVASCRIPT | Gestion des codes Javascript > Créer un nouveau javascript.
Avec ce code, il faut:
- ajouter où souhaité:
Le script mettra à l'intérieur de cet élément le temps de connection.
Il faut aussi ajouter un champ de profil (Index > Panneau d'administration > Utilisateurs & Groupes > Utilisateurs | Profils > +) comme ceci:
Les parties qu'il faut pour ce champ sont:
- Type: Nombre
- Affichage: [V] Profil
- Qui peut modifier la valeur de son contenu? [V] L'utilisateur lui-même
- Afficher ce champs pour les utilisateurs ayant au moins le statut : Membres
Une fois créé, il faut retourner sur le champ et dans la barre d'adresse il devrait y avoir "id=12" ou un autre chiffre:
Il faut remplacer le chiffre que vous avez dans votre cas dans cette ligne du script donné plus haut:
Cordialement.
Voici un exemple de script:
- Code:
$(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((days ? days + " jour" + (days > 1 ? "s" : "") : "") + (hours ? hours + " heure" + (hours > 1 ? "s" : "") : "") + (minutes + " minute" + (minutes > 1 ? "s" : "")));
})
});
à mettre sur toutes les pages Index > Panneau d'administration > Modules > HTML & JAVASCRIPT | Gestion des codes Javascript > Créer un nouveau javascript.
Avec ce code, il faut:
- ajouter où souhaité:
- Code:
<span id="displayCT"/>
Le script mettra à l'intérieur de cet élément le temps de connection.
Il faut aussi ajouter un champ de profil (Index > Panneau d'administration > Utilisateurs & Groupes > Utilisateurs | Profils > +) comme ceci:
Les parties qu'il faut pour ce champ sont:
- Type: Nombre
- Affichage: [V] Profil
- Qui peut modifier la valeur de son contenu? [V] L'utilisateur lui-même
- Afficher ce champs pour les utilisateurs ayant au moins le statut : Membres
Une fois créé, il faut retourner sur le champ et dans la barre d'adresse il devrait y avoir "id=12" ou un autre chiffre:
Il faut remplacer le chiffre que vous avez dans votre cas dans cette ligne du script donné plus haut:
- Code:
var savingField = 12;
Cordialement.
Dernière édition par Ea le Ven 2 Nov 2018 - 13:04, édité 1 fois (Raison : correction du script)
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Temps de connexion total d'un membre
Bonjour !
Merci pour ce tuto express ! Je l'ai appliqué et j'ai essayé de faire des modifications afin d'avoir les secondes également, sans succès !
Quoi qu'il en soit, merci encore !
Bonne journée à toi !
Merci pour ce tuto express ! Je l'ai appliqué et j'ai essayé de faire des modifications afin d'avoir les secondes également, sans succès !
Quoi qu'il en soit, merci encore !
Bonne journée à toi !
Re: Temps de connexion total d'un membre
Je constate que le compteur reste bloqué à 5 minutes......
Re: Temps de connexion total d'un membre
Oui désolé, j'ai fait une simplification juste avant de poster et j'avais oublié d'adapté une partie.
Avec ce code ça ne devrait pas être bloqué à 5 minutes et il devrait y avoir les secondes:
Avec ce code ça ne devrait pas être bloqué à 5 minutes et il devrait y avoir les secondes:
- Code:
$(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
updateLastSeen();
setInterval(updateLastSeen, intervalTime);
// 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) * 60 + parseInt((new Date() - localStorage.lastSeenCT + parseInt(localStorage.timeToAddCT || 0)) / 1000) - 1;
var updateTime = function () {
connectionTime++;
var days = parseInt(connectionTime / 86400);
var hours = parseInt(connectionTime / 3600) % 24;
var minutes = parseInt(connectionTime / 60) % 60;
var seconds = connectionTime % 60;
var show = [];
if (days) show.push(days+' jour'+(days > 1 ? 's':''));
if (hours) show.push(hours+' heure'+(hours > 1 ? 's':''));
if (minutes) show.push(minutes+' minute'+(minutes > 1 ? 's':''));
if (seconds) show.push(seconds+' seconde'+(seconds > 1 ? 's':''));
$el.text(show.length ? show.join(' ') : 'aucune');
};
updateTime();
setInterval(updateTime, 1000);
})
});
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Temps de connexion total d'un membre
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Temps de connexion total d'un membre
Malheureusement, le compteur se remet à zéro à chaque connexion...il n'y a pas de réel "temps total".
Re: Temps de connexion total d'un membre
Bonjour,
En me déconnectant et reconnectant au même compte, ça me redonne bien le temps passé.
Le champ affiché dans le profil est bien changé pour un chiffre après plusieurs minutes ? Et il est remi à 0 après la reconnection ?
Sur un forum de test, si j'ai par exemple 31 minutes de connexion ( screenshot: https://i.imgur.com/4MfGBAI.png) je me déconnecte et reconnecte et je n'ai pas perdu le temps (screenshot: https://i.imgur.com/lZjOCZy.png).
Cordialement.
En me déconnectant et reconnectant au même compte, ça me redonne bien le temps passé.
Le champ affiché dans le profil est bien changé pour un chiffre après plusieurs minutes ? Et il est remi à 0 après la reconnection ?
Sur un forum de test, si j'ai par exemple 31 minutes de connexion ( screenshot: https://i.imgur.com/4MfGBAI.png) je me déconnecte et reconnecte et je n'ai pas perdu le temps (screenshot: https://i.imgur.com/lZjOCZy.png).
Cordialement.
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Temps de connexion total d'un membre
Oui, il me remet le compte à zéro ou alors il reprend à 5 minutes ou 9 minutes...alors que ça devrait faire facilement 2h ! xD
Pourtant j'ai bien suivi la procédure !
Pourtant j'ai bien suivi la procédure !
Re: Temps de connexion total d'un membre
Sur le forum indiqué dans le demande je vois dans le script:
C'est le bon ID de champ ? C'est celui dans le script que j'ai indiqué mais c'est étrange que ce soit le même.
Cordialement.
- Code:
var savingField=12;
C'est le bon ID de champ ? C'est celui dans le script que j'ai indiqué mais c'est étrange que ce soit le même.
Cordialement.
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Temps de connexion total d'un membre
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Temps de connexion total d'un membre
Bonjour!
Désolée pour al réponse tardive ! Tout va bien c'était effectivement un problème d'ID ! Mes excuses !
Mille mercis pour votre aide !!!
Désolée pour al réponse tardive ! Tout va bien c'était effectivement un problème d'ID ! Mes excuses !
Mille mercis pour votre aide !!!
Sujets similaires
» Voir les temps de connexion de chaque membre +IP
» Comment modifier le texte total message, membre... sur ModernBB en HTTPS ?
» Comment modifier le texte total message, membre, dernier inscrit sur ModernBB ?
» Temps de connexion
» Limite de temps de connexion
» Comment modifier le texte total message, membre... sur ModernBB en HTTPS ?
» Comment modifier le texte total message, membre, dernier inscrit sur ModernBB ?
» Temps de connexion
» Limite de temps de connexion
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum