Vérifiez vos informations

Il semblerait que les informations techniques de votre profil n'aient pas été actualisées depuis un certain temps... Pour que l'aide apportée vous soit efficace, il est important que ces informations soient à jour : prenez quelques secondes pour confirmer ou compléter les informations suivantes.


Lien de votre forum
Version de ce forum
Vous êtes le fondateur de ce forum
Vous avez modifié le CSS de ce forum
Vous avez modifié les templates de ce forum
Votre navigateur

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.

Voir illustration :

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 : 23580
Inscrit(e) le : 04/04/2008

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

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum