Problème bouton mentionner

2 participants

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

Résolu Problème bouton mentionner

Message par sunshinette Ven 17 Mai 2024 - 22:40

Bonjour,

Je cherche à corriger l'erreur sur mon bouton mentionner sur mon forum. Je sais qu'il existe une facon de mentionner les gens dans la barre d'édition mais je trouve plus pratique l'utilisation de la mention direct.

Pour ce faire j'ai utilisé ce script, mais qui renvoie un @"" vide, sans le pseudo dans le textarea.
Code:
$(function() {
  var version = 4;
 
  if (/mode=reply/.test(window.location.search) && my_getcookie('fa_mention')) {
    document.post.message.value += '@"' + my_getcookie('fa_mention') + '" ';
    my_setcookie('fa_mention','');
  } if (!/\/t\d+/.test(window.location.pathname)) return;
 
  for (var a = $(['.post-options', '.profile-icons', '.post-options', '.posting-icons', '.profile-icons'][version]), b, c, d = ['.spro_rang a strong', '.spro_rang strong', '.spro_rang a', '.spro_username a', '.spro_username a strong', '.spro_username strong'][version], e, i = 0, j = a.length, t = document.getElementById('text_editor_textarea'), l = version == 1 || version == 3 || version == 4; i<j; i++) {
    b = document.createElement('A');
    b.className = 'fa-mention';
    b.innerHTML = '@';
    b.title = 'Mentionner ' + $(a[i]).closest('.post_row').find(d + ':not(.fa-mention)').text();
    b.onclick = function() {
      var n = this.title.replace(/^.*?\s/,'');
 
      if ($.sceditor) t.insertText('@"' + n + '" ');
      else {
        my_setcookie('fa_mention', n);
        window.location.href = '/post?t=' + window.location.pathname.replace(/\/t(\d+)-.*/,'$1') + '&mode=reply';
      }
    };
 
    if (l) {
      c = document.createElement('LI');
      c.appendChild(b);
    }
 
    a[i].insertBefore(l ? c : b, a[i].firstChild);
  }
 
  $(function(){
    if (!$.sceditor) return;
    t=$(t).sceditor('instance');
  });
});

J'ai essayé de chercher ce qui ne fonctionnait pas mais pas moyen de trouver. Alors si quelqu'un a une idée, je suis preneuse !
Normalement vous pouvez avoir accès aux sujets, je met un lien sous hide :

Je vous met le template :

Code:
<!-- MESSAGE -------------->

<!-- Contenenur des messages -->
<div class="container_sujets">

  <div class="block_navigation">
    <div class="container_title-navigation">
      <!-- Titre du poste -->
      <div class="nomforum">{TOPIC_TITLE}</div>
      <!-- LIENS DE NAVIGATION -------------->
      <div class="navigation_links">
        <!-- Chaîne de lien : Catégorie > Forum > Sous-fo -->
        <span class="navigation_chain">
          {NAV_CAT_DESC}
        </span>
      </div>
        </div>

    <!-- BARRE DE GESTION -------------->
    <div class="links_bar">
      <!-- Boutons : nouveau -->
      <!-- BEGIN switch_user_authpost -->
      <a class="buttons" href="{U_POST_NEW_TOPIC}" rel="nofollow">Nouveau</a>
      <!-- END switch_user_authpost -->
      <!-- Bouton : répondre -->
      <!-- BEGIN switch_user_authreply -->
      <a class="buttons" href="{U_POST_REPLY_TOPIC}">Répondre</a>
      <!-- END switch_user_authreply -->
    </div>
  </div> 
  <!-- Pagination -->
 
 
  <div class="bottom_navigationsujet">
  <span class="pagination">
      {PAGINATION}
    </span>

  <!-- Liste des participants du sujet -->
{POSTERS_LIST}

</div>
</div>


<!-- Sondage (template : viewtopic_poll_ballot /// viewtopic_poll_result) -->
{POLL_DISPLAY}
 
  <div class="container" data-idfo="{FORUM_ID}">
    <!-- Affichage d'un message -->
    <!-- BEGIN postrow -->
    <!-- BEGIN displayed -->
    <div id="{postrow.displayed.U_POST_ID}"></div>
    <div class="post_details2">  <span class="post_date">
                <!-- Date du message -->
                <time><a href="{postrow.displayed.POST_URL}"><i class="fa-solid fa-ship"></i></a> {postrow.displayed.POST_DATE_NEW}</time>
        </span>
            <!-- Boutons d'édition de message -->
                <ul class="profile-icons ">
                    <li>{postrow.displayed.QUOTE_IMG}</li>
                    <li>{postrow.displayed.EDIT_IMG}</li>
                    <li>{postrow.displayed.DELETE_IMG}</li>
                    <li>{postrow.displayed.IP_IMG}</li>
                </ul>
         
     
         
<!-- BEGIN switch_vote -->
 <a href="{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_PLUS}" class="ion-plus-circled"></a>
 <!-- END switch_vote -->
 
 <!-- BEGIN switch_vote -->
 <a href="{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_MINUS}" class="ion-minus-circled"></a>
 <!-- END switch_vote -->
     
      <!-- BEGIN switch_likes_active -->
 <div class="fa_like_div">
 <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}">
<img src="http://tinyurl.com/3bfbt57w"> 
  {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}">
<img src="http://tinyurl.com/yx8aj967">
{postrow.displayed.switch_likes_active.switch_dislike_button.COUNT_VOTE_DISLIKE}
 </button>
 <!-- END switch_dislike_button -->
  <div class="nameslikes">
 <!-- 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 -->
 </div> </div>
 <!-- END switch_likes_active -->
          </div>
    <div class="post post_row post--{postrow.displayed.U_POST_ID}" id="p{postrow.displayed.U_POST_ID}">
     
<div class="post_details"></div>
     
        <!-- Fin détails -->


        <!-- Colonne de profil -->
        <div class="post_profile" id="profile{postrow.displayed.U_POST_ID}">
<div class="spro_2">
            <center>
            <div class="spro_bloc_sujet">    <!-- Pseudo -->
                <div class="spro_username">{postrow.displayed.POSTER_NAME}</div>

                <div class="spro_rang">
                    {postrow.displayed.POSTER_RANK_NEW} <!-- Rang -->
              </div></div>
            </center>

  <div class="spro_avatar">         
  <!-- Avatar -->
            <div class="post_avatar">
              {postrow.displayed.POSTER_AVATAR}
   
    </div></div>
  </div>

<div class="post_userinfo"><div class="systab">
               
  <div class="selected"><span><i class="fa-solid fa-tree"></i></span>
<!-- Champs de profil -->
  <span class="profil">
          <!-- BEGIN profile_field --> <div class="infos-posteur">
       
  <!-- Label d'un champs de profil -->
<span class="profil_label">{postrow.displayed.profile_field.LABEL}</span>
             
<!-- Contenu d'un champs de profil -->
 <span class="profil_content">{postrow.displayed.profile_field.CONTENT}</span>
             
<!-- Séparateur entre champs de profil -->
  <span class="profil_separator">{postrow.displayed.profile_field.SEPARATOR}</span>
          </div> <!-- END profile_field --> </span></div>
               
<div><span><i class="fa-solid fa-cloud"></i></span><div class="infos-rp"></div>
 
</div></div>
 
</div><div class="bottom_profil"><div title="En ligne" class="off {postrow.displayed.ONLINE_IMG_NEW}">{postrow.displayed.ONLINE_IMG_NEW}</div><div class="mp">{postrow.displayed.PM_IMG}</div>
          </div></div>
        <!-- Fin colonne profil -->


        <!-- Contenu du message -->
        <div class="post_message postbody content">
           
         
          <section> {postrow.displayed.MESSAGE}</section>
               
         
            <!-- Signature -->
            <!-- BEGIN switch_signature -->
            <div class="signature_div" id="sig{postrow.displayed.U_POST_ID}">{postrow.displayed.SIGNATURE_NEW}</div>
            <!-- END switch_signature -->

        </div>
        <!-- Fin du contenu du message -->
    </div>

    <!-- END displayed -->
    <!-- END postrow -->
    <!-- Fin affichage d'un message -->

</div>
 
     
      <div class="block_navigation_bottom">
      <div class="navigation_links">
    <!-- Chaîne de lien : Catégorie > Forum > Sous-fo -->
    <span class="navigation_chain" style="padding: 0px !important; margin: 0px !important">
        {NAV_CAT_DESC}
    </span>
</div>
 
            <div class="pagination_bottom">   
        <!-- Pagination -->
    <!-- BEGIN topicpagination -->
    <span class="pagination">{PAGINATION}</span>
    <!-- END topicpagination -->
      </div>
</div>
     

<!-- Fin des messages -->

Merci beaucoup d'avance pour l'aide fournie !
sunshinette

sunshinette
***

Féminin
Messages : 148
Inscrit(e) le : 27/01/2012

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

Résolu Re: Problème bouton mentionner

Message par Milouze14 Sam 18 Mai 2024 - 6:42

Salut sunshinette,
alors ton template présente un soucis sur les messages en eux même car il sont tous englobés dans une même div.
Il faut donc tous les distinguer avec une autre div avec une class :


La ligne ajoutée en dessous de :
Code:
 
 <!-- BEGIN displayed -->
    <div id="{postrow.displayed.U_POST_ID}"></div>


Code:
<div class="post_message_indiv">

Fermeture de la div ici:
Code:
   
