- MävenRâleuse (Admin)
- Informations : Très peu présente en ce moment
----
Viens papoter avec nous sur le discord
Messages : 4053
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
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é"
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 Et s'il ne marche pas, demande moi et je me pencherai dessus
Miettes et Avalanche aiment ce message
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum
|
|