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.

Le deal à ne pas rater :
ETB Pokémon Fable Nébuleuse : où acheter le coffret dresseur ...
Voir le deal

    Sauvegarde des messages en cours

    Manumanu
    Manumanu
    MasculinAge : 36Messages : 71

    Mer 3 Sep 2014 - 0:38

    Rappel du premier message :

    Sauvegarde des messages en cours de rédaction



    Qui n'a jamais hurlé de rage et saisi violemment son clavier pour battre à mort un innocent qui passait par là, lorsqu'un message de trouzmille cinq cent quatre lignes que vous étiez en train de rédiger est perdu à tout jamais parce que :
    • Le forum plante bêtement au moment de l'envoi
    • Votre navigateur se ferme sans explication (ni coups de semonce)
    • Vous rechargez la page malencontreusement, ou revenez sur la précédente


    Disons-le clairement : C'est chiant, et ça vous donne envie de retourner des bébés phoques comme de vulgaires chaussettes qui traîneraient dans votre panier à linge depuis deux mois.

    On connaît, on connaît. Et sinon, à part nous rappeler ces moments de douleur que l'on aimerait chasser de notre vie, tu voulais nous dire quoi ?


    Hé bien mes bons, j'ai la solution !
    Vous allez pouvoir écrire votre message en prenant autant de temps que vous le voulez. Vous allez pouvoir planter, fermer votre navigateur, redémarrer votre pc, puis revenir onze jours plus tard et retrouver votre message qui vous attendait sagement, à la virgule près. Le tout en permettant aux fondateurs de forums de quand même personnaliser leurs templates sans se soucier de la compatibilité de diverses classes.

    Toi, lecteur a écrit:"Nom de dieu Manu, tu nous vends du rêve par transpalettes de 12 là !"

    Je sais, et la cerise sur le McParfait, c'est que ça tient en un seul petit script très facile à intégrer. Passons donc à la pratique.

    Comment ça marche ?


    D'un point de vue utilisateur, c'est très simple : Celui-ci écrit tranquillement son message, et tout est normal. Si pour une raison ou une autre il doit revenir sur cette page sans avoir fini son message, un bouton apparaît entre "Prévisualiser" et "Envoyer".


    Sauvegarde des messages en cours - Page 2 Exemple1-477058a

    Un petit clic sur ce dernier remplis le champ de texte avec le message sauvegardé en l'état.

    Dans certains cas (par exemple, revenir sur la page du message en cliquant sur le bouton "page suivante" du navigateur, le chargement est un peu altéré et le bouton est inactif. Il suffit de recharger à nouveau la page de post et tout fonctionne.

    Attention toutefois : Dans le cas d'une édition, appuyer sur le bouton remplacera le contenu actuel du champ d'écrituer en totalité.

    Cela ne fonctionne pour l'instant qu'en cas de réponse à un sujet existant, pas à la création d'un nouveau sujet.



    Comment l'installer


    1. Il suffit d'aller dans votre espace d'administration, Modules → HTML & Javascript → Gestion des codes Javascript.

    2. Assurez-vous que "Activer la gestion des codes Javascript" est bien actif, puis cliquez sur "Créer un nouveau javascript".

    3. Dans la nouvelle fenêtre, copiez-collez simplement ce code, tel quel :

      Code:
      ;var messageSaver=function(r){var u=function(e,a,t,r){var n=localStorage.getItem(t);if("undefined"==n)return!1;var o=JSON.parse(n);return o.userID===e&&o.topicURL===r&&""===a};return{init:function(){var n=window.location.host,o=_userdata.user_id,s=function(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var a=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(window.location.href),t=r("#text_editor_textarea").siblings('input[name="'+e+'"]').val();return null===a?t:a[1]}("t"),e=r('form[action="/post"]'),a=e.find('input[name="post"]'),i=r("#text_editor_textarea").sceditor("instance");i.bind("keyup",function(){var e,a,t,r;e=o,a=i.val(),t=n,r={userID:e,topicURL:s,message:a},localStorage.setItem(t,JSON.stringify(r))}),localStorage.getItem(n)&&a.before('<input type="button" class="mainoption btn-loader" id="ms-loader" value="Charger le message sauvegardé" />  '),e.on("click","#ms-loader",function(){!function(e,a,t,r){var n=localStorage.getItem(t);if("undefined"!=n){var o=JSON.parse(n);u(e,a.val(),t,r)?a.val(o.message):alert("Erreur 1: La vérification du message enregistré a échoué.")}else alert("Erreur 2: Il n’y a aucun message sauvegardé.")}(o,i,n,s)})}}}(jQuery);$(window).load(function(){"undefined"==typeof _userdata?console.log('L’objet "_userdata" de forumactif n’a pas été trouvé. Le script de sauvegarde des messages en cours d’écriture ne peut pas fonctionner.'):messageSaver.init()});

    4. Cochez bien la case "Toutes les pages"
    5. Validez


    Et c'est tout !

    Notez cependant que le bouton possède une classe btn-loader que vous pouvez utiliser pour, par exemple, rendre le bouton plus visible via le CSS.

    Exemple :

    Code:
    .btn-loader {
       background: #a00000;
       color: #fff;
       text-shadow: 1px 0 0 rgba(0,0,0,.2)
    }

    Une note sur la compatibilité



    Ce script est prévu pour fonctionner sur tous les navigateurs principaux (Internet Explorer à partir de la version 8, Chrome, Firefox, Opera et Safari).

    Cependant, il ne fonctionne pour l'instant que sur un forum phpBB2 (et éventuellement Invision, mais il faut que je teste).


    Évolutions



    À terme, je voudrais évidemment rendre ce script compatible avec phpBB3 (et Invision s'il le faut).

    Je songe aussi à ajouter de nouvelles fonctionnalités :
    • Sauvegarde possible sur plusieurs sujets différents
    • Sauvegarde du titre et contenu en cas de nouveau sujet

    Si vous avez d'autres fonctionnalités en tête, faites-le moi savoir.

    Si vous êtes développeur JS et que vous souhaitez voir le code pour l'adapter à vos besoin ou travailler dessus et proposer des ajouts ou autres améliorations, vous pouvez accéder au [url="https://github.com/emmanuelbeziat/forumactif-messageSaver"]projet GitHub[/url].

    Enjoy !

    Mises à jour


    • [20/01/2015] → Fonctionne maintenant avec les formulaires de réponse rapide.
    • [08/09/2014] v1.1 → Fonctionne maintenant en mode d'écriture classique ou dynamique.


    Mettre un crédit vers Never-Utopia est obligatoire. Retirer un crédit est interdit.
    Si vous avez des problèmes avec ce LS, venez poster ici.
    Merci de laisser un message pour donner vos impressions, commentaires et/ou remerciements ^^


    Dernière édition par Manumanu le Jeu 14 Mar 2019 - 23:17, édité 5 fois



    Eh.
    Kya-chan
    Kya-chan
    FémininAge : 28Messages : 160

    Ven 6 Mai 2016 - 20:49

    Oh... Quelle invention magnifique °_°
    Merciiiiiii !!!




    If I had a hammer...
    I wanna do bad things with you~

    Lughnassadh
    Lughnassadh
    FémininAge : 33Messages : 27

    Jeu 15 Sep 2016 - 16:21

    Merveilleux ! Merci *___*
    avatar
    fascicularia
    MasculinAge : 56Messages : 189

    Ven 16 Sep 2016 - 21:08

    Bonjour,
    je viens de tester et cela fonctionne à merveille.
    avatar
    fascicularia
    MasculinAge : 56Messages : 189

    Ven 16 Sep 2016 - 22:03

    Troisiéme message. Désolé le mode édition tant absent, je n'ai nul autre moyen de donner l'info.

    1 le bouton apparait sur n'importe quel sujet. Ne serait -il pas possible de le faire apparaitre que sur le sujet concerné ?
    2 l'erreur 1 s'affiche systématiquement alors que le message a bien été récupéré.

    Luirio
    Luirio
    MasculinAge : 33Messages : 171

    Ven 18 Nov 2016 - 14:36

    J'ai des amis sur mes forums qui ont ragé pour un cas comme tu l'as mentionné...ce code est un cadeau du ciel merci BEAUCOUP! =D
    Lyndia Dukos
    Lyndia Dukos
    MasculinAge : 34Messages : 7

    Lun 27 Fév 2017 - 12:01

    Un énorme merci!
    Boe
    Boe
    FémininAge : 42Messages : 23

    Mar 23 Mai 2017 - 11:11

    Oh yeah ! Au nom de tous les membres de mon forum, merci !

    Je glorifie ton (double)nom \o/
    Manumanu
    Manumanu
    MasculinAge : 36Messages : 71

    Jeu 14 Mar 2019 - 23:18

    J'ai mis le code à jour, normalement la compatibilité est étendue et les différentes erreurs qui ont pu être rapportées ici ont été corrigées.



    Eh.
    Delnuyn
    Delnuyn
    FémininAge : 24Messages : 22

    Mar 28 Avr 2020 - 13:47

    Merci beaucoup, ce code est d'utilité publique **
    Malta
    Malta
    FémininAge : 34Messages : 11

    Dim 21 Mar 2021 - 0:06

    C'est hyper pratique, merci ! **
    Aëlia
    Aëlia
    FémininAge : 33Messages : 6

    Sam 11 Déc 2021 - 11:11

    Merci pour ce merveilleux code !
    Contenu sponsorisé


      La date/heure actuelle est Dim 19 Mai 2024 - 22:51