Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum

2 participants

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

Résolu Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum

Message par mss92 Ven 9 Oct - 11:34

Détails techniques


Version du forum : Invision
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Mozilla Firefox, Internet Explorer, Autre
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://fandemetro.forumgratuit.org

Description du problème

Bonjour,

En mai dernier a été publié un tutoriel avec des codes javascript permettant de faciliter l'utilisation du système de mention.

Pour le bouton mentionner dans l'éditeur, on ne peut avoir que la liste de ses amis. Je voudrais donc savoir s'il serait possible d'avoir un code permettant d'avoir la liste de tous les membres du forum, si possible triée par ordre alphabétique.

Merci d'avance.


Dernière édition par mss92 le Ven 9 Oct - 15:11, édité 1 fois
avatar

mss92
**

Masculin
Messages : 66
Inscrit(e) le : 13/03/2012

http://lignes-transports.forumactif.org
mss92 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum

Message par Ange Tuteur Ven 9 Oct - 13:44

Bonjour mss92,

Utiliser le script suivant :
Code:
$(function(){
  if (!$.sceditor || /\/privmsg/.test(window.location.pathname)) return;
 
  window.$fa_getting_member = false;

  $.sceditor.command.set('mention', {
      dropDown : function(editor, caller, callback) {
        var a = document.createElement('DIV'), b = document.createElement('INPUT'), c = document.createElement('INPUT'), s = document.createElement('SELECT');
        b.type = 'button';
        b.value = 'Insert';
        b.className = 'button';
 
        c.type = 'text';
        c.id = 'fa-mention';
        c.onkeyup = function() {
          if (!$fa_getting_member) {
            $fa_getting_member = true;
            var val = this.value;
           
            $.get('/memberlist?mode=lastvisit&order=DESC&submit=Ok&username=' + encodeURIComponent(val) + '&change_version=prosilver', function(d) {
              var avatar = $('.avatar-mini', d),
                  select = document.getElementById('faMemberList'),
                  str = '<option value="' + val + '">' + val + '...</option>',
                  i = 0, j = avatar.length, t;

              for (; i < j; i++) {
                t = $(avatar[i]).text().replace(/^\s|\s$/g, '');
                str += '<option value="' + t + '">' + t + '</option>';
              }

              select.innerHTML = str;
              $fa_getting_member = false;
            });
          }
        };
 
        a.innerHTML = '<div><label for="fa-mention">Pseudo de l\'utilisateur :</label></div><div><label>Mentionner un membre :</label></div><div></div>';
        a.firstChild.appendChild(c);
        a.lastChild.appendChild(b);
 
        s.innerHTML = '<option value="">Trouver un nom d\'utilisateur</option>';
        s.id = 'faMemberList';
        s.onchange = function() {
          c.value = s.value;
        };

        a.getElementsByTagName('DIV')[1].appendChild(s);
 
        b.onclick = function() {
            c.value && callback(c.value);
            editor.closeDropDown(true);
        };
 
        editor.createDropDown(caller, 'insertmention', a);
      },
 
      exec : function(c) { mention(c, this) },
      txtExec : function(c) { mention(c, this) },
 
      tooltip : 'Mentionner un membre'
  });
 
  toolbar = toolbar.replace(/quote,/,'mention,quote,');
 
  function mention(c, e) {
      $.sceditor.command.get('mention').dropDown(e, c, function(pseudo) {
        e.insertText('@"' + pseudo + '" ');
      });
  }
});

Ceci devrait afficher résultats similaires que vous tapez. Un petit exemple :
Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum C10
Ange Tuteur

Ange Tuteur
****

Masculin
Messages : 482
Inscrit(e) le : 17/11/2013

https://fmdesign.forumotion.com
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum

Message par mss92 Ven 9 Oct - 14:29

Votre code ne fonctionne pas très bien.

Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum 880405mention

