Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Prefs et Date (javascript/mozilla)

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

# Re: Prefs et Date (javascript/mozilla)

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.

# Re: Prefs et Date (javascript/mozilla)

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

# Re: Prefs et Date (javascript/mozilla)

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

# Re: Prefs et Date (javascript/mozilla)

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

# Re: Prefs et Date (javascript/mozilla)

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

# Re: Prefs et Date (javascript/mozilla)

Envoyé par : jwo

Date : 16/05/2008 14:25

Jai tjs pas trouvé ... je comprend pas c'est pourtant bien simple comme code lol

# Re: Prefs et Date (javascript/mozilla)

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).

# Re: Prefs et Date (javascript/mozilla)

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 ?

# Re: Prefs et Date (javascript/mozilla)

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.