Éditer le titre depuis la liste des sujets
+2
Foufouw'
Zeste
6 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 2 • Partagez
Page 1 sur 2 • 1, 2
Éditer le titre depuis la liste des sujets
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) :
Sur lequel je clique pour faire apparaître à la place du titre existant une zone de texte, où je pourrai effectuer une modification :
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
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) :
Sur lequel je clique pour faire apparaître à la place du titre existant une zone de texte, où je pourrai effectuer une modification :
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
Dernière édition par Matriochka le Dim 3 Mar 2013 - 10:55, édité 1 fois
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Hop, je remonte un peu
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Je t'aiderai pas pour le code, mais on pourrait déjà créer un 4è bouton avec la possibilité de modifier le 1er post, en gros Editer le sujet & donc son titre. Ca paraît déjà plus possible que ce que tu demande, non ? :0
Re: Éditer le titre depuis la liste des sujets
Merci pour ta réponse. Je sais que ce que je demande est possible, je ne sais juste pas le réaliser à l’heure actuelle, bien que j’aie quelques petites idées (infructueuses). J’attends donc quelqu’un pour m’apprendre à créer ce script
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Je remonte à nouveau.
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Yop,
Tu es sûre que la demande est possible ?
Autant la partie bouton avec le titre du topic qui se change en zone de texte pour éditer ça, je vois... autant le script pour récupérer l'id du premier post concerné ainsi que son contenu depuis la page des sous-forum, ça me parait un peu plus tendu.
Tu es sûre que la demande est possible ?
Autant la partie bouton avec le titre du topic qui se change en zone de texte pour éditer ça, je vois... autant le script pour récupérer l'id du premier post concerné ainsi que son contenu depuis la page des sous-forum, ça me parait un peu plus tendu.
Arlem- Membre actif
- Messages : 2550
Inscrit(e) le : 30/06/2009
Re: Éditer le titre depuis la liste des sujets
Hello,
Merci pour ta réponse Arlem (encore toi :3)
Ça me semble possible, oui, pour l’avoir vu sur certains forums hébergés sur Forumactif. Bon après, si ça ne l’est vraiment pas, ça n’est pas grave, je me contenterai du système actuel…
Merci pour ta réponse Arlem (encore toi :3)
Ça me semble possible, oui, pour l’avoir vu sur certains forums hébergés sur Forumactif. Bon après, si ça ne l’est vraiment pas, ça n’est pas grave, je me contenterai du système actuel…
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Bonjour,
Il y a plusieurs solutions avec leurs problèmes :
Le mieux et le plus léger me semble la dernière solution, mais si pouvoir trouver le nouveau titre par la recherche est important il faudrait plutôt utiliser la première ou troisième.
Cordialement.
Il y a plusieurs solutions avec leurs problèmes :
- Le script répond au sujet en éditant le titre => problème = soit on met un message comme quoi le titre a été modifié, soit on supprime le message ( mais des gens pourrait avoir une notification pour rien ).
- On découpe tout les messages du sujet dans un nouveau sujet avec le nouveau titre => problème = le sujet change de lien + il faut l'identifiant du premier poste du sujet ( donc ouvrir le sujet )
- On ouvre l'édition du premier poste du sujet et édite le titre => problème = il faut ouvrir le sujet pour avoir l'identifiant du premier post du sujet
- On ouvre l'édition du dernier poste du sujet et édite le titre => problème = pour le moment, une édition du titre par une réponse ne modifie pas le titre dans l'index de recherche ( bug signalé il y a quelques temps mais toujours d'actualité )
Le mieux et le plus léger me semble la dernière solution, mais si pouvoir trouver le nouveau titre par la recherche est important il faudrait plutôt utiliser la première ou troisième.
Cordialement.
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Éditer le titre depuis la liste des sujets
Merci pour ta réponse, Ea
Là comme ça, je dirai que la troisième solution est la plus intéressante, mais qu’entends-tu par :
Là comme ça, je dirai que la troisième solution est la plus intéressante, mais qu’entends-tu par :
- Code:
il faut ouvrir le sujet pour avoir l'identifiant du premier post du sujet
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
cela veut dire qu'il faut :
-> 1 requête pour charger la page du sujet
-> y prendre l'identifiant du premier message
-> 1 requête pour avoir la page d'édition du premier message
-> l'envoyer en ayant changé le titre
donc un code comme ceci :
-> 1 requête pour charger la page du sujet
-> y prendre l'identifiant du premier message
-> 1 requête pour avoir la page d'édition du premier message
-> l'envoyer en ayant changé le titre
donc un code comme ceci :
- Code:
/* saisie d'une page du sujet */
$.get("/t345178-editer-le-titre-depuis-la-liste-des-sujets", 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('nouveau titre') + "$2") + "&post=1",function(c){
/* test pour voir si ça s'est bien passé */
if(c.indexOf('Message enregistré avec succès')!=-1) alert('yeah réussi')
})
})
});
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Éditer le titre depuis la liste des sujets
J’ai essayé le script en modifiant ce qu’il fallait, mais je ne vois rien apparaître dans la liste des sujets… J’avoue que je patauge un peu pour le coup, je débute avec ce langage alors j’ai du mal à suivre malgré les explications…
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
J'y arrive de mon côté, thx pour le script Ea, tu avais modifié le script des outils de modération Matriochka ? Si oui donne le nous et on t'expliquera par étapes ce qu'il faut modifier que tu comprennes le principe.
(Et btw felicidades pour ton rang d'aidactive à l'essai. o/)
(Et btw felicidades pour ton rang d'aidactive à l'essai. o/)
Arlem- Membre actif
- Messages : 2550
Inscrit(e) le : 30/06/2009
Re: Éditer le titre depuis la liste des sujets
Merci Arlem! (aidactive qui demande de l’aide )
Voilà mon script pour les outils de modération :
Voilà mon script pour les outils de modération :
- 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 cookie contenant le sid */
var cookie = my_getcookie('fa_nara_jdrforum_com_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).parent().parent().children('.row1').children('img').attr('title').slice(13,19) == "verrou") {
$(this).append('<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="'+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).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/,'$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).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/,'$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).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/,'$1')+'&mode=trash&sid='+cookie);
}
});
/* Clic sur le bouton supprimer */
$(this).closest('tr').remove();
$('.mod_delete').click(function() {
if(confirm('Vraiment supprimer ?')) {
$(this).closest('tr').remove();
}
// 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).parent().parent().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"});
});
});
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
(On peut pas être parfait. :3)
Alors, dans l'ordre, au tout début ajoute ceci en modifiant l'url de l'image que tu souhaites :
Alors, dans l'ordre, au tout début ajoute ceci en modifiant l'url de l'image que tu souhaites :
- Code:
/* adresse img modération edit */
var edit_img= "adresse_img_edit";
- Code:
/* 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="'+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="'+lock_img+'" class="mod_lock"/><img src="'+trash_img+'" class="mod_trash"/><img src="'+delete_img+'" class="mod_delete"/>');
}
}
);
}
- Code:
/* 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"/>');
}
}
);
}
- Code:
$('.edit_topic').click(function() {
/* On cache le titre et on affiche la zone d'édition */
$(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() {
/* 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) alert('yeah réussi')
}
)
}
)
});
});
Dernière édition par Arlem le Sam 9 Fév 2013 - 16:53, édité 1 fois
Arlem- Membre actif
- Messages : 2550
Inscrit(e) le : 30/06/2009
Re: Éditer le titre depuis la liste des sujets
j'avais fait ceci :
- Code:
var lock_img = "http://img11.hostingpics.net/pics/689379lock.png";
var unlock_img = "http://img11.hostingpics.net/pics/269944lockunlock.png";
var trash_img = "http://img11.hostingpics.net/pics/781353bin.png";
var delete_img = "http://img11.hostingpics.net/pics/204355cross.png";
var rename_img = "http://i39.tinypic.com/2dkha3p.png";
var cookie = my_getcookie('fa_nara_jdrforum_com_sid');
$(function () {
if ($('#is_allowed:contains("modérer")').length > 0) {
$('.mod_tools').each(function () {
if ($(this).parent().parent().children('.row1').children('img').attr('title').slice(13, 19) == "verrou") {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + unlock_img + '" class="mod_unlock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
} else {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + lock_img + '" class="mod_lock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
}
})
}
$('.mod_unlock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=unlock&sid=' + cookie);
$(this).addClass('mod_lock').removeClass('mod_unlock');
$(this).attr('src', lock_img)
}
});
$('.mod_lock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=lock&sid=' + cookie);
$(this).addClass('mod_unlock').removeClass('mod_lock');
$(this).attr('src', unlock_img)
}
});
$('.mod_trash').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=trash&sid=' + cookie)
}
});
$(this).closest('tr').remove();
$('.mod_delete').click(function () {
if (confirm('Vraiment supprimer ?')) {
$(this).closest('tr').remove()
}
var tid = $("input[name=tid]:first").val() || ($("a[href*='&tid=']:first").attr("href") || "").replace(/^.*&tid=([a-f0-9]*)?.*$/, "$1");
var fid = location.href.replace(/^.*\/f([0-9]+)[p-].*$/, '$1');
var topic_id = $(this).parent().parent().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"
})
})
$('.mod_rename').click(function () {
var b = $(this);
if (b.data('topictitle')) {
b.closest('td').find('.modiftitle').replaceWith(b.data('topictitle'));
b.removeData('topictitle');
} else {
var title = b.closest('td').find('a.topictitle').first();
var num = title.attr('href').replace(/^\/t([1-9][0-9]*)(p[0-9]+)?-.*$/, "$1")
b.data('topictitle', title.parent().html());
$('<span class="modiftitle"><input type="text" value="' + title.html().replace(/"/g, """) + '" style="width:150px"> <input type="button" value="Mettre à jour" /></span>').replaceAll(title).find('input').last().click(function () {
/* saisie d'une page du sujet */
$.get("/t" + num + "-", 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 */
var nouveau_titre = $('this').parent().find('input').first().val();
$.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent(nouveau_titre) + "$2") + "&post=1", function (c) {
/* test pour voir si ça s'est bien passé */
if (c.indexOf('Message enregistré avec succès') != -1) $(b.data()).replaceAll($(this).parent()).text(nouveau_titre);
})
})
});
});
}
});
});
- Code:
var lock_img = "http://img11.hostingpics.net/pics/689379lock.png";
var unlock_img = "http://img11.hostingpics.net/pics/269944lockunlock.png";
var trash_img = "http://img11.hostingpics.net/pics/781353bin.png";
var delete_img = "http://img11.hostingpics.net/pics/204355cross.png";
var rename_img = "http://i39.tinypic.com/2dkha3p.png";
var cookie = my_getcookie('fa_nara_jdrforum_com_sid');
$(function () {
if ($('#is_allowed:contains("modérer")').length > 0) {
$('.mod_tools').each(function () {
if ($(this).parent().parent().children('.row1').children('img').attr('title').slice(13, 19) == "verrou") {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + unlock_img + '" class="mod_unlock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
} else {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + lock_img + '" class="mod_lock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
}
})
}
$('.mod_unlock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=unlock&sid=' + cookie);
$(this).addClass('mod_lock').removeClass('mod_unlock');
$(this).attr('src', lock_img)
}
});
$('.mod_lock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=lock&sid=' + cookie);
$(this).addClass('mod_unlock').removeClass('mod_lock');
$(this).attr('src', unlock_img)
}
});
$('.mod_trash').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=trash&sid=' + cookie)
}
});
$(this).closest('tr').remove();
$('.mod_delete').click(function () {
if (confirm('Vraiment supprimer ?')) {
$(this).closest('tr').remove()
}
var tid = $("input[name=tid]:first").val() || ($("a[href*='&tid=']:first").attr("href") || "").replace(/^.*&tid=([a-f0-9]*)?.*$/, "$1");
var fid = location.href.replace(/^.*\/f([0-9]+)[p-].*$/, '$1');
var topic_id = $(this).parent().parent().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"
})
})
$('.mod_rename').click(function () {
var titre = $(this).closest('td').find('a.topictitle').first();
var nouveau_titre = prompt('Nouveau titre ?', titre.text());
if (nouveau_titre) {
var num = titre.attr('href').replace(/^\/t([1-9][0-9]*)(p[0-9]+)?-.*$/, "$1")
/* saisie d'une page du sujet */
$.get("/t" + num + "-", 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(nouveau_titre) + "$2") + "&post=1", function (c) {
/* test pour voir si ça s'est bien passé */
if (c.indexOf('Message enregistré avec succès') != -1) titre.text(nouveau_titre);
})
})
});
}
});
});
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Éditer le titre depuis la liste des sujets
Bonjour à tous ^^
Ea > J'ai essayé de mettre en place votre code, mais mes outils de modération ne s'affichent plus.
Mon ancien code (qui marche !) est le suivant :
Si vous avez une idée de ce qu'il faudrait modifier pour que les modérateurs puissent avoir les boutons de modérations au survol d'un topic ainsi que la possibilité de modifier le titre du topic depuis la liste des sujets...
Bonne journée.
Ea > J'ai essayé de mettre en place votre code, mais mes outils de modération ne s'affichent plus.
- Code:
var lock_img = "http://img11.hostingpics.net/pics/689379lock.png";
var unlock_img = "http://img11.hostingpics.net/pics/269944lockunlock.png";
var trash_img = "http://img11.hostingpics.net/pics/781353bin.png";
var delete_img = "http://img11.hostingpics.net/pics/204355cross.png";
var rename_img = "http://i39.tinypic.com/2dkha3p.png";
var cookie = my_getcookie('fa_nara_jdrforum_com_sid');
$(function () {
if ($('#is_allowed:contains("modérer")').length > 0) {
$('.mod_tools').each(function () {
if ($(this).parent().parent().children('.row1').children('img').attr('title').slice(13, 19) == "verrou") {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + unlock_img + '" class="mod_unlock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
} else {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + lock_img + '" class="mod_lock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
}
})
}
$('.mod_unlock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=unlock&sid=' + cookie);
$(this).addClass('mod_lock').removeClass('mod_unlock');
$(this).attr('src', lock_img)
}
});
$('.mod_lock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=lock&sid=' + cookie);
$(this).addClass('mod_unlock').removeClass('mod_lock');
$(this).attr('src', unlock_img)
}
});
$('.mod_trash').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=trash&sid=' + cookie)
}
});
$(this).closest('tr').remove();
$('.mod_delete').click(function () {
if (confirm('Vraiment supprimer ?')) {
$(this).closest('tr').remove()
}
var tid = $("input[name=tid]:first").val() || ($("a[href*='&tid=']:first").attr("href") || "").replace(/^.*&tid=([a-f0-9]*)?.*$/, "$1");
var fid = location.href.replace(/^.*\/f([0-9]+)[p-].*$/, '$1');
var topic_id = $(this).parent().parent().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"
})
})
$('.mod_rename').click(function () {
var b = $(this);
if (b.data('topictitle')) {
b.closest('td').find('.modiftitle').replaceWith(b.data('topictitle'));
b.removeData('topictitle');
} else {
var title = b.closest('td').find('a.topictitle').first();
var num = title.attr('href').replace(/^\/t([1-9][0-9]*)(p[0-9]+)?-.*$/, "$1")
b.data('topictitle', title.parent().html());
$('<span class="modiftitle"><input type="text" value="' + title.html().replace(/"/g, """) + '" style="width:150px"> <input type="button" value="Mettre à jour" /></span>').replaceAll(title).find('input').last().click(function () {
/* saisie d'une page du sujet */
$.get("/t" + num + "-", 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 */
var nouveau_titre = $('this').parent().find('input').first().val();
$.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent(nouveau_titre) + "$2") + "&post=1", function (c) {
/* test pour voir si ça s'est bien passé */
if (c.indexOf('Message enregistré avec succès') != -1) $(b.data()).replaceAll($(this).parent()).text(nouveau_titre);
})
})
});
});
}
});
});
Mon ancien code (qui marche !) est le suivant :
- Code:
/* adresse img modération lock */
var lock_img = "http://2img.net/i/fa/subsilver/topic_lock.gif";
/* adresse img modération unlock */
var unlock_img = "http://2img.net/i/fa/subsilver/topic_unlock.gif";
/* adresse img modération corbeille */
var trash_img = "http://2img.net/i/fa/subsilver/topic_trashcan.gif";
/* adresse img modération supprimer */
var delete_img = "http://2img.net/i/fa/subsilver/topic_delete.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) {
$('.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="'+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="'+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();
}
}
);
}
);
Si vous avez une idée de ce qu'il faudrait modifier pour que les modérateurs puissent avoir les boutons de modérations au survol d'un topic ainsi que la possibilité de modifier le titre du topic depuis la liste des sujets...
Bonne journée.
Zeste- Membre habitué
-
Messages : 1366
Inscrit(e) le : 28/11/2010
Re: Éditer le titre depuis la liste des sujets
@Daylaton, tu pourrais créer ton propre sujet pour cette demande : "avoir les boutons de modérations au survol d'un topic". Ça n’a rien à voir avec le topic en cours…
Arlem et Ea : J’ai essayé vos deux scripts, mais malheureusement, mes outils de modération on disparu. Voilà ce que j’ai (j’ai peut-être fait une boulette quelque part) :
Arlem et Ea : J’ai essayé vos deux scripts, mais malheureusement, mes outils de modération on disparu. Voilà ce que j’ai (j’ai peut-être fait une boulette quelque part) :
- Code:
/* adresse img modération edit */
var edit_img= "http://img11.hostingpics.net/pics/630345documentpencil.png";
/* 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 cookie contenant le sid */
var cookie = my_getcookie('fa_nara_jdrforum_com_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).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/,'$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).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/,'$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).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/,'$1')+'&mode=trash&sid='+cookie);
}
});
/* Clic sur le bouton supprimer */
$(this).closest('tr').remove();
$('.mod_delete').click(function() {
if(confirm('Vraiment supprimer ?')) {
$(this).closest('tr').remove();
}
// 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).parent().parent().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"});
});
$('.edit_topic').click(function() {
/* On cache le titre et on affiche la zone d'édition */
$(this).closest('tr').find('a.topictitle').hide().after('<input type="text" id="new_title" value="'+$(this).closest('tr').find('a.topictitle').html()+'"/><input type="submit" class="edit_title"/>');
}
);
$('.edit_title').live('click', function() {
/* 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) alert('yeah réussi')
}
)
}
)
});
});
});
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Salut Matriochka,
Félicitations pour ta promotion
Je suis avec attention le sujet et je travaille également sur la mise en place de ce type d'outils. Je remercie beaucoup Ea et Arlem pour leurs apports mutuels.
Est-ce que tu peux essayer le script suivant sur ton forum et me dire s'il fonctionne ? Après avoir un test sur mon forum phpbb2, cela fonctionne. J'ai simplement suivi les conseils d'Arlem car les deux scripts donnés par Ea conduisent (en effet) à la suppression des outils. Par contre, j'attends avec impatience qu'Arlem nous affiche le titre après le "Yeah réussi"
Bien cordialement,
Xoumi.
Félicitations pour ta promotion
Je suis avec attention le sujet et je travaille également sur la mise en place de ce type d'outils. Je remercie beaucoup Ea et Arlem pour leurs apports mutuels.
Est-ce que tu peux essayer le script suivant sur ton forum et me dire s'il fonctionne ? Après avoir un test sur mon forum phpbb2, cela fonctionne. J'ai simplement suivi les conseils d'Arlem car les deux scripts donnés par Ea conduisent (en effet) à la suppression des outils. Par contre, j'attends avec impatience qu'Arlem nous affiche le titre après le "Yeah réussi"
- Code:
/* adresse img modération edit */
var edit_img= "http://img11.hostingpics.net/pics/630345documentpencil.png";
/* 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 cookie contenant le sid */
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) {
$('.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 ? Si vous n'êtes pas un Administrateur, merci de ne pas effectuer cette action sans accord préalable.")) {
// 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();
}
}
);
$('.edit_topic').click(function() {
/* On cache le titre et on affiche la zone d'édition */
$(this).closest('tr').find('a.topictitle').hide().after('<input type="text" id="new_title" value="'+$(this).closest('tr').find('a.topictitle').html()+'"/><input type="submit" class="edit_title"/>');
}
);
$('.edit_title').live('click', function() {
/* 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) alert('yeah réussi')
}
)
}
)
});
});
});
Bien cordialement,
Xoumi.
Bipo- Rédactif
- Messages : 3769
Inscrit(e) le : 23/09/2010
Re: Éditer le titre depuis la liste des sujets
Hello Xoumi
Merci de t’intéresser au problème. Hélas, je ne sais pas ce qu’il passe de mon côté, mais même avec le script que tu me donnes ici, mes outils se font la malle… Décidément ! Je ne comprends pas trop ce qui bug avec mon forum… :no
Merci de t’intéresser au problème. Hélas, je ne sais pas ce qu’il passe de mon côté, mais même avec le script que tu me donnes ici, mes outils se font la malle… Décidément ! Je ne comprends pas trop ce qui bug avec mon forum… :no
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Hop là, je remonte
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Les deux scripts que j'ai donné devraient fonctionner sur le forum http://nara.jdrforum.com/ si :Matriochka a écrit:Arlem et Ea : J’ai essayé vos deux scripts, mais malheureusement, mes outils de modération on disparu. Voilà ce que j’ai (j’ai peut-être fait une boulette quelque part) :(Là, en suivant les indications données par Arlem, mais même chose avec le script donné par Ea)
- Code:
...
- Code:
<a name="{postrow.displayed.U_POST_ID}"></a>
( autrement il faudrait changer le script pour qu'il prenne l'identifiant du premier post par le bouton de citation ou édition )
Cordialement.
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Éditer le titre depuis la liste des sujets
Merci Ea, j’ai bien remis la ligne dans mon template (comprends pas pourquoi elle n’y était plus, d’ailleurs)… mais je n’arrive toujours pas à faire apparaître les outils de modération. Je ne comprends pas du tout ce qui bloque avec mon forum :no
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Dans le http://nara.jdrforum.com/99813.js présent, il y a un ; qui manque après :
- Code:
tid:tid,mode:"delete",confirm:"1"})})
- Code:
var num=title.attr('href').replace(/^\/t([1-9][0-9]*)(p[0-9]+)?-.*$/,"$1")
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Éditer le titre depuis la liste des sujets
Ah, bien vu ! Nickel, j’ai mes outils qui s’affichent et le nouveau bouton pour renommer, ça prend forme cette affaire
J’ai testé le bouton, donc quand je clique, ça me met bien le champ de saisie et le bouton pour valider, mais quand je teste le renommage :
1 - le bouton "mettre à jour" n’a pas d’effet,
2 - quand j’actualise après avoir testé, ça remplace mon titre par la mention "undefined"
J’ai testé le bouton, donc quand je clique, ça me met bien le champ de saisie et le bouton pour valider, mais quand je teste le renommage :
1 - le bouton "mettre à jour" n’a pas d’effet,
2 - quand j’actualise après avoir testé, ça remplace mon titre par la mention "undefined"
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Yop (coucou Xoumi :3) !
Alors pour ceux qui utilisent le code que j'ai donné plus haut, après :
Pour les flemmards, le code complet :
Alors pour ceux qui utilisent le code que j'ai donné plus haut, après :
- Code:
$('.edit_title').live('click', function() {
- Code:
var temp = $(this);
- Code:
if(c.indexOf('Message enregistré avec succès')!=-1) alert('yeah réussi')
- Code:
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();
}
Pour les flemmards, le code complet :
- Spoiler:
- Code:
/* adresse img modération edit */
var edit_img= "http://2img.net/i/fa/prosilver/icon_user_profile.png";
/* adresse img modération lock */
var lock_img = "http://2img.net/i/fa/subsilver/topic_lock.gif";
/* adresse img modération unlock */
var unlock_img = "http://2img.net/i/fa/subsilver/topic_unlock.gif";
/* adresse img modération corbeille */
var trash_img = "http://2img.net/i/fa/subsilver/topic_trashcan.gif";
/* adresse img modération supprimer */
var delete_img = "http://2img.net/i/fa/subsilver/topic_delete.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) {
$('.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);
/* 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.closest('tr').find('a.topictitle').show().text($('#new_title').val());
temp.parent().find('#new_title').hide();
temp.parent().find('.edit_title').hide();
}
}
)
}
)
});
});
});
Dernière édition par Arlem le Sam 9 Fév 2013 - 16:51, édité 1 fois
Arlem- Membre actif
- Messages : 2550
Inscrit(e) le : 30/06/2009
Re: Éditer le titre depuis la liste des sujets
Coucou Arlem,
Tout fonctionne implacablement chez moi !
Merci à Matriochka pour avoir initié ce sujet ! Cependant, je ne comprends pas pourquoi le code d'Arlem ne fonctionne pas chez elle
Edit : Par contre, pour le titre en couleur, j'ai un bug chez moi
Tout fonctionne implacablement chez moi !
Merci à Matriochka pour avoir initié ce sujet ! Cependant, je ne comprends pas pourquoi le code d'Arlem ne fonctionne pas chez elle
Edit : Par contre, pour le titre en couleur, j'ai un bug chez moi
Dernière édition par Xoumi le Sam 9 Fév 2013 - 16:43, édité 1 fois
Bipo- Rédactif
- Messages : 3769
Inscrit(e) le : 23/09/2010
Re: Éditer le titre depuis la liste des sujets
Maintenant qu'elle a remis les points virgules à leur place mon script devrait fonctionner également, vu qu'il fonctionne également chez toi y'a plus de raison.
Edit : Je vais tester pour le titre en couleur.
Edit2 : Effectivement, je n'avais pas prévu la possibilité qu'il y ait du html dans le titre du sujet, du coup, ici :
Edit : Je vais tester pour le titre en couleur.
Edit2 : Effectivement, je n'avais pas prévu la possibilité qu'il y ait du html dans le titre du sujet, du coup, ici :
- Code:
$('.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').html()+'"/><input type="submit" class="edit_title"/>');
}
);
Arlem- Membre actif
- Messages : 2550
Inscrit(e) le : 30/06/2009
Re: Éditer le titre depuis la liste des sujets
Hrrrmmmm… J’ai essayé de mettre ton nouveau script (celui donné ici), Arlem, mais rien à faire, il ne veut pas fonctionner chez moi…
Est-ce qu’il y a quelques chose de particulier à faire dans mon template ou quoi ?
Parce qu’avec celui de Ea, ici, je n’ai aucun problème (mais à partir de celui-ci, je ne sais pas comment modifier, après) :
Arf, décidément ! C’est moi l’auteure du topic et c’est moi qui ai le plus de problème
Est-ce qu’il y a quelques chose de particulier à faire dans mon template ou quoi ?
- Code:
<!-- BEGIN topics_list_box --><!-- BEGIN row --><!-- BEGIN header_table --><!-- BEGIN multi_selection -->
<script type="text/javascript">
function check_uncheck_main_{topics_list_box.row.header_table.BOX_ID}() {
var all_checked = true;
for (i = 0; (i < document.{topics_list_box.FORMNAME}.elements.length) && all_checked; i++) {
if (document.{topics_list_box.FORMNAME}.elements[i].name == '{topics_list_box.FIELDNAME}[]{topics_list_box.row.header_table.BOX_ID}') {
all_checked = document.{topics_list_box.FORMNAME}.elements[i].checked;
}
}
document.{topics_list_box.FORMNAME}.all_mark_{topics_list_box.row.header_table.BOX_ID}.checked = all_checked;
}
function check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}() {
for (i = 0; i < document.{topics_list_box.FORMNAME}.length; i++) {
if (document.{topics_list_box.FORMNAME}.elements[i].name == '{topics_list_box.FIELDNAME}[]{topics_list_box.row.header_table.BOX_ID}') {
document.{topics_list_box.FORMNAME}.elements[i].checked = document.{topics_list_box.FORMNAME}.all_mark_{topics_list_box.row.header_table.BOX_ID}.checked;
}
}
}
</script>
<!-- END multi_selection -->
<table class="forumline" width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<th colspan="{topics_list_box.row.header_table.COLSPAN}" align="center" nowrap="nowrap"> {topics_list_box.row.L_TITLE} </th>
<th align="center" nowrap="nowrap" width="80"> {topics_list_box.row.L_REPLIES} </th>
<th align="center" nowrap="nowrap" width="100"> {topics_list_box.row.L_AUTHOR} </th>
<th align="center" nowrap="nowrap" width="50"> {topics_list_box.row.L_VIEWS} </th>
<th align="center" nowrap="nowrap" width="150"> {topics_list_box.row.L_LASTPOST} </th>
<!-- BEGIN multi_selection -->
<th align="center" nowrap="nowrap" width="20"><input onclick="check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}();" type="checkbox" name="all_mark_{topics_list_box.row.header_table.BOX_ID}" value="0" /></th>
<!-- END multi_selection -->
</tr>
<!-- BEGIN pagination -->
<tr>
<td class="row1" colspan="7" align="right"><span class="gensmall">{PAGINATION}</span></td>
</tr>
<!-- END pagination -->
<!-- END header_table --><!-- BEGIN header_row -->
<tr>
<td class="row3" colspan="{topics_list_box.row.COLSPAN}"><span class="gensmall"> <b>{topics_list_box.row.L_TITLE}</b></span></td>
</tr>
<!-- END header_row -->
<!-- BEGIN topic -->
{topics_list_box.row.END_TABLE_STICKY}
<tr>
<!-- BEGIN single_selection -->
<td class="{topics_list_box.row.ROW_CLASS}" align="center" valign="middle" width="20"><input type="radio" name="{topics_list_box.FIELDNAME}" value="{topics_list_box.row.FID}" {topics_list_box.row.L_SELECT} /></td>
<!-- END single_selection -->
<td class="{topics_list_box.row.ROW_FOLDER_CLASS}" align="center" valign="middle" width="20"><img title="{topics_list_box.row.L_TOPIC_FOLDER_ALT}" src="{topics_list_box.row.TOPIC_FOLDER_IMG}" alt="{topics_list_box.row.L_TOPIC_FOLDER_ALT}" /></td>
<!-- BEGIN icon -->
<td class="{topics_list_box.row.ROW_CLASS}" align="center" valign="middle" width="20">{topics_list_box.row.ICON}</td>
<!-- END icon -->
<td class="{topics_list_box.row.ROW_CLASS}" onmouseover='this.className="row2"' onmouseout='this.className="{topics_list_box.row.ROW_CLASS}"' width="100%">
<div class="topictitle">
{topics_list_box.row.NEWEST_POST_IMG}{topics_list_box.row.PARTICIPATE_POST_IMG}{topics_list_box.row.TOPIC_TYPE}
<h2 class="topic-title">
<a class="topictitle" href="{topics_list_box.row.U_VIEW_TOPIC}">{topics_list_box.row.TOPIC_TITLE}</a>
</h2>
</div>
<div class="mod_tools"></div>
<!-- BEGIN switch_description -->
<span class="genmed">
<br />
{topics_list_box.row.topic.switch_description.TOPIC_DESCRIPTION}
</span>
<!-- END switch_description -->
<span class="gensmall">{topics_list_box.row.TOPIC_ANNOUNCES_DATES}{topics_list_box.row.TOPIC_CALENDAR_DATES}</span>
<span class="gensmall">{topics_list_box.row.GOTO_PAGE}<!-- BEGIN nav_tree -->{topics_list_box.row.TOPIC_NAV_TREE} <!-- END nav_tree --></span>
</td>
<td class="row2" align="center" valign="middle"><span class="postdetails">{topics_list_box.row.REPLIES}</span></td>
<td class="row3" align="center" valign="middle"><span class="name"><strong>{topics_list_box.row.TOPIC_AUTHOR}</strong></span></td>
<td class="row2" align="center" valign="middle"><span class="postdetails">{topics_list_box.row.VIEWS}</span></td>
<td class="row3Right" onmouseover='this.className="row1"' onmouseout='this.className="row3Right"' align="center" valign="middle" nowrap="nowrap"><span class="postdetails">{topics_list_box.row.LAST_POST_TIME}<br />{topics_list_box.row.LAST_POST_AUTHOR} {topics_list_box.row.LAST_POST_IMG}</span></td>
<!-- BEGIN multi_selection -->
<td class="row2" align="center" valign="middle"><span class="postdetails"><input onclick="javascript:check_uncheck_main_{topics_list_box.row.BOX_ID}();" type="checkbox" name="{topics_list_box.FIELDNAME}[]{topics_list_box.row.BOX_ID}" value="{topics_list_box.row.FID}" {topics_list_box.row.L_SELECT} /></span></td>
<!-- END multi_selection -->
</tr>
<!-- END topic --><!-- BEGIN no_topics -->
<tr>
<td class="row1" colspan="{topics_list_box.row.COLSPAN}" align="center" valign="middle" height="30"><span class="gen">{topics_list_box.row.L_NO_TOPICS}</span></td>
</tr>
<!-- END no_topics --><!-- BEGIN bottom -->
<tr>
<td class="catBottom" colspan="{topics_list_box.row.COLSPAN}" valign="middle">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <span class="gensmall">{PAGINATION}</span></td>
<td align="right"><a href="#top">{L_BACK_TO_TOP}</a> </td>
</tr>
</table>
</td>
</tr>
<!-- END bottom --><!-- BEGIN footer_table -->
</table><!-- END footer_table --><!-- BEGIN spacer --><br class="gensmall" /><!-- END spacer --><!-- END row --><!-- END topics_list_box -->
Parce qu’avec celui de Ea, ici, je n’ai aucun problème (mais à partir de celui-ci, je ne sais pas comment modifier, après) :
- Code:
var lock_img = "http://img11.hostingpics.net/pics/689379lock.png";
var unlock_img = "http://img11.hostingpics.net/pics/269944lockunlock.png";
var trash_img = "http://img11.hostingpics.net/pics/781353bin.png";
var delete_img = "http://img11.hostingpics.net/pics/204355cross.png";
var rename_img = "http://img11.hostingpics.net/pics/630345documentpencil.png";
var cookie = my_getcookie('fa_nara_jdrforum_com_sid');
$(function () {
if ($('#is_allowed:contains("modérer")').length > 0) {
$('.mod_tools').each(function () {
if ($(this).parent().parent().children('.row1').children('img').attr('title').slice(13, 19) == "verrou") {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + unlock_img + '" class="mod_unlock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
} else {
$(this).append('<img src="' + rename_img + '" class="mod_rename"/><img src="' + lock_img + '" class="mod_lock"/><img src="' + trash_img + '" class="mod_trash"/><img src="' + delete_img + '" class="mod_delete"/>')
}
})
}
$('.mod_unlock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=unlock&sid=' + cookie);
$(this).addClass('mod_lock').removeClass('mod_unlock');
$(this).attr('src', lock_img)
}
});
$('.mod_lock').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=lock&sid=' + cookie);
$(this).addClass('mod_unlock').removeClass('mod_lock');
$(this).attr('src', unlock_img)
}
});
$('.mod_trash').click(function () {
if (confirm("Êtes-vous sûr ?")) {
$.get('/modcp.forum?t=' + $(this).parent().parent().find('a.topictitle').attr('href').replace(/^\/t([1-9][0-9]).*$/, '$1') + '&mode=trash&sid=' + cookie)
}
});
$(this).closest('tr').remove();
$('.mod_delete').click(function () {
if (confirm('Vraiment supprimer ?')) {
$(this).closest('tr').remove()
}
var tid = $("input[name=tid]:first").val() || ($("a[href*='&tid=']:first").attr("href") || "").replace(/^.*&tid=([a-f0-9]*)?.*$/, "$1");
var fid = location.href.replace(/^.*\/f([0-9]+)[p-].*$/, '$1');
var topic_id = $(this).parent().parent().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"
})
});
$('.mod_rename').click(function () {
var b = $(this);
if (b.data('topictitle')) {
b.closest('td').find('.modiftitle').replaceWith(b.data('topictitle'));
b.removeData('topictitle');
} else {
var title = b.closest('td').find('a.topictitle').first();
var num = title.attr('href').replace(/^\/t([1-9][0-9]*)(p[0-9]+)?-.*$/, "$1");
b.data('topictitle', title.parent().html());
$('<span class="modiftitle"><input type="text" value="' + title.html().replace(/"/g, """) + '" style="width:150px"> <input type="button" value="OK" /></span>').replaceAll(title).find('input').last().click(function () {
/* saisie d'une page du sujet */
$.get("/t" + num + "-", 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 */
var nouveau_titre = $('this').parent().find('input').first().val();
$.post("/post", $('form[name="post"]', c).serialize().replace(/(^|&)subject=[^&]+(&|$)/, "$1subject=" + encodeURIComponent(nouveau_titre) + "$2") + "&post=1", function (c) {
/* test pour voir si ça s'est bien passé */
if (c.indexOf('Message enregistré avec succès') != -1) $(b.data()).replaceAll($(this).parent()).text(nouveau_titre);
})
})
});
});
}
});
});
Arf, décidément ! C’est moi l’auteure du topic et c’est moi qui ai le plus de problème
Matriochka- Membre actif
- Messages : 7604
Inscrit(e) le : 14/07/2010
Re: Éditer le titre depuis la liste des sujets
Apparemment tu n'as pas pris en compte les dernières modifications qu'on avait donné ici.
Le plus simple, ou du moins plus facile que de chercher d'où viennent les erreurs de compatibilité entre les différents scripts postés, c'est de reprendre au début en faisant les modifications données ici puis en récupérant le script JS donné ici (en modifiant juste l'url des icones des boutons).
Je viens de refaire la démarche de A à Z chez moi et ça fonctionne, normalement y'a pas de raisons que ça plante chez toi... mais on est jamais à l'abri d'une surprise !
Le plus simple, ou du moins plus facile que de chercher d'où viennent les erreurs de compatibilité entre les différents scripts postés, c'est de reprendre au début en faisant les modifications données ici puis en récupérant le script JS donné ici (en modifiant juste l'url des icones des boutons).
Je viens de refaire la démarche de A à Z chez moi et ça fonctionne, normalement y'a pas de raisons que ça plante chez toi... mais on est jamais à l'abri d'une surprise !
Arlem- Membre actif
- Messages : 2550
Inscrit(e) le : 30/06/2009
Page 1 sur 2 • 1, 2
Sujets similaires
» Outils de modération depuis la liste des sujets
» Edition des icônes depuis la liste des sujets
» Impossibilité de verrouiller ou déverrouillé les sujets (via outils de modération sur la liste de sujets)
» Outils de modération depuis la liste des sujets pour forum phpBB3
» couleur titre forum dans la liste des sujets
» Edition des icônes depuis la liste des sujets
» Impossibilité de verrouiller ou déverrouillé les sujets (via outils de modération sur la liste de sujets)
» Outils de modération depuis la liste des sujets pour forum phpBB3
» couleur titre forum dans la liste des sujets
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum