La mention "Utilisateurs parcourant ce forum".

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu La mention "Utilisateurs parcourant ce forum".

Message par Clemsi Lun 11 Juil 2016 - 21:27

Détails techniques


Version du forum : phpBB3
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://tvd-to.forumactif.org/

Description du problème

Bonsoir,

Comment faire en sorte que cette mention apparaisse même sur un topic ?


Dernière édition par Clemsi le Mar 12 Juil 2016 - 18:55, édité 1 fois
Clemsi

Clemsi
*****

Masculin
Messages : 576
Inscrit(e) le : 08/07/2016

https://www.forumactif.com/
Clemsi a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Neptunia Lun 11 Juil 2016 - 22:15

Bonjour ^^


Ce n'est pas réalisable. Vous ne pouvez pas localiser la position d'un utilisateur sur un sujet précis mais uniquement sur le sous-forum incluant le sujet sur lequel il se trouve.
Neptunia

Neptunia
Membre actif

Féminin
Messages : 17853
Inscrit(e) le : 08/08/2010

https://www.galaxie-series.net/
Neptunia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Clemsi Lun 11 Juil 2016 - 22:16

Oui, mais est-ce qu'il est possible d'afficher cette mention lorsqu'on se trouve sur un topic ? Very Happy

Je ne cherche pas à avoir "utilisateurs parcourant ce topic", mais juste à aussi avoir "utilisateurs parcourant ce forum" lorsque je suis un topic.
Clemsi

Clemsi
*****

Masculin
Messages : 576
Inscrit(e) le : 08/07/2016

https://www.forumactif.com/
Clemsi a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Invité Mar 12 Juil 2016 - 18:33

Salut Clemsi,

hum il y a bien une astuce déposée sur nos confrères du support Anglais:
http://help.forumotion.com/t141389-users-currently-viewing-this-topic#962694

Mais le script n'est pas réellement fiable dans sa totalité car ce dernier est censé afficher les invités invisibles etc.
J'ai donc désactivé ces lignes Wink .

Ensuite, ne me demande pas de faire des modifications éventuelles car ce genre de script est trop compliqué pour moi Very Happy .

Il restera simplement les membres qui visualisent le sujet affichés en bas de page.
A priori, le script n'est pas fonctionnel sur les versions phpbb2 et Invision.

Donc les versions Punbb et phpbb3 l'affichage se fait correctement Wink .

Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript

Mettre un titre explicite.
Cocher sur toutes les pages.

Déposes ceci:
Code:

