Sauvegarde de message en cours

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

  • 0

Astuce Sauvegarde de message en cours

Message par Ea Lun 26 Mar 2012 - 13:58

Sauvegarde de message en cours de rédaction

Cette astuce a pour but de sauvegarder un message en cours de rédaction si vous fermez la page par inadvertance.

Fonctionnement de l'astuce


  1. Cette astuce permet de sauvegarder vingt messages en cours de rédaction sur votre forum. En d'autres termes, elle ne permet pas de sauvegarder les messages en cours d'édition (bouton éditer) ;

  2. Elle utilise la fonction stockage local de navigateur, donc le script n'aura pas d'effet pour un navigateur IE en dessous d'IE8. De plus, en vidant les données de site du navigateur, vous perdrez les messages sauvés ;

  3. Cette astuce ne fonctionne pas avec le mode WYSIWYG. En d'autres termes, elle ne fonctionne que si votre éditeur est en mode source.


Installation du script


Panneau d'administration  Modules  HTML & JAVASCRIPT - Gestion des codes Javascript

Assurez-vous que la gestion des codes Javascript est activée, puis créez un nouveau javascript ayant pour titre "Sauvegarde des messages en cours" et pour placement "Toutes les pages" (plus d'informations sur la gestion des scripts).

Insérez-y le code suivant :

Code:
window.localStorage&&localStorage.getItem("br-target")&&(function(){$("meta[http-equiv='refresh'][content]:first").length&&function(){var a=JSON.parse(localStorage.getItem("br-data")),b=localStorage.getItem("br-target"),c;if(-1!=(c=$.inArray(b,a))){a.splice(c,1),localStorage.setItem("br-data",JSON.stringify(a))}localStorage.removeItem(b)}();localStorage.removeItem("br-target");})();
 
window.localStorage&&$(function(){$(function(){if($("#text_editor_textarea").length==0)return;var a=$(document.post.mode).val(),d=$("#text_editor_textarea").sceditor("instance"),f,e,g=function(){localStorage.setItem(a,d.val());e=0},b=JSON.parse(localStorage.getItem("br-data"))||[],c;switch(a){case "editpost":return;case "reply":a+=$(document.post.t).val();break;case "newtopic":a+=$(document.post.f).val()}a=_userdata["user_id"]+a;-1!=(c=$.inArray(a,b))&&b.splice(c,1);if(20<b.length){for(c=b.length-1;0<=c;c--)if(/^\s*$/.test(localStorage.getItem(b[c])||
""))localStorage.removeItem(b[c]),b.splice(c,1);20<b.length&&(localStorage.removeItem(b[0]),b.splice(0,1))}b.push(a);localStorage.setItem("br-data",JSON.stringify(b));$(document.post).submit(function(){localStorage.setItem("br-target",a)});!d.val()&&(f=localStorage.getItem(a))&&d.val(f);d.keyUp(function(){e||(e=setTimeout(g,3E3))})})});

N'oubliez pas de cliquer sur le bouton Valider afin de sauvegarder les modifications.

Adaptation du code si l'astuce "Redirection immédiate" a été installée


Si vous avez installé l'astuce Redirection immédiate après la publication d'un sujet ou d'un message sur votre forum, il convient d'installer le script de sauvegarde dans la même page Javascript que ce dernier, à placer au-dessus :

Code:
/* Script pour sauvegarder un message en cours de rédaction */

window.localStorage&&localStorage.getItem("br-target")&&(function(){$("meta[http-equiv='refresh'][content]:first").length&&function(){var a=JSON.parse(localStorage.getItem("br-data")),b=localStorage.getItem("br-target"),c;if(-1!=(c=$.inArray(b,a))){a.splice(c,1),localStorage.setItem("br-data",JSON.stringify(a))}localStorage.removeItem(b)}();localStorage.removeItem("br-target");})();
 
window.localStorage&&$(function(){$(function(){if($("#text_editor_textarea").length==0)return;var a=$(document.post.mode).val(),d=$("#text_editor_textarea").sceditor("instance"),f,e,g=function(){localStorage.setItem(a,d.val());e=0},b=JSON.parse(localStorage.getItem("br-data"))||[],c;switch(a){case "editpost":return;case "reply":a+=$(document.post.t).val();break;case "newtopic":a+=$(document.post.f).val()}a=_userdata["user_id"]+a;-1!=(c=$.inArray(a,b))&&b.splice(c,1);if(20<b.length){for(c=b.length-1;0<=c;c--)if(/^\s*$/.test(localStorage.getItem(b[c])||
""))localStorage.removeItem(b[c]),b.splice(c,1);20<b.length&&(localStorage.removeItem(b[0]),b.splice(0,1))}b.push(a);localStorage.setItem("br-data",JSON.stringify(b));$(document.post).submit(function(){localStorage.setItem("br-target",a)});!d.val()&&(f=localStorage.getItem(a))&&d.val(f);d.keyUp(function(){e||(e=setTimeout(g,3E3))})})});

/* Script pour la redirection immédiate après la publication d'un sujet ou d'un message */

$("meta[http-equiv='refresh'][content]:first").each(function(){window.location.href=$(this).attr("content").replace(/^.*;url=/,"")});

Ea

Ea
Aidactif
Aidactif

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

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

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