[Script JS] Problème encodage
Page 1 sur 1 • Partagez
[Script JS] Problème encodage
Bonsoir à tous,
Depuis quelques années, notre forum utile l'astuce des outils de modération dynamique (c'est-à-dire des outils que les modérateurs peuvent utiliser directement via la liste des sujets). Le script est le suivant :
L'outil fonctionne sauf la fonction d'édition du titre d'un sujet. En effet, lorsqu'un modérateur souhaite éditer un titre, le script ne fonctionne pas si :
1) Le script comporte un caractère spécial ;
2) Si le titre ne comporte pas de caractères spéciaux, le titre s'édite mais le premier message comporte des erreurs :
Quelqu'un aurait une idée ? :/
En vous remerciant par avance.
Bipo.
Depuis quelques années, notre forum utile l'astuce des outils de modération dynamique (c'est-à-dire des outils que les modérateurs peuvent utiliser directement via la liste des sujets). Le script est le suivant :
- Code:
/* adresse img modération deplacer */
var move_img= "https://i.servimg.com/u/f78/11/01/36/00/downlo10.png";
/* adresse img modération edit */
var edit_img= "https://i.servimg.com/u/f10/11/01/36/00/trash_10.png";
/* adresse img modération lock */
var lock_img = "https://i.servimg.com/u/f10/11/01/36/00/lock10.png";
/* adresse img modération unlock + inversion image lock et unlock */
var unlock_img = "https://i.servimg.com/u/f10/11/01/36/00/unlock11.png";
/* adresse img modération corbeille */
var trash_img = "https://i.servimg.com/u/f10/11/01/36/00/trash_10.png";
/* adresse img modération supprimer */
var delete_img = "https://2img.net/i/fa/empty.gif";
/* adresse cookie contenant le sid (ne pas éditer) */
var cookie = my_getcookie('fa_'+location.hostname.replace(/\./g,'_')+'_sid');
$(function() {
/* Si l'utilisateur a les droits de modération, on affiche les outils de modération */
if ($('#is_allowed:contains("modérer")').length > 0) {
var tid = $('#is_allowed a').attr('href').match(/[a-z0-9]*$/);
$('.mod_tools').each(function() {
/* Si le topic est verrouillé on affiche le bouton déverrouiller */
if($(this).children('img').attr('alt').slice(13,19) == "verrou") {
$(this).append('<img src="'+edit_img+'" class="mod_edit"><img src="'+move_img+'" class="mod_move"><img src="'+unlock_img+'" class="mod_unlock"/><img src="'+trash_img+'" class="mod_trash"/><img src="'+delete_img+'" class="mod_delete"/>');
}
/* Sinon on affiche le bouton verrouiller */ else {
$(this).append('<img src="'+edit_img+'" class="mod_edit"><img src="'+move_img+'" class="mod_move"><img src="'+lock_img+'" class="mod_lock"/><img src="'+trash_img+'" class="mod_trash"/><img src="'+delete_img+'" class="mod_delete"/>');
}
}
);
}
/* Clic sur le bouton déverrouiller */
$('.mod_unlock').click(function() {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).closest('tr').find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]*)[p-].*$/, '$1') + '&mode=unlock&tid=' + tid);
$(this).addClass('mod_lock').removeClass('mod_unlock');
$(this).attr('src',lock_img);
}
}
);
/* Clic sur le bouton verrouiller */
$('.mod_lock').click(function() {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).closest('tr').find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]*)[p-].*$/, '$1') + '&mode=lock&tid=' + tid);
$(this).addClass('mod_unlock').removeClass('mod_lock');
$(this).attr('src',unlock_img);
}
}
);
/* Clic sur le bouton deplacer */
$('.mod_move').click(function() {
$(this).closest('tr').find('a.topictitle').after('<input type="submit" class="move_topic"/>');
$(this).closest('tr').find('a.topictitle').after($('select[name="selected_id"]').clone().removeAttr("onchange"));
}
);
$('.move_topic').live('click', function() {
var tempData = $(this);
$.post("/modcp?tid="+$("input[name=tid]:first").val(), {
tid:$("input[name=tid]:first").val(),new_forum:tempData.closest('tr').find('select[name="selected_id"] option:selected').val(),mode:"move",t:tempData.closest('tr').find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]*)[p-].*$/,'$1'),confirm:"Oui"
}
,function(data) {
if(data.indexOf('Le(s) sujet(s) sélectionné(s) a/ont été déplacé(s).')!=-1) {
tempData.closest('tr').remove()
} else if(data.indexOf('Votre session a expiré.')!=-1) {
alert("Votre session a expiré.")
} else if(data.indexOf('Aucun sujet n\'a été déplacé.')!=-1) {
alert("Aucun sujet n'a été déplacé.")
} else if(data.indexOf('Le forum que vous avez sélectionné n\'existe pas.')!=-1) {
alert("Le forum que vous avez sélectionné n'existe pas.")
} else {
alert("erreur inconnue")
}
}
);
}
);
/* Clic sur le bouton corbeille */
$('.mod_trash').click(function(){if(confirm("Êtes-vous sûr ?")){$.get('/modcp.forum?t='+$(this).closest('tr').find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]*)[p-].*$/,'$1')+'&mode=trash&tid='+tid);$(this).closest('tr').remove()}});$('.mod_delete').click(function(){if(confirm("Êtes-vous sûr ?")){var fid=location.href.replace(/^.*\/f([0-9]+)[p-].*$/,'$1');var topic_id=$(this).closest('tr').find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]*)[p-].*$/,'$1');$.post("/modcp?&mode=delete&t="+topic_id+"tid="+tid,{f:fid,confirm:"1"});$(this).closest('tr').remove()}});
/* Clic sur le bouton supprimer */
$('.mod_delete').click(function() {
if (confirm("Êtes-vous sûr ?")) {
// prendre le tid
var tid= $("input[name=tid]:first").val() || ($("a[href*='&tid=']:first").attr("href")||"").replace(/^.*&tid=([a-f0-9]*)?.*$/,"$1");
// prendre le fid
var fid= location.href.replace(/^.*\/f([0-9]+)[p-].*$/,'$1');
// prendre le topic_id
var topic_id= $(this).closest('tr').find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]*)[p-].*$/,'$1');
$.post("/modcp?tid="+tid, {
f:fid, t:topic_id, tid: tid, mode:"delete",confirm:"1"
}
);
$(this).closest('tr').remove();
}
}
);
/* Clic sur le bouton edit */
$('.mod_edit').click(function() {
$(this).closest('tr').find('a.topictitle').hide().after('<input type="text" id="new_title" value="'+$(this).closest('tr').find('a.topictitle').text()+'"/><input type="submit" class="edit_title"/>');
}
);
$('.edit_title').live('click', function() {
var temp = $(this);
/* saisie d'une page du sujet */
$.get($(this).closest('tr').find('a.topictitle').attr('href'), function(c) {
/* prendre identifiant du premier message */
var first_post_id = $(".post a[name]", c).first().attr("name");
/* si pas on fait rien */
if(!first_post_id) {
return
}
/* saisie du formulaire d'édition du message */
$.get("/post?p=" + first_post_id + "&mode=editpost", function(c) {
/* envoi de ce formulaire en ayant changé le titre */
/* récupération du formulaire */
var fields= $('form[name="post"]', c).serializeArray();
for(i=0;i<fields.length;i++)
{
/* changement du titre */
if(fields[i].name=="subject") fields[i].value= temp.parent().find('#new_title').val();
fields[i]=escape(fields[i].name)+'='+escape(fields[i].value)
}
/* envoi formulaire d'édition */
$.post("/post", fields.join('&')+"&post=1",function(c){
/* test pour voir si ça s'est bien passé */
if(c.indexOf('Message enregistré avec succès')!=-1) {
temp.closest('tr').find('a.topictitle').show().text($('#new_title').val());
temp.parent().find('#new_title').hide();
temp.parent().find('.edit_title').hide();
}
}
)
}
)
}
);
}
);
}
);
L'outil fonctionne sauf la fonction d'édition du titre d'un sujet. En effet, lorsqu'un modérateur souhaite éditer un titre, le script ne fonctionne pas si :
1) Le script comporte un caractère spécial ;
2) Si le titre ne comporte pas de caractères spéciaux, le titre s'édite mais le premier message comporte des erreurs :
Quelqu'un aurait une idée ? :/
En vous remerciant par avance.
Bipo.
Dernière édition par Bipo le Dim 14 Avr 2019 - 12:12, édité 3 fois (Raison : J'ai édité mon message car une partie de ce dernier a été coupé...)
Bipo- Rédactif
- Messages : 3889
Inscrit(e) le : 23/09/2010
Sujets similaires
» Un problème de script qui avait été résolu en decembre dernier...https://forum.forumactif.com/t394372-script-image-ne-fonctionne-plus
» Problème script
» probleme de script
» probleme de script
» Problème script JS
» Problème script
» probleme de script
» probleme de script
» Problème script JS
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum