Éditer le titre depuis la liste des sujets

+2
Foufouw'
Zeste
6 participants

Page 2 sur 2 Précédent  1, 2

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

Résolu Éditer le titre depuis la liste des sujets

Message par Matriochka Mer 30 Jan 2013 - 17:40

Rappel du premier message :

Bonjour à tous,

Dans le même ordre d’idée mon précédent topic : outils de modération depuis la liste des sujets, j’aimerais maintenant apprendre à créer le script qui me permettra, si possible, de modifier le titre d’un sujet directement depuis la liste des sujets.

Donc dans l’idéal, j’aimerais avoir un nouveau bouton à côté de ces boutons (pas très visibles car leur opacité a été réduite) :
Éditer le titre depuis la liste des sujets - Page 2 Qqdef10

Sur lequel je clique pour faire apparaître à la place du titre existant une zone de texte, où je pourrai effectuer une modification :
Éditer le titre depuis la liste des sujets - Page 2 Sans_t43

Avec éventuellement un petit bouton juste à droite de la zone de saisie pour valider la modification. Un peu à l’image des champs modifiables depuis le profil, au final…

Voilà à peu près ce que j’aimerais réaliser afin de fignoler la personnalisation de cette liste de sujets. Merci à tous ceux qui prendront le temps de lire ce message et surtout à ceux qui se pencheront sur le sujet Wink


Dernière édition par Matriochka le Dim 3 Mar 2013 - 10:55, édité 1 fois
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Dim 10 Fév 2013 - 13:09

Ah, merci Arlem
J’ai repris tout ça de A à Z et maintenant, tout fonctionne au poil chez moi. Nickel ! Very Happy

Pour le petit temps d’attente, il y a moyen qu’il n’y soit plus, ou bien on est obligés de faire ainsi ? Si ça n’est pas possible, ça n’est pas un problème du tout, je chipote juste un peu pour t’ennuyer, huhu Razz
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Arlem Dim 10 Fév 2013 - 14:11

Le temps d'attente à lieu ici car il faut que les différentes requêtes (envoi, vérification que l'envoi à réussi..) s’exécutent. On peut le faire sans temps de latence mais à ce moment là il sera modifié même si l'envoi a échoué.

Avec ce script, l'actualisation est instantanée et on ajoute un petit "check" quand l'envoi est réussi, ça permet de faire un compromis entre les deux (je colle le code à coller après les variables des images etc. que tu n'aies pas à modifier à nouveau tous les liens) :
Code:
$(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) {
      $('.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="edit_topic"><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="edit_topic"><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&sid='+cookie);
        $(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&sid='+cookie);
        $(this).addClass('mod_unlock').removeClass('mod_lock');
        $(this).attr('src',unlock_img);
      }
  }
  );
  /* 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&sid='+cookie);
        $(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 */
  $('.edit_topic').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);
              temp.closest('tr').find('a.topictitle').show().text($('#new_title').val());
              temp.parent().find('#new_title').hide();
              temp.parent().find('.edit_title').hide();
      /* 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 */
            $.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent($('#new_title').val()) + "$2") + "&post=1",function(c) {
              /* test pour voir si ça s'est bien passé */
              if(c.indexOf('Message enregistré avec succès')!=-1) {
temp.after('<img src="http://nsa31.casimages.com/img/2013/02/10/130210020722226189.png" alt="sent"/>');
              }
            }
            )
        }
        )
      });
});
});
avatar

Arlem
Membre actif

Messages : 2550
Inscrit(e) le : 30/06/2009

Arlem a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Dim 10 Fév 2013 - 14:27

Ah, c’est parfait, je te remercie ! Vraiment nickel, Arlem thumright

Alors, juste un dernier petit truc avec ce bout de script : du coup, quand j’édite deux fois coup sur coup sans actualiser, la petite icône de check s’affiche deux fois à la suite. Est-ce qu’il y a moyen de remédier à ça ou non ?
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Foufouw' Dim 10 Fév 2013 - 14:52

Salut, je vais faire mon gros flemmard mais pourriez vous poster le script complet ainsi que quelques explications (Ou même actualiser le post d'Arlem sur l'autre topic) ?

Merci d'avance. *Le Mec d'une Grande Aide*...
avatar

Foufouw'
Nouveau membre

Masculin
Messages : 21
Inscrit(e) le : 08/02/2012

http://ac-one.forumactif.org/forum
Foufouw' a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Dim 10 Fév 2013 - 14:55

C’est un peu malvenu de se ramener comme ça en demandant un code complet alors que tout est donné sur la page précédente… Rolling Eyes

Tiens, Arlem a posté un version "flemmard" ici :
https://forum.forumactif.com/t345178-editer-le-titre-depuis-la-liste-des-sujets#2952488

Si ça ne te convient pas, tu peux faire comme Xoumi et moi-même :faire un effort pour reprendre chaque message du sujet Wink
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Foufouw' Dim 10 Fév 2013 - 14:58

C'est ce que j'étais en train de faire au final. mais merci quand même et désolé ._.
avatar

Foufouw'
Nouveau membre

Masculin
Messages : 21
Inscrit(e) le : 08/02/2012

http://ac-one.forumactif.org/forum
Foufouw' a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Arlem Dim 10 Fév 2013 - 15:57

Yep ça doit être faisable, tu voudrais faire quoi, qu'il disparaisse un court temps puis réapparaisse quand il est envoyé à nouveau ?
avatar

Arlem
Membre actif

Messages : 2550
Inscrit(e) le : 30/06/2009

Arlem a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Dim 10 Fév 2013 - 15:58

Oui voilà, ce serait pas mal cette alternative Smile
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Bipo Dim 10 Fév 2013 - 23:52

Hello les amis,

Tout d'abord, merci Arlem pour les modifications que tu as apporté. Le script fonctionne à 90% chez moi ! J'ai découvert un bogue en appliquant le script sur mon forum : un problème d'encodage.

Mon forum (cf. mon profil) a été créé en 2005 avec un charset windows-1252. Quand je valide l'édition d'un titre qui contient des accents, le titre et le premier message du sujet à un problème d'encodage. Les accents deviennent des @"*/, etc. Je n'ai pas ce problème sur mon forum de test qui a un charset UTF8.

Du coup, j'ai suspendu l'édition des titres car j'ai bousillé deux sujets comme ça que je dois entièrement reprendre à la main :O: Je ne sais pas si une solution existe Sad

Bref, je préviens au cas où du problème !
Bonne soirée.
Xoum'
Bipo

Bipo
Rédactif
Rédactif

Messages : 3902
Inscrit(e) le : 23/09/2010

Bipo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Ea Lun 11 Fév 2013 - 2:58

après moult essais, pour un forum non-utf8 ça semble fonctionner en mettant plutôt que :

Code:
/* envoi de ce formulaire en ayant changé le titre */
$.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent('nouveau titre') + "$2") + "&post=1",function(c){
ceci :

Code:
/* 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= 'nouveau titre éééé \\o/';
    fields[i]=escape(fields[i].name)+'='+escape(fields[i].value)
}

/* envoi formulaire d'édition */
$.post("/post", fields.join('&')+"&post=1",function(c){
quand on utilise le script précédent, il me semble qu'on a les données qui sont encodées de windows-1252 à utf-8, donc sous linux il devrait suffire de faire :

Code:
iconv -t cp1252 -f utf-8 fichier_bad.txt > resultat.txt
edit : et si pas linux, cette page le fait et affiche le résultat
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Mer 13 Fév 2013 - 9:55

Je remonte un petit peu Smile
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Sam 16 Fév 2013 - 18:31

Je remonte à nouveau Smile
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Mar 19 Fév 2013 - 18:20

Hop, je remonte encore Smile
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Jeu 21 Fév 2013 - 18:35

Je remonte.
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Mar 26 Fév 2013 - 10:04

Je remonte.
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Jeu 28 Fév 2013 - 11:11

Je remonte (hé oui, je suis tenace).
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Ea Jeu 28 Fév 2013 - 11:34

Quel est le script et qu'est-ce qu'il devrait faire plutôt que ce qu'il fait ?

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Bipo Jeu 28 Fév 2013 - 18:50

Ea a écrit:après moult essais, pour un forum non-utf8 ça semble fonctionner en mettant plutôt que :

Code:
/* envoi de ce formulaire en ayant changé le titre */
$.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent('nouveau titre') + "$2") + "&post=1",function(c){
ceci :

Code:
/* 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= 'nouveau titre éééé \\o/';
    fields[i]=escape(fields[i].name)+'='+escape(fields[i].value)
}

/* envoi formulaire d'édition */
$.post("/post", fields.join('&')+"&post=1",function(c){
quand on utilise le script précédent, il me semble qu'on a les données qui sont encodées de windows-1252 à utf-8, donc sous linux il devrait suffire de faire :

Code:
iconv -t cp1252 -f utf-8 fichier_bad.txt > resultat.txt
edit : et si pas linux, cette page le fait et affiche le résultat

Salut Ea,

Alors, je viens d'effectuer la correction et la fonction principale du script fonctionne. Cependant, quand le titre est modifié après avoir cliqué sur "envoyer" ► en actualisant la page, on a "Nouveau titre éééééé" ... Je suppose que la machine est enrayée non ? cat

Xoum'.


Sinon, Matriochka posait cette question :

Matriochka a écrit:Ah, c’est parfait, je te remercie ! Vraiment nickel, Arlem thumright

Alors, juste un dernier petit truc avec ce bout de script : du coup, quand j’édite deux fois coup sur coup sans actualiser, la petite icône de check s’affiche deux fois à la suite. Est-ce qu’il y a moyen de remédier à ça ou non ?
Bipo

Bipo
Rédactif
Rédactif

Messages : 3902
Inscrit(e) le : 23/09/2010

Bipo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Ven 1 Mar 2013 - 9:35

Oui voilà, merci Xoumi Smile

Le script au cas où :
Code:
/* adresse img modération lock */
var lock_img = "http://img11.hostingpics.net/pics/689379lock.png";
/* adresse img modération unlock */
var unlock_img = "http://img11.hostingpics.net/pics/269944lockunlock.png";
/* adresse img modération corbeille */
var trash_img = "http://img11.hostingpics.net/pics/781353bin.png";
/* adresse img modération supprimer */
var delete_img = "http://img11.hostingpics.net/pics/204355cross.png";
/* adresse img modération edit */
var edit_img= "http://img11.hostingpics.net/pics/630345documentpencil.png";


/* adresse cookie contenant le sid (ne pas éditer) */
var cookie = my_getcookie('fa_nara_jdrforum_com_sid'+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) {
      $('.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="edit_topic"><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="edit_topic"><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&sid='+cookie);
        $(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&sid='+cookie);
        $(this).addClass('mod_unlock').removeClass('mod_lock');
        $(this).attr('src',unlock_img);
      }
  }
  );
  /* 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&sid='+cookie);
        $(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 */
  $('.edit_topic').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);
              temp.closest('tr').find('a.topictitle').show().text($('#new_title').val());
              temp.parent().find('#new_title').hide();
              temp.parent().find('.edit_title').hide();
      /* 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 */
            $.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent($('#new_title').val()) + "$2") + "&post=1",function(c) {
              /* test pour voir si ça s'est bien passé */
              if(c.indexOf('Message enregistré avec succès')!=-1) {
temp.after('<img src="http://nsa31.casimages.com/img/2013/02/10/130210020722226189.png" alt="sent"/>');
              }
            }
            )
        }
        )
      });
});
});
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Ea Ven 1 Mar 2013 - 10:40

@xoumi : dans le code que je dis de remplacer, le titre était remplacé par "nouveau titre"

enfin il faut insérer le bout de code dans le code qui permet de choisir le nouveau titre, ça différera suivant la façon d'indiquer un nouveau titre, par exemple on pourrait remplacer 'nouveau titre éééé \\o/' par :

Code:
prompt("Nouveau titre : ",fields[i].value)
ou si c'est dans le même style que macema, remplacer 'nouveau titre éééé \\o/' par temp.parent().find('#new_title').val()

@macema : on pourrait retirer le V ou mettre quelque chose comme ça :

Code:
  /* Clic sur le bouton edit */
  $('.edit_topic').click(function() {
      $(this).closest('tr').find('.title_edited').remove()
      if($(this).closest('tr').find('a.topictitle').is(":visible")) {
        $(this).closest('tr').find('a.topictitle').hide();
        if($(this).closest('tr').find('#new_title').length) {
          $(this).closest('tr').find('#new_title,.edit_title').show()
        }
        else {
          $(this).closest('tr').find('a.topictitle').after('<input type="text" id="new_title" value="'+$(this).closest('tr').find('a.topictitle').text()+'"/><input type="button" value="Renommer" class="edit_title"/>');
        }
      }
      else {
        $(this).closest('tr').find('a.topictitle').show();
        $(this).closest('tr').find('#new_title,.edit_title').hide()
    }
  }
  );
  $('.edit_title').live('click', function() {
      var temp = $(this);
      temp.closest('tr').find('a.topictitle').show().text($('#new_title').val());
      temp.parent().find('#new_title').hide();
      temp.parent().find('.edit_title').hide();
      temp.parent().find('.title_edited').remove()
      /* 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 */
            $.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent(temp.parent().find('#new_title').val()) + "$2") + "&post=1",function(c) {
              temp.parent().find('.title_edited').remove()
              /* test pour voir si ça s'est bien passé */
              if(c.indexOf('Message enregistré avec succès')!=-1) {
                temp.after('<img src="http://nsa31.casimages.com/img/2013/02/10/130210020722226189.png" alt="sent" class="title_edited" />');
              }
              else {
                temp.after('<span class="title_edited">[erreur]</span>');
              }
            }
            )
        }
        )
      });
à la place de :

Code:
 /* Clic sur le bouton edit */
  $('.edit_topic').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);
              temp.closest('tr').find('a.topictitle').show().text($('#new_title').val());
              temp.parent().find('#new_title').hide();
              temp.parent().find('.edit_title').hide();
      /* 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 */
            $.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent($('#new_title').val()) + "$2") + "&post=1",function(c) {
              /* test pour voir si ça s'est bien passé */
              if(c.indexOf('Message enregistré avec succès')!=-1) {
temp.after('<img src="http://nsa31.casimages.com/img/2013/02/10/130210020722226189.png" alt="sent"/>');
              }
            }
            )
        }
        )
      });
j'ai juste modifié un peu pour ajouter un [erreur] si il y a une erreur à la place du V ( par exemple si la longueur de titre minimum est 10 et qu'on met un titre de 3 caractères ), qu'en appuyant sur renommer et l'icône d'édition ça supprime le V ou le [erreur] puis qu'on puisse appuyer plusieurs fois sur l'icône d'édition ( afin d'ouvrir/fermer l'<input> ( avant ça affichait juste plusieurs <input> )
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Sam 2 Mar 2013 - 14:28

@macema :
Moi c’est Matriochka Razz

Merci beaucoup, c’est résolu pour moi.

Je laisse ouvert pour Xoumi, et je passerai l’icône dès que ce sera bon pour lui aussi.

edit ea : j'ai le ma de bon
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Bipo Sam 2 Mar 2013 - 23:10

C'est bon pour moi aussi Matriochka !

cat
Bipo

Bipo
Rédactif
Rédactif

Messages : 3902
Inscrit(e) le : 23/09/2010

Bipo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Éditer le titre depuis la liste des sujets

Message par Matriochka Dim 3 Mar 2013 - 10:55

Parfait Smile Dans ce cas, je clôture le sujet.

Merci à ceux qui ont pris la peine de nous aider Smile
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Page 2 sur 2 Précédent  1, 2

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