Lorsque je ne tape rien dans la zone de texte, il n'y a pas de liste. Lorsque je tape un motif, cela m'affiche uniquement les noms contenant ce motif, par ordre de dernière connexion (par exemple *a* permet d'avoir tous les utilisateurs ayant un a dans leur pseudo). Lorsque je tape * (astérisque), cela m'affiche uniquement la liste des 20 derniers membres connectés, par ordre de dernière connexion (de la plus récente à la plus ancienne).

Ce que je souhaiterais avoir, c'est :
- si on ne tape rien dans la zone de texte, on obtient la liste de tous les membres du forum (pas seulement les 20 derniers connectés), par ordre alphabétique (pour faciliter la recherche d'un membre en particulier)
- recherche par motif toujours possible.
avatar

mss92
**

Masculin
Messages : 66
Inscrit(e) le : 13/03/2012

http://lignes-transports.forumactif.org
mss92 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum

Message par Ange Tuteur Ven 9 Oct - 14:53

Hum.. remplacer le script par :
Code:
$(function(){
  if (!$.sceditor || /\/privmsg/.test(window.location.pathname)) return;

  $.sceditor.command.set('mention', {
      dropDown : function(editor, caller, callback) {
        var a = document.createElement('DIV'), b = document.createElement('INPUT'), c = document.createElement('INPUT'), s = document.createElement('SELECT');
        b.type = 'button';
        b.value = 'Insert';
        b.className = 'button';
 
        c.type = 'text';
        c.id = 'fa-mention';
        c.onkeyup = function() {
          var val = this.value;
           
          $.get('/memberlist?mode=username&order&username=' + encodeURIComponent(val) + '&change_version=prosilver', function(d) {
            var avatar = $('.avatar-mini', d),
                select = document.getElementById('faMemberList'),
                str = '<option value="' + val + '">' + val + '...</option>',
                i = 0, j = avatar.length, t;

            for (; i < j; i++) {
              t = $(avatar[i]).text().replace(/^\s|\s$/g, '');
              str += '<option value="' + t + '">' + t + '</option>';
            }

            select.innerHTML = str;
          });
        };
 
        a.innerHTML = '<div><label for="fa-mention">Pseudo de l\'utilisateur :</label></div><div><label>Mentionner un membre :</label></div><div></div>';
        a.firstChild.appendChild(c);
        a.lastChild.appendChild(b);
 
        s.innerHTML = '<option value="">Trouver un nom d\'utilisateur</option>';
        s.id = 'faMemberList';
        s.onchange = function() {
          c.value = s.value;
        };

        a.getElementsByTagName('DIV')[1].appendChild(s);
 
        b.onclick = function() {
            c.value && callback(c.value);
            editor.closeDropDown(true);
        };
 
        editor.createDropDown(caller, 'insertmention', a);
      },
 
      exec : function(c) { mention(c, this) },
      txtExec : function(c) { mention(c, this) },
 
      tooltip : 'Mentionner un membre'
  });
 
  toolbar = toolbar.replace(/quote,/,'mention,quote,');
 
  function mention(c, e) {
      $.sceditor.command.get('mention').dropDown(e, c, function(pseudo) {
        e.insertText('@"' + pseudo + '" ');
      });
  }
});

Vous ne pouvez pas afficher tous les membres par défault, parce que ce serait trop. Les résultats dépendent sur les membres affichés dans cette page. ( /memberlist )
Ange Tuteur

Ange Tuteur
****

Masculin
Messages : 482
Inscrit(e) le : 17/11/2013

https://fmdesign.forumotion.com
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Bouton mentionner dans l'éditeur : avoir la liste de tous les membres du forum

Message par mss92 Ven 9 Oct - 15:11

OK, d'accord.

Merci quand même.
avatar

mss92
**

Masculin
Messages : 66
Inscrit(e) le : 13/03/2012

http://lignes-transports.forumactif.org
mss92 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