Dupliquer un bouton

2 participants

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

Résolu Dupliquer un bouton

Message par photoclic Mer 27 Avr 2022 - 15:24

Bonjour à toutes et tous,

Le bouton des like est placé sur mon forum sous le 1ier message du sujet.

Serait-il possible de dupliquer ce bouton à droite de l'éditeur (sceditor-toolbar) sur la réponse rapide.

Je ne sais pas si cela est possible tout en gardant la possibilité de ne pas pas pouvoir mettre 2 like par le même membre, et que l'auteur du message ne puisse pas se mettre un like comme c'est le cas actuellement.

Merci pour votre aide.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par photoclic Ven 29 Avr 2022 - 14:13

Non faisable apparemment.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par photoclic Dim 1 Mai 2022 - 18:28

petit up.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 14:07

Bonjour,
Vous avez déjà personnalisé votre système de like ? Parce que normalement, il me semble que le bouton "j'aime" apparait pour chaque message ? Ou je me trompe et vous parlez d'autre chose ?
Pour ce qui est de ne pas pouvoir "s'aimer soi même"... à voir, peut être avec un javascript scratch Je sais que le système de vote ne permet pas de voter pour soi-même, mais c'est un peu différent comme système.
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 14:29

Bonjour MlleAlys,

Oui, mon système de like a effectivement été personnalisé. Il est placé en dessous de chaque premier message dans les sujets, il permet de ne pas s'aimer soi même etc.
Il fonctionne parfaitement.

Ce qui est demandé ici, est de pouvoir le dupliquer.
C'est à dire le garder à son emplacement actuel en l'état, mais avoir en plus un second bouton à droite de l'éditeur (sceditor-toolbar) sur la réponse rapide qui permettrait aussi de mettre un like.

En fait pouvoir mettre un like, soit à partir du bouton placé sous le 1ier message, soit sur ce second bouton placé à coté de la réponse rapide.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 15:27

Alors j'ai essayé avec un simple "clone" dans un petit javascript comme ceci :
Code:
$(function() {
  $("#quick_reply").before('<div id="fa_like_clone"></div>');
  $(".fa_like_div").clone().appendTo("#fa_like_clone");
});
- je bidouille beaucoup en javascript donc il y a peu de chances pour que mon code soit le plus propre/efficace, cela dit il semble fonctionner sur mon forum test, donc je le propose, si vous n'avez rien de mieux ! Razz
Avec les nuances suivantes :
- Les deux boutons ne se synchronisent pas automatiquement, mais dès lors qu'on rafraichit la page.
- je n'ai pas vos personnalisations, j'espère que ça va fonctionner quand même !
- j'ai ajouté ce css là sur mon forum pour afficher le bouton sur le côté droit :
Code:
#fa_like_clone {
  float: right;
}
div#fa_like_clone .fa_like_div {
  margin: 0;
  width: auto;
  padding: 0;
}
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 15:41

Un grand merci MlleAlys pour cette suite.

Alors le bouton est bien dupliqué en bas.
Par contre j'ai autant de boutons cote à cote qu'il il y a de message dans le sujet.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 16:07

Ah mince, je pensais que les autres seraient également cachés du coup....
Quel code utilisez-vous pour n'afficher que le premier ?
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 16:20

Le code du système de like personnalisé:
Code:

//Nouveau système de Best
    $(function(){                                               
    $(function(){
    var fofo=$('a.nav[href^="/f4-"],a.nav[href^="/f5-"],a.nav[href^="/f1-"],a.nav[href^="/f19-"]').length;
    if(fofo){
    var typeTopic=$('.topic-title:first').find('img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc10.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc11.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/note10.png"]').length;
    if(typeTopic)return;
//    $editor = $('.sceditor-container');
    var member=_userdata["username"];
//  if ($editor.hasClass('wysiwygMode')) $editor.removeClass('wysiwygMode').addClass('sourceMode') ;
    $('div[class*="post--"]:first').each(function(){
    if (_userdata["user_id"] < (0)){
    $(this).find('.fa_like_div').wrap('<a href="/login" title="Si vous souhaitez réagir à ce message, merci de vous connecter ou de vous enregistrer."></a>');
    }   
    var speudo=$('div[class*="post--"]:first .author a[href^="/u"]').text() ;     
    if(speudo==member){
    $(this).find('.fa_like_div').show().each(function(){
    var a=$(this).find('.fa_like_list').text().length;   
    if(a==0){$(this).after('<span class="zerobest">0\n\n <img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/>  pour le moment.</span>');}
    else{
    var liketest=$('span[class="rep-nb"]:first').text(); 
    $(this).before('<span class="bestmembre">'+liketest+''+" "+'<img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/> mis par:</span>');
    } 
    $(this).find('button').remove();
    });     
    }     
    else{$(this).find('.fa_like_div').show();}
    var base=$('#text_editor_textarea').sceditor("instance").val();   
    var liketest=$('span[class="rep-nb"]:first').text();
   
    //LE TEXTE AJOUTE DANS L EDITEUR
    var message=" + 1 ";
    //LE CODE SMILEY
    var pictures=":BEST: ";
    //LE TEXTE DE L EDITEUR
    var texte="un Best a été ajouté dans l\'éditeur.";
    $(this).find('button.rep-button.fa_like').wrap('<a href="#quickreply"></a>').click(function(){
    $(this).unbind();    $(this).unwrap();
    alert(''+member+','+texte+'');
 
      if(liketest == 0){
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+pictures+'\n\n'); 
      }
      else {
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+message+' '+pictures+'\n\n');
      }
   
    });
    });
    }
    })});
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 16:28

le template a été modifié également je suppose ?
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 16:30

Oui, surement, c'est Milouze qui m'avait écrit cela.
J'essaie de retrouver ça et je reviens.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 16:36

Je pense que c'est cette partie:

Code:

            <!-- BEGIN switch_likes_active -->
            <div class="fa_like_div" style="display:none;">
            <!-- BEGIN switch_like_list -->
            {postrow.displayed.switch_likes_active.switch_like_list.D_LIKE_LIST}
            <!-- END switch_like_list -->
            <!-- BEGIN switch_dislike_list -->
            {postrow.displayed.switch_likes_active.switch_dislike_list.D_DISLIKE_LIST}
            <!-- END switch_dislike_list -->
            <button class="rep-button {postrow.displayed.switch_likes_active.C_VOTE_LIKE}"  data-href="{postrow.displayed.switch_likes_active.U_VOTE_LIKE}" data-href-rm="{postrow.displayed.switch_likes_active.U_VOTE_RM_LIKE}">
            <svg width="13px" height="13px" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M320 1344q0-26-19-45t-45-19q-27 0-45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45-18.5t19-45.5zm160-512v640q0 26-19 45t-45 19h-288q-26 0-45-19t-19-45v-640q0-26 19-45t45-19h288q26 0 45 19t19 45zm1184 0q0 86-55 149 15 44 15 76 3 76-43 137 17 56 0 117-15 57-54 94 9 112-49 181-64 76-197 78h-129q-66 0-144-15.5t-121.5-29-120.5-39.5q-123-43-158-44-26-1-45-19.5t-19-44.5v-641q0-25 18-43.5t43-20.5q24-2 76-59t101-121q68-87 101-120 18-18 31-48t17.5-48.5 13.5-60.5q7-39 12.5-61t19.5-52 34-50q19-19 45-19 46 0 82.5 10.5t60 26 40 40.5 24 45 12 50 5 45 .5 39q0 38-9.5 76t-19 60-27.5 56q-3 6-10 18t-11 22-8 24h277q78 0 135 57t57 135z" fill="#666"/></svg>
            <span> Best </span>{postrow.displayed.switch_likes_active.COUNT_VOTE_LIKE}
            </button>
            <!-- BEGIN switch_dislike_button -->
            <button class="rep-button {postrow.displayed.switch_likes_active.switch_dislike_button.C_VOTE_DISLIKE}" data-href="{postrow.displayed.switch_likes_active.switch_dislike_button.U_VOTE_DISLIKE}" data-href-rm="{postrow.displayed.switch_likes_active.switch_dislike_button.U_VOTE_RM_LIKE}">
            <svg width="13px" height="13px" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M320 576q0 26-19 45t-45 19q-27 0-45.5-19t-18.5-45q0-27 18.5-45.5t45.5-18.5q26 0 45 18.5t19 45.5zm160 512v-640q0-26-19-45t-45-19h-288q-26 0-45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45-19t19-45zm1129-149q55 61 55 149-1 78-57.5 135t-134.5 57h-277q4 14 8 24t11 22 10 18q18 37 27 57t19 58.5 10 76.5q0 24-.5 39t-5 45-12 50-24 45-40 40.5-60 26-82.5 10.5q-26 0-45-19-20-20-34-50t-19.5-52-12.5-61q-9-42-13.5-60.5t-17.5-48.5-31-48q-33-33-101-120-49-64-101-121t-76-59q-25-2-43-20.5t-18-43.5v-641q0-26 19-44.5t45-19.5q35-1 158-44 77-26 120.5-39.5t121.5-29 144-15.5h129q133 2 197 78 58 69 49 181 39 37 54 94 17 61 0 117 46 61 43 137 0 32-15 76z" fill="#666"/></svg>
            <span>{postrow.displayed.switch_likes_active.switch_dislike_button.L_DISLIKE}</span>{postrow.displayed.switch_likes_active.switch_dislike_button.COUNT_VOTE_DISLIKE}
            </button>
           
            <!-- END switch_dislike_button --> 
            </div>
            <!-- END switch_likes_active -->
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 16:44

Merci !

Essayez en supprimant le code que je vous ai donné au départ, et de mettre celui-ci à la place de celui que vous m'avez donné plus haut :
Code:
//Nouveau système de Best
    $(function(){                                              
    $(function(){
    var fofo=$('a.nav[href^="/f4-"],a.nav[href^="/f5-"],a.nav[href^="/f1-"],a.nav[href^="/f19-"]').length;
    if(fofo){
    var typeTopic=$('.topic-title:first').find('img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc10.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc11.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/note10.png"]').length;
    if(typeTopic)return;
//    $editor = $('.sceditor-container');
    var member=_userdata["username"];
//  if ($editor.hasClass('wysiwygMode')) $editor.removeClass('wysiwygMode').addClass('sourceMode') ;
    $('div[class*="post--"]:first').each(function(){
    if (_userdata["user_id"] < (0)){
    $(this).find('.fa_like_div').wrap('<a href="/login" title="Si vous souhaitez réagir à ce message, merci de vous connecter ou de vous enregistrer."></a>');
    }  
    var speudo=$('div[class*="post--"]:first .author a[href^="/u"]').text() ;    
    if(speudo==member){
    $(this).find('.fa_like_div').show().each(function(){
    var a=$(this).find('.fa_like_list').text().length;  
    if(a==0){$(this).after('<span class="zerobest">0\n\n <img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/>  pour le moment.</span>');}
    else{
    var liketest=$('span[class="rep-nb"]:first').text();
    $(this).before('<span class="bestmembre">'+liketest+''+" "+'<img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/> mis par:</span>');
    }
    $(this).find('button').remove();
    });    
    }    
    else{$(this).find('.fa_like_div').show();}
    var base=$('#text_editor_textarea').sceditor("instance").val();  
    var liketest=$('span[class="rep-nb"]:first').text();
  
    //LE TEXTE AJOUTE DANS L EDITEUR
    var message=" + 1 ";
    //LE CODE SMILEY
    var pictures=":BEST: ";
    //LE TEXTE DE L EDITEUR
    var texte="un Best a été ajouté dans l\'éditeur.";
    $(this).find('button.rep-button.fa_like').wrap('<a href="#quickreply"></a>').click(function(){
    $(this).unbind();    $(this).unwrap();
    alert(''+member+','+texte+'');
 
      if(liketest == 0){
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+pictures+'\n\n');
      }
      else {
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+message+' '+pictures+'\n\n');
      }
  
    });
    });
    }
    $("#quick_reply").before('<div id="fa_like_clone"></div>');
    $(".fa_like_div").clone().appendTo("#fa_like_clone");
    })
    });

(je ne l'ai pas modifié, j'ai simplement mis le mien à la fin du votre pour être sûre qu'il se déclenche après.... normalement ! Laughing J'avoue que le code est un peu trop compliqué pour moi pour que je creuse plus que ça....  Embarassed )
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 17:15

Je n'ai plus les répétitions.
Mais il y a des choses qui sont faites par le script et qui ne sont pas réalisés par le nouveau bouton. comme par exemple le fait de mettre dans l'éditeur une petite image prédéfinie.

Il y a je pense quelques adaptations à faire pour ce nouveau bouton.

Tu m'as donné des pistes de réflexions et je te remercie beaucoup pour cette avancée.

Peut-être que quelqu'un viendra nous aider.

photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 17:32

Oui, je pense que je vais laisser la main parce que je ne maîtrise pas du tout assez le code de base, je devine rapidement à quoi servent telles ou telles parties, mais de là à comprendre pour quoi ça ne fonctionne pas... (surtout que comme il me manque des personnalisations, je n'ai pas le fameux bouton de l'éditeur ^^")

A tout hasard, essayez ceci peut être :
Code:

//Nouveau système de Best
    $(function(){                                              
    $(function(){
    var fofo=$('a.nav[href^="/f4-"],a.nav[href^="/f5-"],a.nav[href^="/f1-"],a.nav[href^="/f19-"]').length;
    if(fofo){
    var typeTopic=$('.topic-title:first').find('img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc10.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc11.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/note10.png"]').length;
    if(typeTopic)return;
//    $editor = $('.sceditor-container');
    var member=_userdata["username"];
//  if ($editor.hasClass('wysiwygMode')) $editor.removeClass('wysiwygMode').addClass('sourceMode') ;
    $('div[class*="post--"]:first').each(function(){
    if (_userdata["user_id"] < (0)){
    $(this).find('.fa_like_div').wrap('<a href="/login" title="Si vous souhaitez réagir à ce message, merci de vous connecter ou de vous enregistrer."></a>');
    }  
    var speudo=$('div[class*="post--"]:first .author a[href^="/u"]').text() ;    
    if(speudo==member){
    $(this).find('.fa_like_div').show().each(function(){
    var a=$(this).find('.fa_like_list').text().length;  
    if(a==0){$(this).after('<span class="zerobest">0\n\n <img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/>  pour le moment.</span>');}
    else{
    var liketest=$('span[class="rep-nb"]:first').text();
    $(this).before('<span class="bestmembre">'+liketest+''+" "+'<img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/> mis par:</span>');
    }
    $(this).find('button').remove();
    });    
    }    
    else{$(this).find('.fa_like_div').show();}
    var base=$('#text_editor_textarea').sceditor("instance").val();  
    var liketest=$('span[class="rep-nb"]:first').text();
  
    //LE TEXTE AJOUTE DANS L EDITEUR
    var message=" + 1 ";
    //LE CODE SMILEY
    var pictures=":BEST: ";
    //LE TEXTE DE L EDITEUR
    var texte="un Best a été ajouté dans l\'éditeur.";
    $(this).find('button.rep-button.fa_like').wrap('<a href="#quickreply"></a>').click(function(){
    $(this).unbind();    $(this).unwrap();
    alert(''+member+','+texte+'');
 
      if(liketest == 0){
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+pictures+'\n\n');
      }
      else {
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+message+' '+pictures+'\n\n');
      }
  
    });
    });
    }
    })});

$(function() {
  $(function() {
    $("#quick_reply").before('<div id="fa_like_clone"></div>');
    $(".fa_like_div").clone().appendTo("#fa_like_clone");
  });
});


Mais sinon, il faudra attendre quelqu'un d'autre pour la réponse ^^"
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 17:48

Tout fonctionne à merveille là  MlleAlys.

Il manque effectivement juste ce qu'il se passe au niveau l'éditeur quand on clique sur ce nouveau bouton. On a normalement une alert et le smiley :BEST. qui est jouté à l'éditeur.

C'est cette partie du code qui fait ça:
Code:
   //LE TEXTE AJOUTE DANS L EDITEUR
    var message=" + 1 ";
    //LE CODE SMILEY
    var pictures=":BEST: ";
    //LE TEXTE DE L EDITEUR
    var texte="un Best a été ajouté dans l\'éditeur.";
    $(this).find('button.rep-button.fa_like').wrap('<a href="#quickreply"></a>').click(function(){
    $(this).unbind();    $(this).unwrap();
    alert(''+member+','+texte+'');
 
      if(liketest == 0){
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+pictures+'\n\n');
      }
      else {
      $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+message+' '+pictures+'\n\n');
      }
  
    });
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 18:17

Oui je viens de comprendre comment il fonctionne (plus ou moins) ! Je suis en train de faire des tests !
Par contre, j'ai l'impression qu'il y a un compteur de "best" pour l'auteur du sujet, mais qui ne fonctionne pas sur mon forum test : Il indique 0 quelque soit le nombre de likes ?
Dupliquer un bouton Image54
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par MlleAlys Lun 2 Mai 2022 - 18:36

AH AH ! Essayez ça pour voir ! Twisted Evil

Code:
//Nouveau système de Best
$(function(){
  $(function(){
    
    // localisation
    var fofo=$('a.nav[href^="/f4-"],a.nav[href^="/f5-"],a.nav[href^="/f1-"],a.nav[href^="/f19-"]').length;
    if(fofo){
      
      // type de sujet
      var typeTopic=$('.topic-title:first').find('img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc10.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc11.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/note10.png"]').length;
      
      if(typeTopic)return;
        
        //    $editor = $('.sceditor-container');
        //  if ($editor.hasClass('wysiwygMode')) $editor.removeClass('wysiwygMode').addClass('sourceMode') ;
        
        // utilisateur
        var member=_userdata["username"];
      
      
      // pour chaque premier message
      $('div[class*="post--"]:first').each(function(){
        
        // invités
        if (_userdata["user_id"] < (0)){
          $(this).find('.fa_like_div').wrap('<a title="Si vous souhaitez réagir à ce message, merci de vous connecter ou de vous enregistrer."></a>');
        }  
        
        // auteur
        var speudo=$('div[class*="post--"]:first .author a[href^="/u"]').text() ;
        
        // utilisateur = auteur
        if(speudo==member){
          
          // montrer les boutons
          $(this).find('.fa_like_div').show().each(function(){
            var a=$(this).find('.fa_like_list').text().length;
            // il n'y a aucun like
            if(a==0){$(this).after('<span class="zerobest">0\n\n <img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/>  pour le moment.</span>');}
            //il y a des likes
            else{
              var liketest=$('span[class="rep-nb"]:first').text();
              $(this).before('<span class="bestmembre">'+liketest+''+" "+'<img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/> mis par:</span>');
            }
            //recacher le bouton
            $(this).find('button').remove();
          });
        }    
        
        // l'utilisateur n'est pas l'auteur : montrer les boutons
        else{
          $(this).find('.fa_like_div').show();
        }
        
        var base=$('#text_editor_textarea').sceditor("instance").val();
        var liketest=$('span[class="rep-nb"]:first').text();
        
        // dubliquer le bouton à côté de la réponse rapide 
        $("#quick_reply").before('<div id="fa_like_clone"></div>');
        $(".fa_like_div").clone().appendTo("#fa_like_clone");
        
        
        //LE TEXTE AJOUTE DANS L EDITEUR
        var message=" + 1 ";
        //LE CODE SMILEY
        var pictures=":BEST: ";
        //LE TEXTE DE L EDITEUR
        var texte="un Best a été ajouté dans l\'éditeur.";
        
        //ajouter un lien autour des boutons vers l'éditeur rapide
        $(this).add('#fa_like_clone').find('button.rep-button.fa_like').wrap('<a href="#quickreply"></a>').click(function(){
          $(this).unbind();
          $(this).unwrap();
          alert(''+member+','+texte+'');
          
          if(liketest == 0){
            $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+pictures+'\n\n');
          }
          else {
            $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+message+' '+pictures+'\n\n');
          }
        });
      });
    };
  });
});

Je croise les doigts !! Laughing


(EDIT : pardon, j'avais oublié mon message précédent et j'ai fait un double-post Confused )
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Lun 2 Mai 2022 - 19:40

Tout me semble bon cette fois bounce

Je vais faire des essais complémentaires jusqu'à demain avant de passer en résolu.

Un énorme merci MlleAlys pour tout ce travail.

photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par photoclic Mar 3 Mai 2022 - 12:16

Bonjour MlleAlys,

J'ai fait plusieurs tests pour voir si ça collait dans toutes les situations.

Jai juste adapté un peu le css pour essayer de centrer au mieux le bouton like en fonction des situations, mais ça ne fait pas pareil sous mozilla et sous Edge.

Sinon tout est ok pour le bouton dupliqué, sauf dans le cas où l'utilisateur est l'auteur et qu'il y a des like. Dans ce cas, j'avais la liste des membres ayant mis un like.
J'ai donc retiré cette liste  dans ce cas.

Voici le code en service sur mon fofo:
Code:

$(function(){                    
  $(function(){    
    // localisation
    var fofo=$('a.nav[href^="/f4-"],a.nav[href^="/f5-"],a.nav[href^="/f1-"],a.nav[href^="/f19-"]').length;
    if(fofo){      
      // type de sujet
      var typeTopic=$('.topic-title:first').find('img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc10.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/annonc11.png"],img[src="https://i.servimg.com/u/f20/20/11/87/27/note10.png"]').length;      
      if(typeTopic)return;        
        //    $editor = $('.sceditor-container');
        //  if ($editor.hasClass('wysiwygMode')) $editor.removeClass('wysiwygMode').addClass('sourceMode') ;        
        // utilisateur
        var member=_userdata["username"];
            
      // pour chaque premier message
      $('div[class*="post--"]:first').each(function(){        
        // invités
        if (_userdata["user_id"] < (0)){
          $(this).find('.fa_like_div').wrap('<a title="Si vous souhaitez réagir à ce message, merci de vous connecter ou de vous enregistrer."></a>');
        }          
        // auteur
        var speudo=$('div[class*="post--"]:first .author a[href^="/u"]').text() ;        
        // utilisateur = auteur
        if(speudo==member){          
          // montrer les boutons
          $(this).find('.fa_like_div').show().each(function(){
            // il n'y a aucun like
            var a=$(this).find('.fa_like_list').text().length;
            if(a==0){$(this).after('<span class="zerobest">0\n\n <img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/>  pour le moment.</span>');}                                                  
            //il y a des likes
            else{
              var liketest=$('span[class="rep-nb"]:first').text();
              $(this).before('<span class="bestmembre">'+liketest+''+" "+'<img src="https://i.servimg.com/u/f31/19/32/37/01/059012.gif" style="top: 4px;position: relative;"/> mis par:</span>');          
            }
            
            //recacher le bouton
            $(this).find('button').remove();
          });
        }    
        
        // l'utilisateur n'est pas l'auteur : montrer les boutons
        else{
          $(this).find('.fa_like_div').show();
        }
        
        var base=$('#text_editor_textarea').sceditor("instance").val();
        var liketest=$('span[class="rep-nb"]:first').text();
        
        // dubliquer le bouton à côté de la réponse rapide
        $("#quick_reply").before('<div id="fa_like_clone" ></div>');
        $(".fa_like_div").clone().appendTo("#fa_like_clone");
        //repositionner les boutons
        //si aucun like
        var a=$(this).find('.fa_like_list').text().length;
        if(a==0){
          $('#fa_like_clone').css({"width":"230px","padding-top":"15px"});
        }
        //si like
        else{
         $('#fa_like_clone').css('width','270px');
          
        // auteur
        var speudo=$('div[class*="post--"]:first .author a[href^="/u"]').text() ;        
        // utilisateur = auteur
        if(speudo==member){    
$('div#fa_like_clone p.fa_like_list').remove();
 }           
        }
              
        //LE TEXTE AJOUTE DANS L EDITEUR
        var message=" + 1 ";
        //LE CODE SMILEY
        var pictures=":BEST: ";
        //LE TEXTE DE L EDITEUR
        var texte="un Best va être ajouté dans l\'éditeur. Ne pas oublier de valider votre message.";
        
        //ajouter un lien autour des boutons vers l'éditeur rapide
        $(this).add('#fa_like_clone').find('button.rep-button.fa_like').wrap('<a href="#quickreply"></a>').click(function(){
          $(this).unbind();
          $(this).unwrap();
          alert(''+member+','+texte+'');
          
          if(liketest == 0){
            $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+pictures+'\n\n');
          }
          else {
            $('#text_editor_textarea').sceditor("instance").insert(base+'\n'+message+' '+pictures+'\n\n');
          }
        });
      });
    };
  });  
});      

Je ne sais pas si c'est perfectible. Si ok pour toi, je passerai en résolu.

Encore un grand merci pour tout.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Dupliquer un bouton

Message par MlleAlys Mar 3 Mai 2022 - 20:28

Hello,
Je n'ai pas bien compris si tu cherchais à modifier quelque chose en particulier ?

Tu voulais cloner l'indicateur du nombre de likes à côté de l'éditeur dans le cas où l'utilisateur est l'auteur du sujet ? J'avais cru lire ça ce midi mais soit je l'ai imaginer soit tu as changé d'avis ? Razz

Corriger la position sous modzilla/edge ? Pour ce point, je pense que je n'ai de toute façon pas exactement le même rendu sur mo fo test car pas le même style, donc compliqué de donner la solution =/ Après là j'ai de façon très simple inséré une div avant le form de l'éditeur, si vous osuhaitez un peu plus de possibilités pour le positionnement, vous pouvez remplacer par exemple cette partie :
Code:

        // dubliquer le bouton à côté de la réponse rapide
        $("#quick_reply").before('<div id="fa_like_clone" ></div>');
        $(".fa_like_div").clone().appendTo("#fa_like_clone");
Par :
Code:

        // dubliquer le bouton à côté de la réponse rapide
        $("#quick_reply").wrap('<div id="rep-rapide" ></div>');
        $("#rep-rapide").append('<div id="fa_like_clone"></div>');
        $(".fa_like_div").clone().appendTo("#fa_like_clone");

Plutôt que d'utiliser un simple float, vous pourrez alors mettre en forme le positionnement de #fa_like_clone et #quick_reply en vous aidant de #rep-rapide (qui maintenant les contient tous les deux) via le css (positionnement absolu, ou utilisation de flex ou grid ou autre)
MlleAlys

MlleAlys
Membre actif

Messages : 5767
Inscrit(e) le : 12/09/2012

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

Résolu Re: Dupliquer un bouton

Message par photoclic Mar 3 Mai 2022 - 20:56

Bonsoir MlleAlys,

Oui oui, je voulais effectivement cloner le bouton des like et ce que tu m'as fait fonctionne à merveille!

Il y avait juste un comportement pas top dans le cas où l'utilisateur est l'auteur et qu'il y a des like. Mais c'est réglé comme expliqué ci-dessus. Tout fonctionne comme ce que j'avais en tête. Les coms que tu as ajouté m'ont bien aidé aussi.

Ton ajout va me faciliter la vie au niveau du css. C'est parfait.

Encore un grand merci pour tout. Je passe en résolu.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1350
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic 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