Envoyé par : jwo
Date : 13/05/2008 20:32
Hello,
Je cherche a "sauvegarder" une date : celle de l'installation/premiere utilisation de mon extension.
Voici mes questions:
1-Existe t elle déjà quelque part?
2-Sinon pour la sauvegarder dois-je bien utiliser les prefs? (j'ai trouvé ce lien http://adrien.frenchcomp.net/blog/index.(..) sur le forum - est ce bien comme ca?)
3-Dans ce cas, comment sauvegarder une variable au format Date()
4-Enfin, en javascript, peut on calculer la différence entre deux date aisément?
Merci par avance à tous :)
Jwo
Envoyé par : Paul Rouget
Date : 14/05/2008 03:47
C'est simple, au chargement de ton extension, tu checks si une préférence du type "startDate" existe. Si elle n'existe pas, tu crées la préférence en question (via en effet setIntPref, mais si tu utilises Firefox 3, je te conseille d'utilise l'API FUEL). Sinon, pour travailler avec tes dates, enregistres les simplement en secondes.
P.S: merci de t'assurer du bon formatage de tes posts, j'ai du modifier le tien pour qu'il soit lisible.
Envoyé par : jwo
Date : 14/05/2008 12:26
Oki, désolé pour le formatage je vais tacher de faire mieux.
J'ai suivi tes conseils mais ca n'a pas lair de fonctionner.
Voici le code de mon .js (celui lancé avec le principal fichier xul)
var firstDate; function init(){ ...[autres choses qui fonctionnent bien pour d'autres opération de l'extension] var settingsManager = Components.classes["@mozilla.org/preferences-service;1"].getService (Components.interfaces.nsIPrefService); settingsManager = settingsManager.getBranch ("extensions.monExtension."); if(settingsManager.getIntPref("startDate")==0){ firstDate=new Date(); firstDate=firstDate.getTime(); settingsManager.setIntPref("startDate", firstDate); } else firstDate=settingsManager.getIntPref("startDate"); }
et le fichier monExtension.js que j'ai crée dans defaults/preferences/ :
pref("extensions.monExtension.startDate", 0);
J'ai donc la hierarchie suivante:
chrome content skin defaults preferences
La valeur de mon firstDate est undefined.
Ou dois-je chercher le probleme ? :)
Merci bcp
Envoyé par : jwo
Date : 14/05/2008 12:54
Bon c'était ma hierarchie qui était fausse bien sur,et quelque petits bugs autres.
Le defaults folder doit etre a coté de chrome :)
En revanche je tombe sur une date en sec négative et quand je la repasse en date avec
var d = new Date(); d.setTime(since);
ca m'affiche decembre 69 (donc avant 70)
QQ a une idée ? :) c'est étrange
Envoyé par : jwo
Date : 14/05/2008 13:20
Bon j'ai trouvé ou est le pb mais je sais pas pourquoi il est la :(
var settingsManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); settingsManager = settingsManager.getBranch ("extensions.monExtension."); if(settingsManager.getIntPref("startDate")==0){ var today=new Date(); firstDate=today.getTime(); alert("date enregitree "+firstDate); settingsManager.setIntPref("startDate", firstDate); } firstDate=settingsManager.getIntPref("startDate"); alert("date recuperee "+firstDate);
qui me donne
date enregistree largement positive date recuperee largement negative et de valeur absolue différente egalement
Note : dans about:config ma prefs a pour valeur la valeur négative récupéree :(
C'est lors de l'enregistrement dans les prefs que ca pose probleme.
Merci pour l'aide
Envoyé par : jwo
Date : 14/05/2008 19:12
Je trouve vraiment pas, j'ai vérifié dans about:config et la valeur de la pref est bien mise a la valeur négative. J'ai aussi vérifier que getTime() renvoyait bien un int, c'est le cas.
Pourquoi ai-je ce problème en "ecrivant" ma pref? :(
Merci
Envoyé par : jwo
Date : 16/05/2008 14:25
Jai tjs pas trouvé ... je comprend pas c'est pourtant bien simple comme code lol
Envoyé par : Paul Rouget
Date : 16/05/2008 16:27
Je pense que ta date est un Unsigned Int et que ta préférence est un Int, d'où le décalage (fixe).
Envoyé par : jwo
Date : 16/05/2008 18:15
C'est une très bonne explication, je savais meme pas qu'il y avait possibilité de travailler sur le Unsigned/signed int en javascript.
D'ailleurs comment imposer ma date au format Signed ou vice versa alors ?
Envoyé par : jwo
Date : 16/05/2008 18:29
Oki je l'ai mis en char la pref et jai reconverti avec parseInt() à la sortie et ca passe, c'est pas tout propre mais ca marche :)
Merci infiniment
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.