<!-- Fin du contenu du message -->
    </div>   </div>

Tu peux te servir de cette dernière pour les personnaliser dans ta CSS Wink :

Code:

.post_message_indiv
{

}

J'ai aussi remarqué que la réponse rapide n'était pas présente dans le contenu de ton template
Le script fonctionne seulement avec la réponse rapide chère amie:

La partie ajoutée pour la réponse rapide:
Code:
<!-- BEGIN switch_user_logged_in -->
 <a name="quickreply"></a>
 {QUICK_REPLY_FORM}
<!-- END switch_user_logged_in -->

J'ai donc modifié ton template afin que tout soit correcte (réponse rapide inclue):

Code:
<!-- MESSAGE -------------->

<!-- Contenenur des messages -->
<div class="container_sujets">

  <div class="block_navigation">
    <div class="container_title-navigation">
      <!-- Titre du poste -->
      <div class="nomforum">{TOPIC_TITLE}</div>
      <!-- LIENS DE NAVIGATION -------------->
      <div class="navigation_links">
        <!-- Chaîne de lien : Catégorie > Forum > Sous-fo -->
        <span class="navigation_chain">
          {NAV_CAT_DESC}
        </span>
      </div>
        </div>

    <!-- BARRE DE GESTION -------------->
    <div class="links_bar">
      <!-- Boutons : nouveau -->
      <!-- BEGIN switch_user_authpost -->
      <a class="buttons" href="{U_POST_NEW_TOPIC}" rel="nofollow">Nouveau</a>
      <!-- END switch_user_authpost -->
      <!-- Bouton : répondre -->
      <!-- BEGIN switch_user_authreply -->
      <a class="buttons" href="{U_POST_REPLY_TOPIC}">Répondre</a>
      <!-- END switch_user_authreply -->
    </div>
  </div>
  <!-- Pagination -->
 
 
  <div class="bottom_navigationsujet">
  <span class="pagination">
      {PAGINATION}
    </span>

  <!-- Liste des participants du sujet -->
{POSTERS_LIST}

</div>
</div>


<!-- Sondage (template : viewtopic_poll_ballot /// viewtopic_poll_result) -->
{POLL_DISPLAY}
 
  <div class="container" data-idfo="{FORUM_ID}">
    <!-- Affichage d'un message -->
    <!-- BEGIN postrow -->
    <!-- BEGIN displayed -->
    <div id="{postrow.displayed.U_POST_ID}"></div>
           <div class="post_message_indiv">
                 <div class="post_details2">  <span class="post_date">
                <!-- Date du message -->
                <time><a href="{postrow.displayed.POST_URL}"><i class="fa-solid fa-ship"></i></a> {postrow.displayed.POST_DATE_NEW}</time>
        </span>
            <!-- Boutons d'édition de message -->
                <ul class="profile-icons ">
                    <li>{postrow.displayed.QUOTE_IMG}</li>
                    <li>{postrow.displayed.EDIT_IMG}</li>
                    <li>{postrow.displayed.DELETE_IMG}</li>
                    <li>{postrow.displayed.IP_IMG}</li>
                </ul>
        
    
        
<!-- BEGIN switch_vote -->
 <a href="{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_PLUS}" class="ion-plus-circled"></a>
 <!-- END switch_vote -->
 
 <!-- BEGIN switch_vote -->
 <a href="{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_MINUS}" class="ion-minus-circled"></a>
 <!-- END switch_vote -->
    
      <!-- BEGIN switch_likes_active -->
 <div class="fa_like_div">
 <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}">
<img src="http://tinyurl.com/3bfbt57w">
  {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}">
<img src="http://tinyurl.com/yx8aj967">
{postrow.displayed.switch_likes_active.switch_dislike_button.COUNT_VOTE_DISLIKE}
 </button>
 <!-- END switch_dislike_button -->
  <div class="nameslikes">
 <!-- 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 -->
 </div> </div>
 <!-- END switch_likes_active -->
          </div>
    <div class="post post_row post--{postrow.displayed.U_POST_ID}" id="p{postrow.displayed.U_POST_ID}">
    
<div class="post_details"></div>
    
        <!-- Fin détails -->


        <!-- Colonne de profil -->
        <div class="post_profile" id="profile{postrow.displayed.U_POST_ID}">
<div class="spro_2">
            <center>
            <div class="spro_bloc_sujet">    <!-- Pseudo -->
                <div class="spro_username">{postrow.displayed.POSTER_NAME}</div>

                <div class="spro_rang">
                    {postrow.displayed.POSTER_RANK_NEW} <!-- Rang -->
              </div></div>
            </center>

  <div class="spro_avatar">        
  <!-- Avatar -->
            <div class="post_avatar">
              {postrow.displayed.POSTER_AVATAR}
  
    </div></div>
  </div>

<div class="post_userinfo"><div class="systab">
              
  <div class="selected"><span><i class="fa-solid fa-tree"></i></span>
<!-- Champs de profil -->
  <span class="profil">
          <!-- BEGIN profile_field --> <div class="infos-posteur">
      
  <!-- Label d'un champs de profil -->
<span class="profil_label">{postrow.displayed.profile_field.LABEL}</span>
            
<!-- Contenu d'un champs de profil -->
 <span class="profil_content">{postrow.displayed.profile_field.CONTENT}</span>
            
<!-- Séparateur entre champs de profil -->
  <span class="profil_separator">{postrow.displayed.profile_field.SEPARATOR}</span>
          </div> <!-- END profile_field --> </span></div>
              
<div><span><i class="fa-solid fa-cloud"></i></span><div class="infos-rp"></div>
 
</div></div>
 
</div><div class="bottom_profil"><div title="En ligne" class="off {postrow.displayed.ONLINE_IMG_NEW}">{postrow.displayed.ONLINE_IMG_NEW}</div><div class="mp">{postrow.displayed.PM_IMG}</div>
          </div></div>
        <!-- Fin colonne profil -->


        <!-- Contenu du message -->
        <div class="post_message postbody content">
          
        
          <section> {postrow.displayed.MESSAGE}</section>
              
        
            <!-- Signature -->
            <!-- BEGIN switch_signature -->
            <div class="signature_div" id="sig{postrow.displayed.U_POST_ID}">{postrow.displayed.SIGNATURE_NEW}</div>
            <!-- END switch_signature -->

        </div>
        <!-- Fin du contenu du message -->
    </div>   </div>

    <!-- END displayed -->
    <!-- END postrow -->
    <!-- Fin affichage d'un message -->

</div>
  
 
  
      <div class="block_navigation_bottom">
      <div class="navigation_links">
    <!-- Chaîne de lien : Catégorie > Forum > Sous-fo -->
    <span class="navigation_chain" style="padding: 0px !important; margin: 0px !important">
        {NAV_CAT_DESC}
    </span>
</div>
 
            <div class="pagination_bottom">  
        <!-- Pagination -->
    <!-- BEGIN topicpagination -->
    <span class="pagination">{PAGINATION}</span>
    <!-- END topicpagination -->
      </div>
</div>
    

<!-- Fin des messages -->

          
<!-- BEGIN switch_user_logged_in -->
 <a name="quickreply"></a>
 {QUICK_REPLY_FORM}
<!-- END switch_user_logged_in -->


Puis le script quelque peu revu Wink

Code:


 $(function() {
    var version = 4 ;
      
 
    if (/mode=reply/.test(window.location.search) && my_getcookie('fa_mention')) {
        document.post.message.value += '@"' + my_getcookie('fa_mention') + '" ';
        my_setcookie('fa_mention', '');
    }
    if (!/\/t\d+/.test(window.location.pathname)) return;
 
    for (
        var a = $(['.post-options', '.profile-icons', '.post-options', '.posting-icons', '.profile-icons', '.mobile-hide.post-buttons'][version]),
            b, c, d = ['.name strong a', '.author a', '.username a', '.author a', '.spro_username a', '.post-author-name a'][version],
            e, i = 0, j = a.length, t = document.getElementById('text_editor_textarea'); i < j; i++) {
        b = document.createElement('A');
        b.href = '#quick_reply';
        b.title = 'Mentionner ' + $(a[i]).closest('.post_message_indiv').find(d + ':not(.fa-mention)').text();
        b.className = 'fa-mention';
        b.innerHTML = '@';
        b.onclick = function() {
            var n = this.title.replace(/^.*?\s/, '');
            if ($.sceditor) t.insertText('@"' + n + '" ');
            else {
                my_setcookie('fa_mention', n);
                window.location.href = '/post?t=' + window.location.pathname.replace(/\/t(\d+)-.*/, '$1') + '&mode=reply';
            }
        };
 
 
 
        a[i].insertBefore(b, a[i].firstChild);
 
    }
 
    $(function() {
        if (!$.sceditor) return;
        t = $(t).sceditor('instance');
    });
 });


Et voilou Wink

a++
Milouze14

Milouze14
****

Masculin
Messages : 201
Inscrit(e) le : 03/12/2021

https://www.milouze14.net/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème bouton mentionner

Message par sunshinette Sam 18 Mai 2024 - 12:26

Merci beaucoup ! C'est tout parfait avec cette solution, c'était vraiment tout bête mais j'arrivais pas à mettre le doigt sur ce qui n'allait pas. Merci encore pour le temps pris sur ma demande ! Yahoo
sunshinette

sunshinette
***

Féminin
Messages : 148
Inscrit(e) le : 27/01/2012

https://sunshinette.forumactif.com/
sunshinette 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