AccueilDernières imagesRechercherS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.

-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

    [Nihil] Bouton qui édite le texte d'un topic

    Asmolet
    Asmolet
    MasculinAge : 43Messages : 7

    Jeu 16 Fév 2017 - 16:50

    Bonjour à tous,

    J'utilise actuellement sur mon forum (http://theforgotten.forumactif.org) un bouton qui, lorsqu'il est cliqué, ajoute un message prédéfinis à la suite du sujet dans lequel il se trouve.

    En image :
    [Nihil] Bouton qui édite le texte d'un topic Bouton10

    Voici le script utilisé :
    Code:
    $(function() {
      if($('a.nav[href^="/f38-"]').length) {
        var version = "Erreur critique : le script n\'est pas parvenu à déterminer votre version de forum";
    if ( $("table.bodylinewidth").length ) {
        var version = "phpbb2";
    }
    if ( $("div#wrap").length ) {
        var version = "phpbb3";
    }
    if ( $("div.pun").length ) {
        var version = "punbb";
    }
    if ( $("div#ipbwrapper").length ) {
        var version = "invision";
    }
            var url_img = "http://theforgotten.forumactif.org/users/3612/25/46/74/album/inscri10.png"; //image à afficher
           var message = ":dispo:"; //message à publier
                switch (version) {
                    case 'phpbb2':
                    var idi = '.post-options';
                    var addLi = closeLi = '';
                    break;
                    case 'phpbb3':
                    var idi = '.profile-icons';
                    var addLi = '<li>';
                  var closeLi = '</li>';
                    break;
                    case 'punbb':
                    var idi = '.post-options';
                    var addLi = closeLi = '';
                    break;
                    case 'invision':
                    var idi = '.posting-icons';
                    var addLi = '<li>';
                  var closeLi = '</li>';
                    break;
                }
                $(idi).first().prepend(addLi+'<img src="'+url_img+'" alt="Je participe" id="coming" />'+closeLi);
                $('#coming').click(function() {
                    $('#quick_reply textarea').val(message);
                    $('input[name="post"]').click();
                });
        };
    });

    J'aimerai que ce script soit modifié pour que lorsqu'on clique sur le bouton, le 1er topic (celui en photo) soit mis à jour avec le user de la personne qui clique dessus.

    Ex : Si c'est moi qui clique, en dessous de "1. Cremoflan", j'aurai "2. Asmolet", etc...

    Merci d'avance.


    Dernière édition par Asmolet le Mer 22 Fév 2017 - 13:47, édité 1 fois
    Nihil Scar Winspeare
    Nihil Scar Winspeare
    Messages : 5244

    Ven 17 Fév 2017 - 11:26

    Coucou Asmolet o/

    Si j'ai bien compris, tu veux que quand on poste un nouveau message ça édite aussi le premier message ?
    Je n'ai jamais essayé mais je pense que c'est possible ^___^... Par contre dans ce cas là il faut que les membres aient les droits de modération dans cette section (pour pouvoir éditer le message)

    Je pense à d'autres solutions possibles :
    - on dit au navigateur "récupère les pseudos de toutes les personnes qui ont postés qu'ils veulent participer dans le sujet et ajoute les dans le premier message"
    Cela sera seulement visible par les personnes qui regardent, en éditant le message on ne pourra pas voir la liste mise à jour automatiquement.
    C'est faisable mais ça devient vite un peu plus embêtant à coder quand il y a plusieurs pages :/

    - quand un membre édite le message avec la liste, on peut avoir en dessous un bloc avec la liste des personnes qui ont posté qu'ils veulent participer, plus qu'à la copier / coller

    Asmolet
    Asmolet
    MasculinAge : 43Messages : 7

    Ven 17 Fév 2017 - 12:35

    Salut Nihil Very Happy et merci pour ta réponse cheers

    Nihil Scar Winspeare a écrit:
    Si j'ai bien compris, tu veux que quand on poste un nouveau message ça édite aussi le premier message ?
    Je n'ai jamais essayé mais je pense que c'est possible ^___^...

    Pas tout à fait, en fait j'aimerai que lorsqu'on clique, seul le 1er message soit mis à jour, pas besoin de poster de nouveau message.

    Nihil Scar Winspeare a écrit:
    Par contre dans ce cas là il faut que les membres aient les droits de modération dans cette section (pour pouvoir éditer le message)

    Vu que c'est un forum privée et que c'est une sous partie bien précise, les droits modérateur sont donnés à tous les membres.


    Nihil Scar Winspeare a écrit:Je pense à d'autres solutions possibles :
    - on dit au navigateur "récupère les pseudos de toutes les personnes qui ont postés qu'ils veulent participer dans le sujet et ajoute les dans le premier message"
    Cela sera seulement visible par les personnes qui regardent, en éditant le message on ne pourra pas voir la liste mise à jour automatiquement.
    C'est faisable mais ça devient vite un peu plus embêtant à coder quand il y a plusieurs pages :/

    - quand un membre édite le message avec la liste, on peut avoir en dessous un bloc avec la liste des personnes qui ont posté qu'ils veulent participer, plus qu'à la copier / coller

    Pourquoi pas, faut voir si c'est pas trop compliqué à mettre en place Very Happy
    Je cherche juste une solution simple.
    Nihil Scar Winspeare
    Nihil Scar Winspeare
    Messages : 5244

    Lun 20 Fév 2017 - 14:15

    Merci pour les précisions, si le droit de modération est donnée à tous dans cette section, ça enlève le problème, pas besoin de chercher une solution alternative :)
    Je pense voir comment faire une version simple, je me lance donc !

    edit : Pour l'instant la version simple qui rajoute juste le pseudo à la fin fonctionne, j'ai plus qu'à voir pour gérer simplement la liste (le fait de pouvoir avoir le 1. 2. grâce à une liste bbcode)

    Asmolet
    Asmolet
    MasculinAge : 43Messages : 7

    Lun 20 Fév 2017 - 14:46

    Parfait, j'ai hâte de voir ce que ça donne tongue
    Nihil Scar Winspeare
    Nihil Scar Winspeare
    Messages : 5244

    Mar 21 Fév 2017 - 22:22

    Ca fonctionne bien sur mon forum test, j'espère que ça ira pour toi aussi ^^

    Voici le code javascript à mettre à la place de l'ancien :
    Code:
    $(function() {
      if($('a.nav[href^="/f38-"]').length) {
        var version = "Erreur critique : le script n\'est pas parvenu à déterminer votre version de forum";
    if ( $("table.bodylinewidth").length ) {
        var version = "phpbb2";
    }
    if ( $("div#wrap").length ) {
        var version = "phpbb3";
    }
    if ( $("div.pun").length ) {
        var version = "punbb";
    }
    if ( $("div#ipbwrapper").length ) {
        var version = "invision";
    }
            var url_img = "http://theforgotten.forumactif.org/users/3612/25/46/74/album/inscri10.png"; //image à afficher
                switch (version) {
                    case 'phpbb2':
                    var idi = '.post-options';
                    var addLi = closeLi = '';
                    break;
                    case 'phpbb3':
                    var idi = '.profile-icons';
                    var addLi = '<li>';
                  var closeLi = '</li>';
                    break;
                    case 'punbb':
                    var idi = '.post-options';
                    var addLi = closeLi = '';
                    break;
                    case 'invision':
                    var idi = '.posting-icons';
                    var addLi = '<li>';
                  var closeLi = '</li>';
                    break;
                }
                $(idi).first().prepend(addLi+'<img src="'+url_img+'" alt="Je participe" id="coming" />'+closeLi);
                $('#coming').click(function() {
                    var urlPremierPost = $('a[href$="&mode=editpost"]').first().attr('href');
                    addNewMessage(urlPremierPost);
                });
        };
    });
    function addNewMessage(url) {
        if (!url) return;
        $.get(url, function(data) {
            var $form = $(data).find('form[action="/post"]');
            var oldVar =
                $form.find('#text_editor_textarea').val(function(index, oldText) {
                    var lignePseudo = '[*]' + _userdata.username;
                    if (oldText.indexOf('[list=1]') > -1) {
                        var coupure = oldText.lastIndexOf('[/list]');
                        return oldText.slice(0, coupure) + lignePseudo + oldText.slice(coupure);
                    } else {
                        return oldText + '\n' + '[list=1]' + lignePseudo + '[/list]';
                    }
                })
            $form.appendTo('body').hide();
            $form.find('input[name="post"]').click();
        })
    }

    Pense à bien activer le rappel du premier message :
    Vous allez dans PA > Général > Messages et emails > Configuration > Toujours afficher le premier message dans les sujets > Oui.

    Pourquoi ? En fait le code va utiliser sur le premier bouton "Editer" que l'utilisateur peut voir sur la page, du coup pour être sûrs d'éditer le bon message (même s'il y a plusieurs pages), c'est mieux d'être sur que le premier message soit toujours le bon Wink

    Si ça ne fonctionne pas, as-tu un compte de test sur ton forum pour que je puisse regarder en me connectant directement dans le forum en question ?

    Asmolet
    Asmolet
    MasculinAge : 43Messages : 7

    Mer 22 Fév 2017 - 9:16

    Salut Nihil,

    Tout d'abord merci beaucoup pour le temps que tu as investi.

    Je viens de tester et j'ai un soucis, le bouton n’apparaît plus...

    Je t'ai créé un compte de test, je te l'envoie par mp.


    Nihil Scar Winspeare
    Nihil Scar Winspeare
    Messages : 5244

    Mer 22 Fév 2017 - 10:15

    Je suis bête, il me manquait un point virgule ligne 57 u-u

    Le nouveau code au complet (j'ai juste rajouté un point virgule ligne 57) :
    Spoiler:

    Normalement ça devrait être bon là, désolée encore >-< :hudada:

    Asmolet
    Asmolet
    MasculinAge : 43Messages : 7

    Mer 22 Fév 2017 - 10:24

    Nickel, merci ! Pour l'instant ça a l'air de marcher, je te fais un retour définitif dès que possible Wink
    Asmolet
    Asmolet
    MasculinAge : 43Messages : 7

    Mer 22 Fév 2017 - 13:45

    Je te confirme, ça marche nickel, c'est top cheers

    Merci beaucoup !!!
    Contenu sponsorisé


      La date/heure actuelle est Jeu 2 Mai 2024 - 6:47