begin process at 2008 05 17 15:21:56
1 174 093 membres
211 nouveaux aujourd'hui
13 974 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CALENDRIER JAVASCRIPT


Information sur la source

Catégorie :Date & Heure Classé sous : calendrier, calendar, css, date Niveau : Initié Date de création : 20/11/2005 Date de mise à jour : 03/12/2007 16:55:32 Vu / téléchargé: 46 863 / 7 188

Note :
9,54 / 10 - par 13 personnes
9,54 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (55)
Ajouter un commentaire et/ou une note

Description

Un fichier js, une feuille de style, quelques images et c'est parti. Il suffit d'ajouter les quelques div du fichier htm à votre page et vous aurez un calendrier pratique pour mettre à jour vos zones de saisie de dates. De nombreux calendriers existent déjà mais celui-ci a l'avantage de ne pas être volumineux (10ko pour le js). Les modifications des images et de la feuille de style doivent suffir à le personnaliser à votre guise (plutôt rapide ...).

Conclusion

Cette version est compatible IE / Firefox.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

20 décembre 2005 23:24:33 :
Reconstruction du zip suite au problème rencontrés par certains pour le récupérer
03 juillet 2007 16:54:43 :
Ca faisait un moment que je devais le faire et ça y est : cette version est compatible IE / Firefox. La feuille de style a de plus subi un petit lifting. L'initialisation du calendrier a été quelque peu modifiée pour satisfaire aux exigences des deux browsers donc pour ceux qui auraient récupéré la précédente version et qui souhaiteraient se mettre à jour, je vous conseille de faire un petit diff entre l'ancienne et la nouvelle version du source html et du script. Merci encore pour vos différentes remarques ;-)
14 août 2007 10:47:16 :
Cette dernière version contient la correction du positionnement automatique du calendrier par rapport à la date déjà renseignée. Si la date est incorrecte (présence de caractères autres que des chiffres), le mois et l'année actuels sont affichés par défaut. Si un mois et une année sont corrects mais que le jour ne l'est pas (ex : 52/04/2007), le calendrier se positionne sur le mois et l'année renseignés (04/2007).
03 décembre 2007 16:52:13 :
1. Suppression du calendrier de la page principale. Seule une balise <div id="calendar"></div> doit être ajoutée. Le contenu du calendrier est généré en javascript (plus facile pour intégrer le calendrier sur de nombreuses pages. 2. Ajout de la possibilité de paramétrer un affichage différent des jours passés et/ou du jour courant.
03 décembre 2007 16:54:25 :
1. Suppression du calendrier de la page principale. Seule une balise <div id="calendar"></div> doit être ajoutée. Le contenu du calendrier est généré en javascript (plus facile pour intégrer le calendrier sur de nombreuses pages. <br> 2. Ajout de la possibilité de paramétrer un affichage différent des jours passés et/ou du jour courant.
03 décembre 2007 16:55:32 :
Premièrement : Suppression du calendrier de la page principale. Seule une balise <div id="calendar"></div> doit être ajoutée. Le contenu du calendrier est généré en javascript (plus facile pour intégrer le calendrier sur de nombreuses pages. Deuxièmement : Ajout de la possibilité de paramétrer un affichage différent des jours passés et/ou du jour courant.
  • signaler à un administrateur
    Commentaire de pierrealain6913 le 16/02/2006 15:51:51

    Ce type d'application est exactement ce que je cherchais.
    Cependant, j'ai testé ce script et j'ai un gros soucis qui le rend presque inutilisable :
    Si le calendrier doit s'afficher dans une région où il y a une zone de liste (<select>...options...</select>), le contrôle zone de liste s'affiche toujours par dessus le calendrier et gêne le choix éventuel d'une date ou d'un jour particulièr.
    Cordialement,
    Salutations.

  • signaler à un administrateur
    Commentaire de Anthed le 16/02/2006 21:18:00

    Effectivement mais je crois que c'est le lot tout div. Pour palier à ce problème, il n'y a pas d'autre choix que de masquer les selects de la page pendant l'affichage d'un div. Pour ce faire, on peut affecter à tous les selects un style particulier. Il suffit alors, lors de la détection de l'affichage du div, de modifier la visibilité de la classe correspondante. On peut également affecter à chaque select un id spécifique (ex : select0, select1, ...) et boucler sur chacun :
    function hideSelects()
    {
      var i = 0;
      var element = document.getElementById("select" + i);
      while (element != null)
      {
        element.style.visibility = "hidden";
        i++;
        element = document.getElementById("select" + i);
      }
    }
    Lors du masquage du div, procéder de la même manière en réaffectant "visible" à chaque select.
    A+.

  • signaler à un administrateur
    Commentaire de Malekith10 le 10/05/2006 15:45:03

    Super scrit! C'est exactement ce aue je cherchais et un des plus fonctionnel que j'ai trouve.

  • signaler à un administrateur
    Commentaire de Anthed le 15/05/2006 23:44:25

    Hello,
    Concernant le problème évoqué ci-dessus sur les selects qui restent sur les div, je signale qu'afficher le div sur une iframe marche plutôt bien, pour ceux qui ne seraient pas emballés par l'idée de masquer leurs selects ...
    A+.

  • signaler à un administrateur
    Commentaire de jon007 le 30/05/2006 09:57:19

    Dommage que le script ne marche pas chez moi sur Netscape et Mozilla :(

  • signaler à un administrateur
    Commentaire de testone le 14/06/2006 16:18:47

    salut

    ce script ne fonctionne que sur IE 6 et Opera (execution sur IE, opera, netscape, mozilla)
    dommage, c'est une vraie merveille, SVP qu'un developpeur JS le fixe
    merci les amis :)

  • signaler à un administrateur
    Commentaire de Nerolph le 29/11/2006 16:08:19

    Il serait temps d'utiliser le DOM du W3C, non ?

    http://www.w3.org/

  • signaler à un administrateur
    Commentaire de PCPT le 01/07/2007 17:41:13 administrateur CS

    salut,
    quelle différence avec http://www.javascriptfr.com/codes/CALENDRIER-PARAMETRABLE-PERSONNALISABLE_34697.aspx ?
    laquelle supprimer? ;)

  • signaler à un administrateur
    Commentaire de Anthed le 02/07/2007 09:19:23

    Hello, une version compatible Mozilla sera disponible très prochainement. Concernant la remarque de Nerolph, n'hésite pas à me faire signe dès que le but du W3C sera atteint (pas avant 2075 à mon avis). Enfin, pour PCPT, les 2 versions sont identiques, j'avais à l'époque rencontré un problème d'import de mes sources. Si un admin peut regrouper les commentaires des 2, il peut supprimer l'une des 2 versions.
    A+.

  • signaler à un administrateur
    Commentaire de PCPT le 02/07/2007 18:50:34 administrateur CS

    regrouper non...
    fait ton choix ;)

  • signaler à un administrateur
    Commentaire de Anthed le 03/07/2007 11:12:38

    Y a qu'à garder celui-ci alors :)

  • signaler à un administrateur
    Commentaire de PCPT le 03/07/2007 11:28:42 administrateur CS

    ok je supprime l'autre
    et j'te mets un petit 10 pour celle-ci
    très peu de modifs pour mes besoins, code clair, exactement ce qu'il me fallait :p

    merci pour cette contribution ;)

  • signaler à un administrateur
    Commentaire de PCPT le 03/07/2007 14:38:43 administrateur CS

    y'a un petit bug tout de même : le 32 octobre ?
    ++

  • signaler à un administrateur
    Commentaire de Anthed le 03/07/2007 15:17:57

    Oui, il s'agit d'un jour bonus ! :)
    Je vais tâcher d'y jeter un coup d'oeil ...
    A+.

  • signaler à un administrateur
    Commentaire de Nerolph le 03/07/2007 21:24:54

    Au fait, il est sous quelle licence ce calendrier ? C'est pour connaitre les conditions d'intégration dans un projet.

  • signaler à un administrateur
    Commentaire de Anthed le 04/07/2007 10:04:23

    C'est un calendrier que j'ai fait de mon côté mais que j'ai déjà intégré dans différentes applications professionnelles (progiciel de prêts bancaires, application web de bourse en ligne). En le mettant à disposition ici, je suppose que quiconque peut le réutiliser. Si ce n'est pas le cas, je compte sur vous pour m'envoyer des oranges en prison ou pour me pistonner quand je pointerai à l'ANPE.

  • signaler à un administrateur
    Commentaire de JLN le 14/08/2007 07:47:44

    Bonjour et bravo pour ce partage !
    Hors le bug signalé pour le 32 octobre, il y en a un autre et de taille, si le champs contient déjà une date, on se retrouve avec le calendrier en décembre 2006, même sur la page donnée en exemple. Il serait sympa d'apporter les corrections afin que le jour par défaut dans le calendrier soit celui qui se trouve dans le champs ou s'il n'y a rien ou date non valide, la date du jour. Le net plus ultra serait de remettre ici à jour.
    Merci pour tout tes efforts et je met 9 à cause des petits bugs mais quand même il très bien ce calendrier.

  • signaler à un administrateur
    Commentaire de Anthed le 14/08/2007 10:50:33

    Merci pour tes remarques JLN :)

    Je viens d'apporter la correction sur le positionnement du calendrier. Par contre, je n'arrive pas à reproduire le bug du 32/10. Si quelqu'un est tombé dessus, merci de m'indiquer si cela concerne un browser particulier et quel est l'enchaînement d'actions conduisant à cette erreur. Merci d'avance.

  • signaler à un administrateur
    Commentaire de Nerolph le 14/08/2007 14:13:26

    Quand je parlai de licence, c'était juste pour savoir si tu exigeais, ou pas, ton nom dans les sources, telle que le permettent (voire obligent) certaines licences libres (LGPL, par exemple).

  • signaler à un administrateur
    Commentaire de JLN le 14/08/2007 16:23:37

    Merci pour le correctif Anthed, pour le 32 je ne suis pas non plus arrivé à reproduire... Est-ce réellement fondé ?
    Merci pour ton aide, car je maitrise pas mal le php mais encore assez le javascript pour me plonger réellement dans ta source... Pour ma part je l'utilise sur un site perso sur un serveur ou je n'ai pas ouvert l'accès, donc perso.
    Bonne prog à tous,
    @+ JLN

  • signaler à un administrateur
    Commentaire de JLN le 14/08/2007 16:40:33

    Je repost juste pour te demander s'il ne te serais pas possible de mettre en surbrillance le jour en plus d'être sur le bon mois ? Sinon pour le reste je viens de tester et c'est au poil ! Même en insistant sur l'année et autre je n'arrive jamais au 32/10...

    @+ JLN

  • signaler à un administrateur
    Commentaire de Anthed le 14/08/2007 17:06:16

    Ok, merci JLN. Concernant la surbrillance, je vais voir ce que je peux faire pour que le jour précédemment sélectionné soit mis en valeur de façon différente de celui survolé par la souris.

    Nerolph, je suis plutôt pro-open-source donc fais ce que tu veux. Si tu récupère des bouts de code à droite et à gauche et qu'à chaque fois, tu dois rajouter 'Un grand merci sincère et chaleureux à untel blablabla' dans le code, tu ne vas pas t'en sortir :) et je dis un grand 'ZUT' à ceux qui se prennent pour des grands maîtres du développement en exigeant que leur nom soit présent partout.

    A+ tout le monde ;)

  • signaler à un administrateur
    Commentaire de PCPT le 14/08/2007 17:33:39 administrateur CS

    salut,
    ... maj testée, plus de bug du 32 octobre.
    et très étrangement, plus de bug non plus avec l'ancienne version

    j'étais (et suis) sous XP Pro SP1 :
    FF 1.0.4.1 (je crois) =>  suis maintenant sous FF 2.0.0.6
    IE 6.0 => inchangé
    pas de SP ou autre maj quelconque

    bizarre
    ++ ;)

  • signaler à un administrateur
    Commentaire de Nerolph le 14/08/2007 17:54:39

    Donc en résumé, ce bug était dû à l'interface chaise-clavier...
    ^_^

  • signaler à un administrateur
    Commentaire de MatouFrog le 24/08/2007 08:58:13

    Bravo pour ce calendrier... c'est exactement ce que je cherchais ! Merci à l'auteur de mutualiser ce genre de travail... RESPECT !

  • signaler à un administrateur
    Commentaire de testone le 24/08/2007 12:45:48

    Bonjour

    Encore bravo pour ce calendrier, je confirme encore que c'est une vraie merveille comme je l'ai dit l'année dernière, sauf qu'il y a un tout petit bug dans le fichier calendar.htm

        <link href="stylesheets\calendar.css" type="text/css" rel="stylesheet" />
        <script src="scripts\calendar.js"></script>

    faut juste remplacer le \ par / et tout fonctionnera sous ff et netscape
    quoi qu'il en est, c'est une merveille :)

  • signaler à un administrateur
    Commentaire de yodev le 03/10/2007 14:28:14 9/10

    Super... juste petite bonus pour gérer affichage date passé / aujouird'hui :
    dans le css, ajouter :
    .today {background-color: #b68211; font-weight:bold;}
    .beforeToday {background-color: #baac8f;}
    Dans le js :

    //dans le while de la fonction calendar :

    if(today.getYear()==selDate.getYear() && today.getMonth()==selDate.getMonth() && today.getDay()==count){
    element.className='today';
    element.isToday=true;
    }
    if(today.getYear()>=selDate.getYear() && today.getMonth()>=selDate.getMonth() && today.getDay()>count){
    element.className = 'beforeToday';
    element.isBeforeToday=true;
    }

    // remplacer la function unhighlightDay

    function unhighlightDay(evt) {
    el = getEventElement(evt);
    if(el.isBeforeToday)
    el.className = "beforeToday";
    else if(el.isToday)
    el.className = "today";
    else
    el.className = "";
    }

    // et ça fait un affichage différent pour les dates passée / aujourd'hui et future...
    @+

  • signaler à un administrateur
    Commentaire de yodev le 03/10/2007 14:30:35

    J'ai oublié avant le while :

    remplacer

    j = (new Date(calendar.cyear, calendar.cmonth-1, 1)).getDay();

    par :

    var selDate = new Date(calendar.cyear, calendar.cmonth-1, 1);
    var today = new Date();
    j = (selDate).getDay();

    @@+++

  • signaler à un administrateur
    Commentaire de survivorr le 05/10/2007 15:47:01

    Bonjour
    Merci tout d'abord pour ce script,j'essaie de l'utiliser dans une page JSP mais je ne sais pas les balises que je dois ajouter à mon fichier JSP pour que ça marche.

    Merci d'avance

  • signaler à un administrateur
    Commentaire de JLN le 05/10/2007 17:21:37

    Petite précision au sujet de la modif proposée par YODEV c'est la fonction "fillCalendar" et non la fonction "Calendar" pour les néophite que nous sommes, c'est moins pénible à rechercher.

    Sinon merci à ANTHED pour ce script génial et à toi YODEV pour ce petit plus et si j'osai... Ne sarai-t-il pas possible de colorer le jour de la date figurant dans le champ sur le calendrier tout comme on le fait pour la date courante ? Si oui comment s'y prendre, le javascript est pour moi (et bon nombre d'entre nous) trop inconnu pour prétendre une modif qui ne mette pas tout en l'air.

    Merci beaucoup.
    @+ JLN

  • signaler à un administrateur
    Commentaire de ylebailly le 06/10/2007 14:32:03

    Salut JNL, je t'avourai que c'est ce que je voulais faire à l'origine, mais il faudrait revoir la façon dont les classes CSS sont défini (je bosse sur plein de truc en même temps, pas trop le temps de regarder ...). Sinon, tu peux le faire direct dans le code javascript mais c'est moins propre ... par exemple pour la date du jour en rouge :

    //dans le while de la fonction fillCalendar :

    if(today.getYear()==selDate.getYear() && today.getMonth()==selDate.getMonth() && today.getDay()==count){
    element.className='today';
    element.isToday=true;
    element.style.color='red';
    }
    if(today.getYear()>=selDate.getYear() && today.getMonth()>=selDate.getMonth() && today.getDay()>count){
    element.className = 'beforeToday';
    element.isBeforeToday=true;
    }

    // j'ai pas testé, mais ça devrait marcher ...

    PS : désolé pour le 'fillCalendar' de mon post d'avant ...
    +++

  • signaler à un administrateur
    Commentaire de JLN le 07/10/2007 09:11:30

    Bonjour,
         Si je comprend bien YLEBAILLY = YODEV peu importe un grand merci en tout cas, mais je ne sais pas si c'est moi, car plus d'affichage spécial aujourd'hui dans le calendrier, malgré les modifs, je suis vraiment bon à rien... Pourtant pour être sure avant de poster, je suis repartie de l'original et j'ai refait les modifs et rien ???
    Bon j'y retourne et si je trouve mon éventuelle erreur je reposte.
    Merci beaucoup pour ton aide.
    @+ JLN

  • signaler à un administrateur
    Commentaire de Zeroc00l le 13/11/2007 15:14:58

    Tu nous donnes ton num de carte bleu pour les royalties ? :p
    Nan sérieusement ...
    Pour mon premier site web (un intranet en fait) c'est exactement ce que je cherchais !
    Intuitif et apparemment sans bug !
    Merci beaucoup :)
    En plus t'a fait une démo sympa et sans prise de tete, les gens le font pas souvent...
    10/10

  • signaler à un administrateur
    Commentaire de Zeroc00l le 13/11/2007 15:17:29 10/10

    Oops pas fait gaffe que maintenant il fallait noter en même temps que l'on commente, d'où ce message ...
    Pas de possibilité de changer sa note Messieurs les admins ?

  • signaler à un administrateur
    Commentaire de econs le 13/11/2007 16:34:26 administrateur CS

    C'est toujours possible en le demandant. Mais comme tu as mis 10/10 (5 étoiles) et que dans le message précédent, tu disais vouloir lui mettre cette note ... on change ou pas ?

  • signaler à un administrateur
    Commentaire de Zeroc00l le 13/11/2007 17:06:09

    Je souhaitais simplement qu'il y ait un seul commentaire avec la note.
    Bref je reviens juste pour dire que dans le fichier calendar.html y'a une petite faute sur le dernier div, deux onclick se suivent :
    onclick="increaseYear();" onclick="incrementMonth();"

    J'en profite poser quelques questions :

    1) Pourquoi à chaque fois que je trouve un script sympa les variable et les fonctions sont en vrac dans le fichier (pas a l'interieur d'une seul fonction en vue d'e nfaire une classe PROPRE et sans risque de collision) ?

    2) Ne serait-il pas plus sympa / propre de generer également un div en position absolue, et d'y incoporporer le code HTML du calendrier dynamiquement ?
    Bref c'est ce que je vais faire, au final j'aurai juste à taper :

    <script ... src="calendaer.js">
    <input onclick="javascript:(new PopupCalendar(path_vers_les_images, id_input)).Popup();"

    Au vue de la quantité de source ou ce n'est pas "propre" à mon sens ( == sous forme de classe) je me demande si y'a encore des choses importantes que j'ignore à propos du javascript ... :S

    3) N'y a-t-il personne qui deteste les accolades à la K&R à part moi (== cad en fin de ligne et non pas aligné avec les accolades fermantes) ?
    Ou bien est ce que tous le monde le fait pour une raison que j'ignore.
    (hypothese : certains navigateurs trouvent une erreur si les accolades ne sont pas en fin de ligne ?)


  • signaler à un administrateur
    Commentaire de Anthed le 13/11/2007 18:18:29

    1) il me semble que les variables globales et les variables internes sont à leur place ...

    2) je n'ai pas eu recours à cette solution pour une question de performances. Dans le cas où plusieurs zones de saisie de date sont présentes dans une même page, cela permet de n'instancier qu'un objet commun.

    de plus : 'code plus propre sous forme de classes' : ce n'est pas du java et c'est même fondamentalement différent. Pour la petite histoire, le terme javascript a été choisi à l'époque parce que le langage java avait un certain succès à ce moment, c'est tout.

    3) les accolades, c'est comme chacun veut, du moment que l'accolade fermante est alignée avec le mot clé associé (if, for, while, ...) c'est propre.

    Tchô :)

  • signaler à un administrateur
    Commentaire de Zeroc00l le 16/11/2007 04:16:24

    Il est possible de déclarer des variables statiques ...
    Donc même si il y'a plein d'instances ... on peut se débrouiller pour que si une instance Popupe (du verbe Popuper si si ! :p), elle fasse disparaitre les autres.
    Au final ça fournit aux instances un comportement qui ressemble aux menus contextuels : Deux instances ne peuvent être popupé et visible en même temps.
    Je vrai "proprifier" le code quand j'aurai plus rien à faire...
    Interessé ou pas par le code proprifié ?

  • signaler à un administrateur
    Commentaire de Anthed le 16/11/2007 08:56:13

    Les variables statiques sont déclarées au début du fichier : monthInYear et dayInWeek

    L'instance unique de calendrier, puisque comme tu le dis, il ne peut y en avoir qu'un affiché à la fois, est déclarée juste après : var calendar = new Calendar();

    Suivent les fonctions codées et écrites proprement : toutes les normes de codage sont respectées.

    Tout ça pour dire que je ne vois pas trop où tu veux en venir. Le principe que tu énonçais précédemment (le 13/11/2007 17:06:09) de tout mettre dans une seule classe ne 'proprifiera' pas grand chose, ça te fournira simplement une mise en forme javaifiée (t'as vu, moi  aussi, je suis super fort en néologismes ;) ) sans grand intérêt : pas plus performant, pas plus lisible.
    Le nom du fichier suffit d'après moi à comprendre que son contenu gère le calendrier. A partir du moment où tu sépares tes traitements javascript dans différents fichiers en fonction de leur rôle, tout va bien je pense.

    A+.

  • signaler à un administrateur
    Commentaire de Zeroc00l le 30/11/2007 17:48:17

    Ne prend absolument pas ma remarque comme une critique méchante.
    C'était juste une opinion personnelle.
    Le but de cette critique est avant tout d'avoir des explications sur le pourquoi de cette façon de faire (que quasiment tout le monde partage sur javascriptfr) ou alors de me remettre en question par rapport à ce que je croyais savoir.
    (Je ne dis pas que tu l'a mal pris mais je préfère être absolument clair :)).

    je ne cherche pas la performance (je suis d'accord que ça ne change rien).
    La lisibilité, même si j'en suis sensible, n'est pas non plus en question.
    Ce que je n'aime pas c'est aussi l'html directement dans la page ...
    J'ai plein de code récupéré un peu partout et au final on sait plus quoi appartient à quel bout de js quand on a une page complexe.
    J'aime le code très organisé, et j'ai rencontré un cas bizarre ou un argument n'était pas utilisé dans une fonction au profit d'une variable plus globale du même nom ! Bref une erreur vicieuse.. (je crois que j'ai même gardé un fichier pour illustrer la chose.)

    Au final j'aime bien l'action unique quand j'ai envie de quelquechose.
    Je veux un truc boum j'inclu un fichier (une seule action) et hop je peux l'utiliser.
    Je n'ai pas à :
    -- Inclure le js
    -- Copier le code html (le retrouver déja, le mettre en commentaire dans le js ... c'est moyen :D)
    -- Vérifier qu'il entre pas en collision avec d'autre variable ...
    Alors qu'ajouter un fichier.js ( == une classe) je trouve ça plus simple et plus modulaire.
    Et c'est pas la place que prend "function MaClass { }" :p qui grossit le code
    (normalement si on fait cela très proprement on compresse aussi le js...)

    Autre petite remarque : Générer le calendrier (l'html) dans le js permet également de le compresser (boucle js ...) et sans le js ça fait une page html plus propre (que le contenu et pas les outils et l'interface).

    Encore un opinion perso qui ne prend appui que sur mes 2 seul mois de web dev :)
    (ca vaut ce que ca vaut, dite moi si j'ai tort surtout) :
    Je trouve ca crade d'avoir des choses cachés (visible) ou non affichés (display) dans une page si ce n'est pas pour utiliser avec du js...
    Hors si js est désactivé ca évite de télécharger un truc qu'on utilise pas !

    Que penses tu de tout ça ?

  • signaler à un administrateur
    Commentaire de ewbs le 02/12/2007 00:51:21

    Génial et bravo, c'est tip top ce que je cherchais! Mais j'ai voulu aussi installer l'extension de Yodev (pour mettre en couleur differemment les jours passés) mais ça ne change rien. :-(
    Si qqun à la solution à ce bug

  • signaler à un administrateur
    Commentaire de Anthed le 03/12/2007 09:38:45

    A l'attention de ZerocOOl,

    Concernant l'utilisation d'une classe, je n'ai pas grand chose à rajouter par rapport à ce que j'ai déjà dit. Si tu préfères du javascript version java, libre à toi (pourquoi pas).

    Générer les composant html du calendrier depuis le fichier js plutôt que l'intégrer directement à la page concernée est en revanche une bonne idée (plus facile à intégrer et à mettre à jour en cas de présence sur plusieurs pages).

    Pour info, je signale que j'avais réalisé la première version de ce calendrier dans le cadre professionnel et une des devises à méditer dans ces circonstances est : "Le mieux est l'ennemi du bien". Les impératifs de développement et les délais de livraison font qu'on n'a jamais assez de temps pour réaliser quelque chose de parfait. L'idéalisme poussé à l'extrême n'est pas rentable ...

    Pour finir, je tâcherai de fournir une version prochainement avec une couleur différente et la possibilité de désactiver les liens associés aux jours passés.

    Merci à tous pour vos différentes remarques. A+.

  • signaler à un administrateur
    Commentaire de Zeroc00l le 03/12/2007 16:32:27

    Oui j'imagine bien que niveau delai de livraison ... :)
    J'ai pas mal lutté pour faire du DHTML (planning modifiable à la souris) debug etc ...
    En revanche je suis stagiaire là, donc j'ai du temps à perdre :p,
    d'où ma quête du parfait :)

    Petite préférence perso sur l'esthétique :
    Je trouve que le haut du calendrier est un peu encombré et on met quelque seconde avant de "voir" comment ça fonctionne (est ce moi qui ait du mal ? :p)
    Solution proposée :
    - Faire passer la flèche "suivante" pour le mois et l'année à droite de ces derniers.
    - Supprimer les fleches "bas" (de toute façon, la fonctionalité reste si on clique sur les noms)

    Voili voilo !

  • signaler à un administrateur
    Commentaire de Zeroc00l le 03/12/2007 16:35:26

    Ah j'oubliais un autre argumetn en faveur de la generation dans les js
    j'ai essayé les masterpages (asp.net) hier et tous les id sont prefixés,
    donc ca fout en l'air le code js ... :/

    Autre idée :
    - Quand la souris est en dehors du calendrier trop longtemps :
       simuler le clic sur la corix (ferme la fenêtre)

  • signaler à un administrateur
    Commentaire de Anthed le 03/12/2007 17:07:50

    Côté esthétique, ton idée est bonne mais je ne touche à rien : les goûts et les couleurs ...
    Par contre, le fait que le contenu du calendrier soit à présent généré depuis le fichier js fait que chacun peut modifier l'ordre à sa guise.
    A+.

  • signaler à un administrateur
    Commentaire de Zeroc00l le 06/12/2007 15:17:38

    Pas bête l'idée de différencier les jours avant le jour actuel !
    On y gagne on lisibilité.

  • signaler à un administrateur
    Commentaire de ffert le 06/01/2008 20:53:10 10/10

    BRAVOOOOOooooo !!!!!!!! (note : 10)

    je l'ai intégré à ma classe autoformulaire en PHP !!! ça marche du tonnerre !!!...
    merci beaucoup parceque le javascript c'est pas mon fort...

    (ps : NE PAS OUBLIER D'AJOUTER <div id="calendar"></div> sinon ça marche pas !!! j'ai passé une demi/heure à me demander si savais encore programmer... :p oui je sais.. mais bon c'est dimanche soir alors faut pas trop en demander non plus...)

    Nota : le format du champs retourné est : date française DD/MM/YYYY, est-ce qu'il y a la possibilité de retourner une date YYYY-MM-DD (un paramètre de plus qui permettrais de choisir du genre : displayCalendar('name', 'format', event); ).

    à propos du multilangue, je me suis permis une petite modif : les deux premières lignes je les ai mises dans un autre fichier nommé : calendar.lang-fr.js  (pour gérer le français)

    var MONTH_LIST = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
    var DAY_LIST = new Array("Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim");

    ce qui me permet de créer un autre fichier nommé : calendar.lang-en.js   (pour gérer l'anglais)
    var MONTH_LIST = new Array("January", "Febrary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var DAY_LIST = new Array("Mon", "Tue", "Wen", "Thu", "Fri", "Sat", "Sun");

    j'ai ensuite un script PHP qui me trouve la langue et la stocke dans une variable de session ("lang") ce qui me permet de faire cet insertion en début de page dans le head.
    $output .= '<script src="scripts/calendar.lang-' . $_SESSION["lang"] . '.js"></script>';

    et ça marche trés bien...

    encore une fois bravo pour ce merveilleux code (trés propre, j'arriverais presque à comprendre le javascript avec ça :p) !!!....

    cordialement.

  • signaler à un administrateur
    Commentaire de Thierry_ZT le 04/02/2008 15:06:25 10/10

    Super code, enfin un compatible DOCTYPE.

    Merci.

  • signaler à un administrateur
    Commentaire de Charles72 le 14/02/2008 19:50:21

    Excellent code, il correspondait parfaitement à ce que je cherchais (il manque peut être juste un peu de commentaires, mais bon ;-) )

    Une remarque au passage, je pense qu'il y a une petite erreur dans le code javascript à la ligne 336 :

    > var testDate = new Date(y2, m2 - 1, 1);

    Il me semble que ça devrait plutôt être (comme dans la méthode getMonthLastDay) :

    > var testDate = new Date(y2, m2 - 1, 29);

    Sinon cela pose problème pour la sélection automatique du jour lorsque la date dépasse le 28 du mois.

    Merci encore pour ce code.

  • signaler à un administrateur
    Commentaire de Charles72 le 14/02/2008 19:52:52 10/10

    Juste un petit commentaire en plus pour mettre la note que j'ai oubliée ^^

  • signaler à un administrateur
    Commentaire de jymont le 06/03/2008 10:01:51

    Bonjour et merci pour ce calendrier.

    J'essaie de faire un truc avec mais je bloque un peu (je débute en Javascript). J'essaie d'intégrer un compteur qui compte le nombre de jours entre le clik sur la première date et le click de la 2ème date, tout en ignorant le samedi et dimanche, et plus tard les jours fériés qu'on définira.

    Bref que le compteur ne compte que les jours "ouvrés" quand on selectionne les 2 dates.

    Si vous avez une idée je suis preneur, merci d'avance :)

  • signaler à un administrateur
    Commentaire de zealth le 07/04/2008 09:06:01

    Bonjour,
    Lorsque je télécharge le fichier ZIP, mon antivirus me sort:
    "Le fichier javascriptfr_CALENDRIER-JAVASCRIPT___Page.zip contient le virus Compressed_Huge_File"...

  • signaler à un administrateur
    Commentaire de Anthed le 07/04/2008 17:10:21

    Tu as peut-être un antivirus qui s'affolle dès qu'il rencontre un fichier javascript.
    Obtiens-tu le même résultat si tu essaies de télécharger le fichier unitairement : calendar/scripts/calendar.js ?

  • signaler à un administrateur
    Commentaire de PCPT le 07/04/2008 19:49:51 administrateur CS

    non c'est dû aux sécurités de ton parefeu (ou celui de ton entreprise)...

  • signaler à un administrateur
    Commentaire de ringon le 30/04/2008 19:31:42

    Bonjour je ne comprends pas comment insérer ce calendrier dans une page HTML.
    A+

Ajouter un commentaire

Discussions en rapport avec ce code source

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS