La tambouille des râleuses
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-34%
Le deal à ne pas rater :
-34% LG OLED55B3 – TV OLED 4K 55″ 2023 – 100Hz HDR 10+, ...
919 € 1399 €
Voir le deal

Aller en bas
Mäven
Mäven
Râleuse (Admin)
Informations : Très peu présente en ce moment Sad
----
Idea Viens papoter avec nous sur le discord

Messages : 4053
https://tambouille-raleuses.forumactif.com/

Taguer correctement et automatiquement un utilisateur quand on le cite Empty Taguer correctement et automatiquement un utilisateur quand on le cite

Lun 25 Jan 2021 - 11:59

Taguer correctement et automatiquement un utilisateur quand on le cite


Bonjour à toi !

Tu l'as peut-être déjà remarqué, mais quand on cite quelqu'un, son pseudo apparait, avec un lien vers son profil : mais il n'est pas véritablement tagué ( = il ne reçoit pas la notif). Bon en vérité ça peut le faire mais ça ne fonctionne pas s'il a un pseudo composé ou avec des caractères spéciaux. Bref, ici, je te donne un petit script pour que ça le tag quelque soit son pseudo à partir du moment où tu vas cliquer sur "citer" pour réponse au sujet.

Je l'avoue, je ne l'ai pas testé sur toutes les versions, uniquement sur ModernBB, mais en théorie il est fonctionnel sur toutes les versions FA Wink

Idea Il faut, bien entendu, que le tag soit activé sur ton forum.

Pourquoi le tag ne fonctionne pas ?


Comprenons d'abord pourquoi ça ne fonctionne pas sans le script. Quand on tag quelqu'un on utilise le fameux @.
Tu l'as sûre remarqué, quand on tag quelqu'un qui a un pseudo avec un espace ou un symbole type . à la fin, il faut lui ajouter des ""
Code:
@"Pseudo composé"
Et voilà : c'est ça qui n'est pas fait automatiquement quand on cite quelqu'un !

Le script

Voilà le script que tu dois impérativement placer dans le template overall_footer_end à la fin, mais juste avant celui - ci :
Code:
 <script type="text/javascript">
//<![CDATA[
 fa_endpage();
//]]>
</script>

Le voilà :
Il est commenté pour que tout le monde puisse le comprendre.
Code:
<script type="text/javascript">

$(document).ready( function() {
  /*on récupère l'url de la page où on est*/
  var adresseActuelle = window.location.toString();

  /*On regarde qu'il existe un textarea dans l'id textarea_content et la classe sceditor-container
    S'il existe, on lui attribut un nom contentMessage */
  if($('#textarea_content').find('.sceditor-container textarea').length >0){
    $('#textarea_content').find('.sceditor-container textarea').attr('name','contentMessage');
  }
 
  /*Si on est sur une page de réponse et que "mode=quote" est dans l'url
      on appelle la fonction pour ajouter les "" où il faut. */
  if((adresseActuelle.indexOf("/post")!=-1) && (adresseActuelle.indexOf("mode=quote")!=-1)){
    searchReplace('quote="','quote="', 'quote="@"');
    searchReplace('quote=','"]', '""]');
  }
  /*Si on est sur une page de réponse (ici c'est pour gérer quand on prévisualise où il n'y a plus le "mode = quote" mais qui pose souci aussi)
    On appelle la fonction de remplacement pour retirer le caractère d'échappement (\) qu'il ajoute seul*/
  if(adresseActuelle.indexOf("/post")!=-1){
    searchReplace('quote="@\\"','\\','');
  }


  function searchReplace(searchString, searchStringReplace, replaceString){
    /*Si on est dans le textarea qui a le name message
      //On récupère la valeur de ce champs
      //On procède au remplacement
      //On réinjecte la valeur*/
    if(document.forms.post.message.value.indexOf(searchString)){
      var content = document.forms.post.message.value;
      content = content.replace(searchStringReplace,  replaceString);
      document.forms.post.message.value = content;
    }
    /*//Si on est dans le textarea qui a le name contentMessage
      //On récupère la valeur de ce champs
      //On procède au remplacement
      //On réinjecte la valeur*/
    if($('#textarea_content').find('.sceditor-container textarea').length >0){
      if(document.forms.post.contentMessage.value.indexOf(searchString)){
        var content = document.forms.post.contentMessage.value;
        content = content.replace(searchStringReplace,  replaceString);
        document.forms.post.contentMessage.value = content;
      }
    }
  }
});
</script>




Si tu as des questions à propos de ce tutoriel n'hésite pas à les poser. Si tu l'as testé sur d'autre version et qu'il fonctionne, n'hésite pas aussi à le préciser à la suite Wink Et s'il ne marche pas, demande moi et je me pencherai dessus Wink

Miettes et Avalanche aiment ce message

Revenir en haut
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum
Les coups de ♥ des Râleuses

Post-It des Râleuses