/**
        * @CP_AddOn Addons for the Forumotion control panel
        * @copyright Copyright (C) 2014 JScript
        * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
        * @engine 1.0b
        * @notes If your forum does not have the "CP_AddOn" module, you can manually change the variables values!
       
        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <mod>
          <header>
              <id>WhereIam</id>
              <title>Where I am?, Topic Active Users (Who is read this topic?)!</title>
              <version>1.10302014</version>
              <description>Shows the exact location where the user is currently!</description>
              <author>JScript</author>
              <author-notes>First Release (Beta tester only)!</author-notes>
              <license>GNU General Public License v2</license>
              <mod-version>1.0.0.9</mod-version>
          </header>
          <configuration>
              <level>Easy</level>
              <time>1 minute</time>
              <target-version>1.0b</target-version>
              <action type="input">
                <text>Users label:</text>
                <variable>topic_total_users</variable>
              </action>
              <action type="input">
                <text>Members label:</text>
                <variable>topic_total_members</variable>
              </action>
              <action type="input">
                <text>Guest label:</text>
                <variable>topic_total_visit</variable>
              </action>
              <action type="input">
                <text>Anonimous label:</text>
                <variable>topic_total_anoni</variable>
              </action>
              <action type="input">
                <text>Location label:</text>
                <variable>find_user_location</variable>
              </action>
              <action type="input">
                <text>Has portal?:</text>
                <variable>has_portal</variable>
              </action>
          </configuration>
        </mod>
        */
        // User variables **************************************************************************************
        // #### If your forum does not have the "CP_AddOn" module, you can manually change the values. ####
        topic_total_users = 'membre(s) regarde le sujet';
        topic_total_members = 'membre(s)';
        topic_total_visit = 'invité(s) et';
        topic_total_anoni = 'invisible(s)';
        find_user_location = "Patientez...";
        has_portal = 1; // #### Si votre forum n'a pas de "Portal", modifiez la valeur à 0! ####
        // ******************************************************************************************************
       
        // System variables!
        USERNAME = '';
        USER_ID = 0;
        //USERAVATAR = '';
        SUPERMOD = 0;
        TID = 0;
        ACTION = 'add_field'; // 'configuration';
        //
        jQuery(function() {
          if (location.pathname.indexOf('/u') !== -1) {
              jQuery('dt:contains("WhereIam")').closest('dl').remove();
          } else if (location.pathname.indexOf('editprofile' !== -1)) {
              jQuery('label:contains("WhereIam"), span:contains("WhereIam"), dt:contains("WhereIam")').closest('dl, tr').remove();
          }
          if (_userdata.session_logged_in) {
              USERNAME = _userdata.username;
              USER_ID = _userdata.user_id;
              // USERAVATAR = jQuery(_userdata.avatar).attr('src');
              SUPERMOD = _userdata.user_level; // Is Admin/Mod ?
              TID = jQuery('a[href*="tid="]').attr('href').split('tid=')[1].split('&')[0]; //Get the var {TID}
          }
          // console.clear();
          console.log("/**************************************************************************");
          console.log("* Module: 'Where I am?' and 'Topic Active Users (Who is read this topic?)'!");
          console.log("* Description: Shows the exact location where the user is currently.");
          console.log("* Author: Made and Optimizations by JScript - 2013/07/12, 2014/10/13");
          console.log("* Version: First Release (Beta tester only)!");
          console.log("/**************************************************************************");
          console.log('USERNAME: ' + USERNAME);
          console.log("USER_ID: " + USER_ID);
          console.log("TID: " + TID);
       
          var oWereIam = {
              pathname: location.pathname,
              total_users: 0,
              oSubForum: '',
              oTarget: 0,
              sIndex: '/forum',
              oHtml: {
                phpbb2: '<!-- ACTIVE USERS -->' +
                    '<tr>' +
                    '    <td colspan="2" style="margin:0; padding: 0;">' +
                    '        <table width="100%" cellspacing="0" cellpadding="0" border="0">' +
                    '            <tbody>' +
                    '                <tr>' +
                    '                    <td id="user-stats" class="gensmall" width="75%" valign="top" style="padding: 0px 10px 0.6em;">' +
                    '                    </td>' +
                    '                </tr>' +
                    '            </tbody>' +
                    '        </table>' +
                    '    </td>' +
                    '</tr>',
                phpbb3: '#### Has a very bad structure that becomes hard to define the html! ####',
                punbb: '<!-- ACTIVE USERS -->' +
                    '<div class="main" id="active_users">' +
                    '  <div class="main-content">' +
                    '      <div id="user-stats"  style="padding: 0.6em 1em;">' +
                    '      </div>' +
                    '  </div>' +
                    '</div>',
                invision: '<!-- ACTIVE USERS -->' +
                    '<div class="borderwrap" id="active_users" style="margin-bottom: 5px;">' +
                    '    <div class="bar clearfix">' +
                    '        <div class="left rtl-inversion-left" id="user-stats">' +
                    '        </div>' +
                    '    </div>' +
                    '</div>',
                content: '<!-- CONTENT -->' +
'<ul id="topic_list_users" class="ipsList_inline" style="padding-left: 0px ! important;"></ul>'
              }
          };
       
          if (_userdata.session_logged_in) {
              WhereIam() // Where I am?
          }
       
          if (oWereIam.pathname.indexOf('/t') !== -1) {
              /* Forum versions! */
              var phpBB2 = jQuery('#content-container table.forumline:last tbody > tr:eq(1)');
              var phpBB3 = jQuery('#main-content > div.h3:last');
              var punbb = jQuery('#pun-info');
              var invision = jQuery('#main-content .borderwrap:last');
       
              if (phpBB2.length) {
                jQuery(oWereIam.oHtml.phpbb2).insertBefore(phpBB2);
              } else if (phpBB3.length) {
                jQuery(oWereIam.oHtml.punbb).insertBefore(phpBB3);
              } else if (punbb.length) {
                jQuery(oWereIam.oHtml.punbb).insertBefore(punbb);
              } else if (invision.length) {
                jQuery(oWereIam.oHtml.invision).insertBefore(invision);
              };
              jQuery('#user-stats').html(oWereIam.oHtml.content);
       
              if (!has_portal) oWereIam.sIndex = '/';
       
              oWereIam.oSubForum = jQuery('.pun-crumbs.noprint a.nav[href^="/f"]:last, #navstrip a.nav[href^="/f"], .pathname-box:first a.nav[href^="/f"]:last, span.nav a.nav[href^="/f"]:last').attr('href');
              try {
                jQuery.get(oWereIam.oSubForum, function(data) {
                    oWereIam.oTarget = jQuery('#stats > a, #info_open td[colspan="2"]:not(.catBottom) .gensmall a, #main-content > a[href^="/u"], .activeusers-box .row1 a', data);
       
                }).always(function() {
                    if (oWereIam.oTarget.length !== 0) {
                      var guest = Math.floor(Math.random() * (5 - 0));
                      jQuery('#topic_total_visit').text(guest);
                      searchActiveUsers(oWereIam.oTarget, 0, oWereIam.oTarget.length, 0, guest);
                    }
                    /* else {
                                        jQuery.get(oWereIam.sIndex, function(data) {
                                            var oOnlineList = /(?:\b<br>([\s\S]*?)<br>)/
                                                .exec(
                                                    jQuery('#onlinelist > p:not(.right)', data).html()
                                                )[1];
                                            var memDiv = jQuery('<div>').html(oOnlineList);
       
                                            oWereIam.oTarget = memDiv.find('a');
                                        }).always(function() {
                                            if (oWereIam.oTarget.length !== 0) {
                                                var guest = Math.floor(Math.random() * (5 - 0));
                                                jQuery('#topic_total_visit').text(guest);
                                                searchActiveUsers(oWereIam.oTarget, 0, oWereIam.oTarget.length, 0, guest);
                                            }
                                        });
                                    }*/
                });
              } catch (e) {
                /*jQuery.get(oWereIam.sIndex, function(data) {
                    var oOnlineList = /(?:\b<br>([\s\S]*?)<br>)/
                        .exec(
                            jQuery('#onlinelist > p:not(.right)', data).html()
                        )[1];
                    var memDiv = jQuery('<div>').html(oOnlineList);
       
                    oWereIam.oTarget = memDiv.find('a');
                }).always(function() {
                    if (oWereIam.oTarget.length !== 0) {
                        var guest = Math.floor(Math.random() * (5 - 0));
                        jQuery('#topic_total_visit').text(guest);
                        searchActiveUsers(oWereIam.oTarget, 0, oWereIam.oTarget.length, 0, guest);
                    }
                });*/
              }
          }
       
          function searchActiveUsers(oTarget, start, len, index, guest) {
              if (index > 10) {
                return false
              }
              var oThis = jQuery(oTarget[index]),
                sHref = oThis.attr('href'),
                $JScript;
       
              if ((sHref !== undefined) || (sHref.length !== 0)) {
                var user_name = '<a href="' + sHref + '">' + oThis.html() + '</a>';
       
                jQuery.get(sHref, function(data) {
                    var Field_Text = jQuery('dt:contains("WhereIam")', data).closest('dl').find('div.field_uneditable').text();
       
                    try {
                      $JScript = JSON.parse(Field_Text.replace(/'/g, '"'));
                    } catch (e) {
                      // console.log(e);
                    }
                    console.log(Field_Text);
                }).always(function() {
                    try {
                      if ($JScript.path.url == oWereIam.pathname) {
                          if (oWereIam.total_users == 0) {
                            $('#topic_list_users').html('');

                            $('#topic_list_users').append('Membre(s) regardant le sujet:' + user_name);
                          } else {
                            $('#topic_list_users').append(', ' + user_name);
                          }
                          oWereIam.total_users++;
                          $('#topic_total_users').text(oWereIam.total_users + guest);
                          $('#topic_total_members').text(oWereIam.total_users);
                      }
                    } catch (e) {
                      // console.log(e);
                    }
                    index++;
                    try {
                      searchActiveUsers(oTarget, start, len, index, guest);
                    } catch (e) {
                      // console.log(e);
                    }
                });
              }
          }
        });
       
        function WhereIam() {
          jQuery.ajaxSetup({
              async: false
          });
          jQuery.get('/profile?mode=editprofile', function(data) {
              var found = 1;
              var Profile_Field_ID = jQuery('label:contains("WhereIam"), span:contains("WhereIam"), dt:contains("WhereIam")', data).closest('dl, tr').find('textarea').attr('id');
       
              console.log("Profile_Field_ID: " + Profile_Field_ID);
       
              if ((Profile_Field_ID == undefined) && (SUPERMOD == 1)) {
                jQuery.post("/admin/index.forum?part=users_groups&sub=users&mode=avatar_profil2&extended_admin=1&tid=" + TID, { /* <- Parameters! */
                    /* Post action */
                    action: ACTION,
                    id: 0,
                    type: 0,
                    action: 'configuration_final',
                    list_type_field: 2,
                    field_name: 'WhereIam',
                    field_desc: 'Where I am? - Made and Optimizations by JScript - 2013/07/12, 2014/10/13',
                    field_oblig: 0,
                    field_display_profil: 1,
                    list_field_type_view: 0,
                    list_auth_field_modo: 1,
                    list_auth_field_himself: 1,
                    list_field_view: -1,
                    list_separator: 0,
                    field_type_2_lng_max: 15000,
                    submit: 1,
                    field_type_11_max_before: 14,
                    field_type_11_max_after: 6
                }).done(function() {
                    console.log('Add profile field done!');
                    jQuery.get('/profile?mode=editprofile', function(data) {
                      Profile_Field_ID = jQuery('label:contains("WhereIam"), span:contains("WhereIam"), dt:contains("WhereIam")', data).closest('dl, tr').find('textarea').attr('id');
                    }).fail(function() {
                      console.log('Failed to get field Profile_Field_ID!');
                      found = 0;
                    });
                }).fail(function() {
                    console.log('Add profile field Fail!');
                    found = 0;
                });
              }
              if (found) {
                var sTitle = jQuery('.pun-crumbs:first p strong:last').text();
                if ((sTitle == 'undefined') || (sTitle == '')) sTitle = location.pathname;
       
                var now = new Date;
                var $JScript = {
                    appInfo: {
                      module: 'Where I am?',
                      description: 'Shows the exact location where the user is currently.',
                      author: 'JScript',
                      version: '1.00',
                      release: '2014/10/13'
                    },
                    userInfo: {
                      oscpu: navigator.oscpu,
                      appName: navigator.appName,
                      language: navigator.language,
                      userAgent: navigator.userAgent
                    },
                    path: {
                      title: sTitle,
                      url: location.pathname,
                      param: location.search,
                      state: '0',
                      time: now.getHours() + ":" + now.getMinutes(),
                      date: now.getDate() + "/" + now.getMonth() + "/" + now.getFullYear()
                    }
                };
       
                jQuery.post("/ajax_profile.forum?jsoncallback=?", {
                    id: Profile_Field_ID.substring(16, Profile_Field_ID.length),
                    user: USER_ID,
                    active: "1",
                    content: '[["' + Profile_Field_ID + '", "' + JSON.stringify($JScript).replace(/"/g, "'") + '"]]',
                    tid: TID
                }, function(data) {
                    console.log("OK: ajax_profile, userID = " + USER_ID);
                }, "json").fail(function() {
                    console.log("error: ajax_profile, userID = " + USER_ID);
                });
              }
          }).done(function() {
              // Done!!!
          }).fail(function() {
              console.log('Failed to get field Profile_Field_ID');
          });
          jQuery.ajaxSetup({
              async: true
          });
        }


Penses à cliquer sur le boutonLa mention "Utilisateurs parcourant ce forum". Boutonvalider


Si ton portail est désactivé mais la valeur à zéro ici:

Code:
has_portal = 1;
Code:
 
has_portal = 1; // #### Si votre forum n'a pas de "Portal", modifiez la valeur à 0! ####
        //

Ensuite tu peux personnaliser l'affichage:


Dans la feuille de style:
Affichage/Images et Couleurs/Couleurs/Feuille de style

Déposes ceci:
Code:

  /* le bloc*/
#active_users
{
border:1px solid grey;
background-color: #cadceb;
padding:2px 5px 8px 5px;
border-radius:6px;
}

/*Les membres connectés Staff*/
#active_users  #topic_list_users.ipsList_inline a[href^="/u"] span strong
{
 color:darkgreen !important;
}

/*Les membres connectés*/
#active_users  #topic_list_users.ipsList_inline a[href^="/u"]
{
 color:darkblue !important;
}



Penses à cliquer sur le boutonLa mention "Utilisateurs parcourant ce forum". Boutonvalider


a++


Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Clemsi Mar 12 Juil 2016 - 18:41

Je viens de le faire, et cela affiche une barre blanche avec mon pseudo en vert, et on ne voit rien d'autre dessus.^^
Clemsi

Clemsi
*****

Masculin
Messages : 576
Inscrit(e) le : 08/07/2016

https://www.forumactif.com/
Clemsi a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Invité Mar 12 Juil 2016 - 18:46

Re,
Bonjour ?
et de rien Very Happy .
Que veux tu d'autre ?

il affiche le ou les membres visualisant le sujet et rien d'autre...

a++
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Clemsi Mar 12 Juil 2016 - 18:52

Merci beaucoup !

Je mets le sujet en résolu. Smile
Clemsi

Clemsi
*****

Masculin
Messages : 576
Inscrit(e) le : 08/07/2016

https://www.forumactif.com/
Clemsi a été remercié(e) par l'auteur de ce sujet.

Résolu Re: La mention "Utilisateurs parcourant ce forum".

Message par Invité Mar 12 Juil 2016 - 19:10

Re,


Clemsi a écrit:Merci beaucoup !

Je mets le sujet en résolu. Smile

De rien Clemsi Wink .

a++
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum