Répondre sur le forum ?

Florian

Florian Le 22 avril 2016 à 23:08 (Édité le 25 janvier 2019 à 17:50)

Hello,


Sur mon forum je souhaiterais faire un Reply, mais comment faire ? avez-vous une piste a me donner car je sais pas comment faire ça

Un exemple ( sous Xenforo ) 

Comment faire ceci ? un peu de JS je suppose ?
Aendawan

Aendawan Le 24 avril 2016 à 00:27

Effectivement, avec du JS. Il suffis que quand tu clique sur "répondre" tu prends le contenu du message (genre si c'est dans une div), et de le mettre dans ton textaera entre [quote="pseudo" ...] . Ainsi tu pourrais même répondre à plusieurs messages en même temps dans une même réponse.
Florian

Florian Le 24 avril 2016 à 00:33

Niveau JS c'est pas du tout ça :x tu pourrais un peux m'éclaicir, si tu aurais un tuto ou autre ? :x
Aendawan

Aendawan Le 24 avril 2016 à 11:33

Malheureusement, je ne suis pas fort en JS, je n'ai que la théorie. Essaie de regarder sur google :/
Wistaro

Wistaro Le 24 avril 2016 à 16:27

Salut, pour écrire dans ton textarea de texte, tu peut utiliser
document.leNomDeTonFormulaire.idDeTnInputTexte.value='valeur a mettre'
Pour récupérer du texte sélectionné, tu peux passer par cette petite routine en js, qui fonctionne sous tout les navigateurs.

function getSelected() {
   if(window.getSelection) { 
      return window.getSelection(); }   e
    else if(document.getSelection) { 
       return document.getSelection(); }
   else {
      var selection = document.selection && document.selection.createRange();
      if(selection.text) { 
         return selection.text; }
      return false;   }
   return false;}

Donc si on résume ton code pourrait ressembler à ça:

<script langage="text/javascript">
 var selection = getSelected();
 if(selection != NULL){
      
   var ancien_rep = document.getElementById("id_de_ton_textarea_de_rep");
   var new_rep = ancien_rep + "[quote=USER]\n"+selection+"[/QUOTE]\n"+ancien_rep;
    document.leNomDeTonFormulaire.idDeTnInputTexte.value=new_rep;
}

</script>
Voilà en gros le principe. Je garanti pas que le code fonctionne, j'ai pas testé, mais le principe de base est là. 

Après pour récupérer le USER, tu peux procéder par différentes manières. Soit tu fait une recherche de toutes tes réponses pour savoir à qui correspond ce morceau de code, soit du regarde ou ce situe le message dans la page et tu en déduit son ID...A toi de voir 😀
Florian

Florian Le 24 avril 2016 à 17:30

Ok, j'ai fait ceci

<!DOCTYPE html>
<html>
<head>
   <script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.js"></script>
   <script type='text/javascript'>//<![CDATA[
   $(window).load(function(){
   $(function() {
       
       var $answer = $('#answer');
       var $answerTa = $answer.find('textarea');
     
       $('.quote').click(function(e) {
           var parent = $(this).parent().parent();
           var author = parent.find('a').text();
           var authorid = parent.find('a').attr('idP');
           var postContent = parent.find('p').text();
           var quote = '<blockquote><p><a href="./profil.php?id=';
           quote += authorid+ '">' +author+ '</a></p><br>' +postContent+'</blockquote>';
           var answerTaContent = $answerTa.val();
           $answerTa.val(answerTaContent+quote);
           $('html, body').animate({
           scrollTop: $answer.offset().top
           }, 500);
       });
   });
   });
   </script>
  
</head>
<body>
<tr style="display: block" name="1" id="1" class="1">
   <td><a href="" idP="11">Pseudo1</a></td>
   <td class="message"><p>Message</p><button class="quote" type="button"> Citer </button></td>
</tr>
<tr style="display: block">
   <td><a href="" idP="20">Pseudo2</a></td>
   <td class="message"><p>Messag2</p><button class="quote" type="button"> Citer </button></td>
</tr>
<div class="answer" id="answer">
    <label for="answer-content">Répondre</label>
    <textarea id="answer-content" rows="10" cols="50"></textarea>
</div>
  
</body>
</html>

Le problème c'est que ça ressort ça :x
<blockquote><p><a href="./profil.php?id=11">Pseudo1Pseudo2</a></p><br>MessageMessag2</blockquote>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte