GNOOCALENDAR CALENDRIER DYNAMIQUE (VERSION OBJET)

cs_titours Messages postés 2 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 août 2004 - 26 août 2004 à 16:27
Jbtree007 Messages postés 1 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 29 décembre 2012 - 29 déc. 2012 à 10:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25255-gnoocalendar-calendrier-dynamique-version-objet

Jbtree007 Messages postés 1 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 29 décembre 2012
29 déc. 2012 à 10:43
Bonjour,

vraiment bien ton calendrier, je l'utilise mais depuis quelques temps je n'ai plus la possibilité de changer les années ou les mois via les listes déroulantes.

J'utilise MOZILLA v17.0.1
Merci d'avance pour ta réponse
Spylover Messages postés 110 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 12 août 2010 1
12 août 2010 à 12:11
Bonjour à tous,

je souhaiterais que lorsque l'on clique sur une date il lance une URL avec comme paramètre la date plûtot qu'il la mette dans un champs.

Merci de votre aide
kraten Messages postés 2 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 20 août 2009
20 août 2009 à 16:38
Hi,
vraiment bien ce calendrier.
partique, sympa et super simple d'utilisation.
Bravo à son créateur mister zegnoo.
cs_Persons Messages postés 11 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 1 juin 2009
2 juin 2009 à 15:11
Bonjour,
Merci pour ce calendrier.
J'aimerai rajouter le numéro de semaine dans ce calendrier mais je ne vois pas trop comment faire?
Avez vous une piste?
cs_TEST29 Messages postés 1 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 26 août 2008
26 août 2008 à 14:06
Merci pour ce calendrier ! Beau et fonctionnel, que demande le peuple ?
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
26 avril 2008 à 11:43
jolie code ...un peu lourd mais y'a de l'idée, si ca ne te dérange pas, je vais m'y inspirer pour modifier mon calendrier , essaye le mien et dit moi ce que tu en pense ;-) tu pourrais aussi avoir des idées !
falomeflora Messages postés 3 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 1 septembre 2008
20 févr. 2008 à 16:27
Merci!!!j'ai lontemps cherché un calendrier pareille.
Travail de Pro!!!!!!!!!
cs_Mck Messages postés 1 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 14:21
Très bon boulot, je l'implémente de suite :)
lutin7812 Messages postés 1 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 2 octobre 2007
2 oct. 2007 à 17:50
Bonjour, ce calendrier est super, mais comme tous les commentaires ici, j'ai aussi un petit souci. Je sais que le sujet a déjà été abordé mais je ne trouve pas de solution ad hoc.

Je souhaiterais que le calendrier s'affiche sur l'image où l'on clic mais sous Firefox aussi.
Le code de YOUSPIM provoque une erreur sous Friefox 2.0 car l'event n'est pas disponible tel quel. Si quelqu'un a une idée ou un bout de code existant je suis preneur.
Je débute et l'abonnement à un évèenement me semble compliqué.

Merci d'avance.
toineb11 Messages postés 1 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007
23 juil. 2007 à 10:59
Très bon outil ! Merci beaucoup ...

Malgré tout j'ai un petit problème général à IE je crois : si j'ai une liste déroulante sous le calendrier, celle-ci s'affiche au dessus. Résultat certains jours sont cachés, et de ce fait non selectionnables. Quelqu'un a déjà palié à ce problème ?

En tout cas, encore merci ! Super taff !

++
adamo901 Messages postés 139 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 8 décembre 2008
18 juin 2007 à 10:49
bonjour tout le monde :
J'ai un petit soucis :
Quand j'utilise le calendrier dans mes pages (mes pages ont leurs propre CSS), le gnoocalendar change de forme?

Comment faire pour que le calendrier ne tien pas en compte le CSS que j'utilise pour mes pages html.
elzedo Messages postés 4 Date d'inscription jeudi 11 septembre 2003 Statut Membre Dernière intervention 14 juin 2007
14 juin 2007 à 19:13
Pour rendre la sélection des jours passés impossible :

1- ajouter la propriété "blockDate" :
this.blockDate = new Boolean(false);

2- modifier la méthode "this.dayCell=function(d,n)" :
// modifications à partir de if(!document.layers)
this.dayCell=function(d,n)
{
var tmp = new String("");
if(this.isFreeDay(d,this.curMonth))
tmp += "<td class='Gfree'";
else
tmp += "<td class='Gc"+n+"'";
if(!document.layers)
{
var _now = new Date();
_now.setHours(0);
_now.setMinutes(0);

var _dateCompare = new Date(this.curYear, this.curMonth, d+1);

if (this.blockDate) {
if (_now <= _dateCompare) {
tmp += "title='"+this.checkDate(d)+" "+this.month[this.curMonth]+" "+this.curYear+"'";
tmp += " onmousedown='"+this.name+".getDate("";
tmp += this.checkDate(d)+"/";
tmp += this.checkDate(1+parseInt(this.curMonth))+"/";
tmp += this.curYear+""";
tmp += ");' ";
} else {
tmp += "title='"+this.checkDate(d)+" "+this.month[this.curMonth]+" "+this.curYear+"'";
tmp += " style='text-decoration:line-through;'";
tmp += " onmousedown='null'";
}
}
else {
tmp += "title='"+this.checkDate(d)+" "+this.month[this.curMonth]+" "+this.curYear+"'";
tmp += " onmousedown='"+this.name+".getDate("";
tmp += this.checkDate(d)+"/";
tmp += this.checkDate(1+parseInt(this.curMonth))+"/";
tmp += this.curYear+""";
tmp += ");' ";
}

tmp += " onmouseover='this.className=this.className+"on";' ";
tmp += " onmouseout='this.className= this.className.substring(0,this.className.indexOf("on"));'";
}
else
tmp += " width='22' height='16' ";
tmp += ">";
return tmp;
}

3- ajouter la méthode "setBlockDate" :
/*
* GnooCalendar.setBlockDate( Boolean bool )
* Active ou désactive le bloquage des jours antérieurs à la date du jour
*/
this.setBlockDate= function(bool)
{
this.blockDate = bool;
return;
}

4- initialiser le calendrier en ajoutant l'appel à setBlocked :
var cal = new GnooCalendar("cal", 20, 10 );
cal.setBlockDate(true);

Bonne continuation à tous...
Plugman Messages postés 1 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 13 juin 2007
13 juin 2007 à 10:51
Super script bravo !

J'aurais aimé savoir si il serait possible d'implémenter une méthode pour ne rentre cliquable que certain jours, genre passer un tableau en paramètre avec dedans tous les jours cliquable ?

Par exemple, pour voir cliquer que sur les jours ouvrés, ou l'inverse que les week-end, ...

Merci.
nimp0001 Messages postés 26 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 14 mars 2007
14 mars 2007 à 11:37
Réponse à dwarfman78 : Vérifie que tu as bien l'appel à la fonction inti() dans la balise Body de ta page.
dwarfman78 Messages postés 1 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 12:18
Erreur : document.getElementById(this.div) has no properties
Fichier source : js/gnoocalendar.js
Ligne : 515

J'utilise Firefox avec le moteur de template smarty.
quelqu'un aurait une idée ?
chais_pas_quoi_prendre_comme_pse Messages postés 1 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 octobre 2006
1 oct. 2006 à 01:05
Bonjour,

Super script, bien utile.
Saurais tu, si ce n'est trop demandé, nous le faire avec les dates passées désactivées ?
Jusqu'à date d'aujourd'hui, impossible de sélectionner, puis à partir d'aujourd'hui, sélection possible.

Merci déjà pour le travail accompli ;)
cs_soundy Messages postés 4 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 septembre 2006
8 sept. 2006 à 14:39
Hello à tous.

ZEGNOO, t'auras jamais fini avec des gars comme nous, à chaque fois on en veux ++.

Bon là j'en ai une pas mal. C'est pas très grave, ça n'arrive que pas souvent mais bon, si on peut faire mieux, c mieux. ;-)

( fichier .js )
Dans this.dayCell=function(d,n)
if(this.isFreeDay(d,this.curMonth))
{
tmp += "<td class='Gfree'";
}
else if (this.checkDate(d)==now.getDate()
&& this.curMonth==now.getMonth()
&& this.curYear==now.getFullYear())
{
tmp += "<td class='Gc'";
}
else
{
tmp += "<td class='Gc"+n+"'";
}


Lors de l'affectation du style du jour courant on écarte subtilement la possibilité sournoise que notre jour puisse être ET "aujourd'hui" ET "férié" ... Rhooooooo le vilain jour!!!

Alors là à froid, je propose de rajouter un style destiné à ce jour précis. Style qui rappellerai les caracéristique des fériés ET du jour courant.

Alors bon, voilà, c'était juste pour dire ...
un peu comme le chmilblic, quoi!

Allez, bye et merci encore pour ton travail. @+
LudWilhelm Messages postés 1 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 31 juillet 2006
31 juil. 2006 à 21:06
Je ne peux que tirer mon chapeau face à une telle performance. Ce calendrier sera pour moi un outil très pratique et m'évitera des heures de développement (sachant que mon temps libre pour développer est très serré) alors que j'arrive à une phase de développement d'un formulaire nécessitant cette fonctionnalité.

De plus, le script est écrit de manière propre.

Donc bravo et merci.
remedywu Messages postés 2 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 5 juillet 2006
31 juil. 2006 à 15:08
Tout d'abord bravo pour ce beau calendrier.
Sous FF pas de pb par contre sous IE 6 j'ai un souci de transparence dans mon formulaire quand le calendrier est déplacé au dessus d'une requete php dans un Slect qui appelle mes champs Options.
Si vous avez eut ce pb ou si vous des idées...
GoldPegasus Messages postés 66 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 7 janvier 2010
13 juin 2006 à 15:42
salut avant tous comme l'a dit jeanoook trés bon code cependant j'ai mis ton code dans l'une de mes page et sous IE il m'indique une "erreur d'éxécution interne" après une petit recherche j'ai vue que c'est lors du remplisage de la balise que sa coince je viens te voir parce qe la je ne voie pas le problème.

sinon sous Firfox sa marche :) voula
jeanoook Messages postés 4 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 2 juin 2006
2 juin 2006 à 10:13
Salut, tout d'abord super script!
Comment faire pour ouvrir un fichier lorsque l'on clique sur une date plutot que de renvoyer la date dans un champs ?Je débute en javascript je n'ai pas trouvé l'endroit à modifier !
Merci !
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
27 mars 2006 à 20:31
salut,
bon comme c'est une question récurrente, j'ai ajouté une méthode setFormat qui permet de passer les dates en format englais.
la source est disponible sur ce site.
(et du coup la dernière modif concernant le jour en cours y est aussi)
bon dev:)
cs_cypripedium Messages postés 1 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 27 mars 2006
27 mars 2006 à 15:56
Bonjour à tous,

Un grand merci à Gnoo pour ce calendrier. Impec. En revanche, je ne suis pas un pro du code, loin de la, et je me demandais s'il est possible de retourner la date ds le formulaire au format AAAA-MM-JJ au lieu de JJ/MM/AAAA, pour être utilisable en MysQL
youspim Messages postés 21 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 17 juillet 2008
23 mars 2006 à 17:08
Salut,

Merci ZEGNOO pour ce code, il est tout simplement genial.

@12_DARTE_12: Pour que le calendrier s'affiche à coté de la souris, moi j'ai modifier la fonction show dans le fichier gnoocalendar.js et ca donne ceci -->

/*
* GnooCalendar.show()
* affiche le calendrier
*/
this.show = function()
{
this.vis = true;
this.tag = "<form name='"+this.name+"_form' method='post'>\n";
this.tag += this.mList();
this.tag += "</form>\n";
/* Récuparation des coordonnées de la souris */
                var x (navigator.appName.substring(0,3) "Net") ? e.pageX : event.x+document.body.scrollLeft;
                var y (navigator.appName.substring(0,3) "Net") ? e.pageY : event.y+document.body.scrollTop;
                /* Positionnement du div contenant le calendrier à cote de la souris */
                document.getElementById(this.div).style.left = x+18;
                document.getElementById(this.div).style.top = y;
if(document.layers)
{
with(document.layers[this.div])
{				
document.open("text/html");
document.write(this.tag);
document.close();
visibility='show';
}
}
else
{
document.getElementById(this.div).innerHTML = ""+this.tag;
document.getElementById(this.div).style.visibility = 'visible';
document.getElementById(this.div).style.display = 'block';
}
return;
}


Je ne sais pas si j'ai tout bien fait, mais ça a l'air de bien tourner pour le moment.

A+
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 17:45
Le problème est que dans ce cassi mon ecran est reduit il ne m'affcihe pas au je veux le calendrier, c'est pour cela que je pensai au niveau du clique de la souris.
cs_soundy Messages postés 4 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 septembre 2006
20 mars 2006 à 17:19
12_Darte_12 ==>
Repère dans le code HTML la section d'appel du div




L'attribut STYLE de la balise, te permet de spécifier les valeurs des options TOP et LEFT pour définir la position exacte de ton calque. Soit respectivement 1500px et 100px en partant d'en haut à gauche si l'option "position" reçoit la valeur "absolute" comme ici, d'ailleurs. style="position: absolute;

Bon courage.
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 16:20
BAh je ne sais pas, mais sous IE avec le popup de windows XP sp2, j'ai la petite barre jaune qui me dit qu'il bloque un popup. Mais la je réessaye et ca me le fait plus, j'ai pas très bien compris ce qu'il s'est passé. Désolé pour le dérangement Zegnoo.

Une petite question supplémentaire, j'aimerai ouvrir le calendrier juste a côté de l'image sur laquelle je clique. Mais je ne sais pas comment faire.

En récuperant l'emplacement du curseur et en ouvrant le calendrier au coordonnées de celui-ci au moment du clique, je pense que cela doit marcher mais au niveau du code, je n'arrive pas a le transcrire.
cs_soundy Messages postés 4 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 septembre 2006
20 mars 2006 à 15:50
Ouhaaaaaaaaaaaaaaaa, mais comment fait-il !!! T'es tombé dedans tout petit ???
Merci encore une fois.

@+ Soundy
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
20 mars 2006 à 15:24
ah bon et par quoi il est considéré comme popup???
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 15:13
J'ai un autre problème, c'est que le calendrier est considéré comme popup.
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
20 mars 2006 à 14:21
salut,
ben vous en avez du souci....:)
il est préférable d'utiliser la méthode getFullYear() de l'objet date.
un exemple qui devrait répondre à votre problématique:
http://www.zegnoo.net/gnoocalendar/

(dès que j'ai un peu de temps je le mets en ligne içi)
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 14:08
Je suis d'accord soundy j'ai le même problème c'est bien dommage.
cs_soundy Messages postés 4 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 septembre 2006
15 mars 2006 à 15:50
Salut @ tous et !!! BRAVO !!! à toi zegnoo pour ce travail exemplaire.
J'étais en train d'implémenter les MàJ de teacherfred quand j'ai remarqué que le :
if (this.checkDate(d)==today.getDate()&& this.curMonth==today.getMonth()&& this.curYear==today.getYear())
        {
            tmp += "<td class='Gctoday'";
        }

ne fonctionne pas sous Firefox. Quelqu'un aurait-il une idée ???
Oui, j'ai bien créé ma classe dans la feuille de style.
Cela s'affiche correctement sous IE6.

D'avance merci.

Soundy

PS : Je suis aussi à la recherche d'un tuto ou d'un cours ACCESSIBLE sur le DOM et ses getElementById et autres parentNode, parentElement etc, etc ...
Roswell_ Messages postés 2 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 20 février 2006
20 févr. 2006 à 16:56
Ok, merci de ta réponse, j'avais pas compris qu'on pouvait pas utiliser les div inclus dans des forms. Changer le document.body.innerHTML pour ajouter le div au premier appel de la fonction semble fonctionner.
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
20 févr. 2006 à 15:10
c'est pourtant logique, le cas a déjà été évoqué.
et c'est pas super propre de tout mettre entre les balises <form> (je serais curieux de savoir ce que le validateur W3C en pense:)).

une solution consisterait à écrire dynamiquement le code du div à l'extérieur du formulaire (genre document.body.innerHTML += "
").
à tester:)
Roswell_ Messages postés 2 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 20 février 2006
20 févr. 2006 à 14:55
Salut,
Il y a en effet un pb sous IE 6 quand le script n'est initialisé qu'au niveau du formulaire.
Exemple:

<form name='testform' method='get' action='' style='margin:0px;'>
<script id="gnoocalendar" language="JavaScript" src="script/gnoocalendar.js"></script>
<script language="JavaScript1.2" type="text/javascript">
<!--

document.write('<link rel="stylesheet" type="text/css" href="css/gnoocalendar.css">');

document.write('
');
document.write(' 
');

var CL = new GnooCalendar("CL", 20, 10 );


function test(input)
{
//CL.init("calend", document.getElementById("testestformield1"));
CL.init("calend", input);
CL.isDragable(true);
CL.setTitle("Choisissez une date");
CL.show();
}
//-->
</script>
</td>
</td>
</form>



Le script plante à la ligne 496: document.getElementById(this.div).innerHTML = ""+this.tag;
J'ai essayé avec document.all[this.div].innerHTML = ""+this.tag;
Mais rien y fait.
Si quelqu'un peut m'aider, je ne peux hélas pas modifier la structure du html généré et insérer le script ailleur.
cs_DJTIME Messages postés 39 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 4 janvier 2008
13 janv. 2006 à 09:56
zegnoo t'es un roi mec !!!!
mille merci pour le code :)
petecruise Messages postés 1 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 20 décembre 2005
20 déc. 2005 à 12:15
Le code est vraiment bien fait, mais j'ai une question cependant.
Serait il possible de facilement modifier le format de la date qui est affiche dans le champs du formulaire de destination.
Pour le moment la date est affiche au format jj/mm/aaaa et je voudrais obtenir un format mm/dd/yyyy
gwel75 Messages postés 1 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 16 décembre 2005
16 déc. 2005 à 15:18
Super code !! Exactement ce que je cherchais, un calendrier côté client, paramétrable, léger (un seul fichier script), efficace, sobre. Bravo vraiment.
Je confirme que sous IE6 le contrôle ne s'affiche pas quand on met la div dans un formulaire, il suffit de la sortir et c'est bon.
Excellent ! Bravo et merci.
trambi Messages postés 1 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
28 nov. 2005 à 23:02
En fait, il y a un problème sous IE (6) quand on met la division (balise div) dans un formulaire (balise form). Il faudrait pouvoir dire si on veut mettre la division dans un formulaire ou non.
Excellent travail Zegnoo !
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
19 nov. 2005 à 14:06
comment ça le drag&drop plante?:)
quel navigateur et quel OS utilises tu stp?
teacherfred Messages postés 3 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 14 mars 2005
19 nov. 2005 à 10:32
j'ai finalement trouvé : il faut remplacer dans
//retourne la liste des mois
this.mList=function()
.....


for(var i=0; i<this.month.length; i++)
{
tmp += "<option value='"+i+"'";
if(this.curMonth==i) {
nextmonth = i+1 ;
backmonth = i-1 ;
tmp += " selected";
}
tmp += ">"+ this.month[i] +"</option>\n";
}
tmp += "</select></td><td class='Gtxt'>\n";
tmp += this.yList();

nextyear = this.curYear+1;
backyear = this.curYear-1;

tmp += "</td></tr>";
tmp += "<tr><td colspan='2'>";
// ligne sous les selects mois en an //onclick='"+this.name+".getMonth(11);'
tmp += "";
tmp += "";

tmp += "";
tmp += "";

tmp += "</td></tr></table>";



et ensuite définir les styles des boutons :

.moisprec
{
background-image:url(prec.gif);
background-color:#949fc7;
background-repeat:no-repeat;
border-width:0px;
margin-top:5px;
margin-left:20px;
width:20px;
}
.moissuiv
{
background-image:url(suiv.gif);
background-color:#949fc7;
background-repeat:no-repeat;
border-width:0px;
width:20px;
}
.anprec
{
background-image:url(prec.gif);
background-color:#949fc7;
background-repeat:no-repeat;
border-width:0px;
margin-top:5px;
margin-left:40px;
width:20px;
}
.ansuiv
{
background-image:url(suiv.gif);
background-color:#949fc7;
background-repeat:no-repeat;
border-width:0px;
width:20px;
}

// suiv.gif et prec.gif sont des fleches 'suivant' et 'precedent' ; si les gif sont pas trop gros çà rentre sur la ligne
// deux boutons pour modifier les mois et deux pour les années, independemment

j'espère que çà servira, et que ce sera intégré dans la prochaine version...

salut à tous!
teacherfred Messages postés 3 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 14 mars 2005
19 nov. 2005 à 09:43
salut Zegnoo !

très pro ! sauf drag&drop qui plante... mais c'est pas grave

sinon j'ai ajouté une couleur différente pour le jour courant :

il faut créer la classe Gctoday (et Gctodayon) dans le css

puis

il faut changer dans le JS cette fonction : this.dayCell=function(d,n) par ce qui suit :

// affichage des cellules avec jours existants
this.dayCell=function(d,n)
{
var today = new Date();
var classjour=new String('');
var tmp = new String("");
var ferie=new String('');

// class jour férié
if(this.isFreeDay(d,this.curMonth))
tmp += "<td class='Gfree'";

// class today
else if (
this.checkDate(d)==today.getDate()
&& this.curMonth==today.getMonth()
&& this.curYear==today.getYear()
) {
tmp += "<td class='Gctoday'";
}

// autres jours
else
tmp += "<td class='Gc"+n+"'";
if(!document.layers)
{
if(this.isFreeDay(d,this.curMonth)) ferie = "FERIE" ;
tmp += "title='"+this.checkDate(d)+" "+this.month[this.curMonth]+" "+this.curYear+" "+ferie+"'";
tmp += " onmousedown='"+this.name+".getDate("";
tmp += this.checkDate(d)+"/";
tmp += this.checkDate(1+parseInt(this.curMonth))+"/";
tmp += this.curYear+""";
tmp += ");' ";
tmp += " onmouseover='this.className=this.className+"on";' ";
tmp += " onmouseout='this.className= this.className.substring(0,this.className.indexOf("on"));'";
}
else
tmp += " width='22' height='16' ";
tmp += ">";
return tmp;
}
// fin nouvelle fonction


le seul problème que j'ai, c'est pour rajouter des boutons "mois suivant" et "mois precedent" sous les selects :
j'ai fait des test mais marche pas... si quelqu'un a une idée... merci d'avance !!!

Fred
elzedo Messages postés 4 Date d'inscription jeudi 11 septembre 2003 Statut Membre Dernière intervention 14 juin 2007
3 nov. 2005 à 01:30
Bravo pour ce calendrier très bien developpé, il y a pas à dire...
Il est facile d'utilisation, facilement adaptable à ses besoins il est parfait !
Je l'ai modifié pour qu'il se poditionne par rapport à l'élément sur lequel l'évènement est déclenché.. aucun problème ! je vote 10...
oliverN00noors Messages postés 6 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 14 octobre 2005
14 oct. 2005 à 15:38
exactement zegnoo
bon dev à toi aussi
oki972 Messages postés 35 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 11 octobre 2007
14 oct. 2005 à 15:29
Zegnoo t'es un bon lol !
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
14 oct. 2005 à 15:22
a ma connaissance le fichier téléchargeable fonctionne sous IE6 (bis).
(et IE6 gère la méthode document.getElementById, conforme au DOM)
le problème devait plutôt se situer au niveau de son implémentation dans ta page.
Mais si tu as trouvé une solution qui te convient c'est nickel, inutile de pollémiquer:)
bon dev.
oliverN00noors Messages postés 6 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 14 octobre 2005
14 oct. 2005 à 15:21
ben ptet que javais un autre pb mais quand jai débuggé sous IE pour voir d'ou ça venait, ça plantait sur getElementById donc c pour ça que j'ai rajouté le test et rajouté document.all
voilà
et zegnoo ton boulot est nickel ya rien à redire
oki972 Messages postés 35 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 11 octobre 2007
14 oct. 2005 à 15:17
Zegnoo t'as bien fait ton boulot ca marche sous IE sans modification aucune. Oliv' tu dois avoir un pb! @+ les gars!
oliverN00noors Messages postés 6 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 14 octobre 2005
14 oct. 2005 à 15:13
ben document.getElementById(this.div) ne fonctionne pas avec IE6 mais document.all[] fonctionne donc ça résout le problème
le fichier js que j'ai téléchargé ne comprennait pas ce test
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
14 oct. 2005 à 15:05
l'exemple téléchargeable sur ce site fonctionne sous IE6.
ton problème devait être autre.
la rustine proposée ne me semble donc pas nécessaire:)
oliverN00noors Messages postés 6 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 14 octobre 2005
14 oct. 2005 à 14:32
salut,
en fait j'ai résolu le problème,
pour que le calendrier soit compatible avec IE6 il faut rajouter un test document.all et utiliser cette fonction plutot que document.getElementById()
pour etre plus précis dans la fonction this.show() cela donne cela :
//test compatibilité Firefox
else if(document.getElementById(this.div))
{document.getElementById(this.div).innerHTML = ""+this.tag;}
//test compatibilité IE6
else if(document.all)
{document.all[this.div].innerHTML = ""+this.tag;}
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
14 oct. 2005 à 13:00
salut:)
désolé pour la lenteur des réponses je ne suis pas très disponible en ce moment.
tu peux être un peu plus descriptif par rapport à ton problème?
le div qui contient le calendrier ne doit pas être dans un tableau car il a des coordonnées absolues, ça vient peut être de la.
bon dev:)
oliverN00noors Messages postés 6 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 14 octobre 2005
12 oct. 2005 à 14:42
Ce calendrier est très bien développé félicitation!
Le problème que j'ai c'est que je dois le faire fonctionner :
- sous Firefox : il fonctionne nickel
- sous IE6 et là apperemment cela semble bloquer quelque part puisque le calendrier ne s'affiche pas
Si vous pouvez m'aider je vous en serait reconnaissant
Merci d'avance
oliverN00noors Messages postés 6 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 14 octobre 2005
12 oct. 2005 à 14:42
Ce calendrier est très bien développé félicitation!
Le problème que j'ai c'est que je dois le faire fonctionner :
- sous Firefox : il fonctionne nickel
- sous IE6 et là apperemment cela semble bloquer quelque part puisque le calendrier ne s'affiche pas
Si vous pouvez m'aider je vous en serait reconnaissant
Merci d'avance
MrCafe Messages postés 1 Date d'inscription lundi 22 août 2005 Statut Membre Dernière intervention 22 août 2005
22 août 2005 à 00:54
Bon boulo ;)
ton scripte sera utilisé plienement
merci et bravo encore
oki972 Messages postés 35 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 11 octobre 2007
24 juin 2005 à 14:14
Ben tu lances le fichier index.html pour commencer, ensuite tu regardes le code, pour comprendre un peu comment ça fonctionne. Le fichier Js (c'est le script) tu verras il n'y a pas beaucoup à changer (c'est selon que tu as 1, ou 2 champ de dates)
Sinon Zegnoo merci pour le travail que tu as fait avec moi, j'avais omis de mettre une note, alors je suis revenu te mettre un 10/10 tant pour la qualité du code que pour l'aide rapide que tu m'as fourni. @+ l'ami, Je vous envoie le bonjour des antilles!
catoio Messages postés 1 Date d'inscription vendredi 24 juin 2005 Statut Membre Dernière intervention 24 juin 2005
24 juin 2005 à 13:19
calendrier vivement conseillé :)
good job !!!!
cs_aminix9 Messages postés 96 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 9 février 2010
22 mai 2005 à 19:40
salu les amis je sui un débutant et j arrive pa à utiliser le calendrier !!
j ai téléchargé les 3 fichiers mais je sai pa koi faire !!
au secours !!
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
11 avril 2005 à 10:06
une version prenant en charge plusieurs champs cible est disponible à cette URL :
http://www.zegnoo.net/GnooCalendar/multi
oki972 Messages postés 35 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 11 octobre 2007
21 mars 2005 à 16:49
Je voudrais savoir comment renseigner plusieurs champ avec un seul calendrier. Sinon, c'est vraiment du bon boulot, avec ce petit plus si on peut m'aider il sera super pro! Help me zegnoo... ;)
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
22 déc. 2004 à 15:27
salut,
effectivement il semble que le changement de la valeur du champs via le calendrier ne génère aucun évènement récupérable par le champs.
A priori, une solution serait d'initialiser un timer au chargement de la page qui teste régulièrement la valeur du champs.
bon dev:)
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
16 déc. 2004 à 08:54
J'ai un petit souci quand meme...
quand je je rempli mon champ txt avec le calendar mais sur ce champ txt jai aussi des evenements (onChange et onkeyup) qui malheureusement ne s'effectue pas quand je fait cette transposition
Une solution??
++
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
16 déc. 2004 à 08:27
Genial exactement ce que je cherchai!!!
Merci
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
25 nov. 2004 à 14:00
nan nan, tu n'as rien oublié, ça serait plutôt moi:)
j'ai corrigé le problème (en ne déplaçant le calendrier que lorsqu'il est apparent).
bon dev:)
otd2004 Messages postés 1 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 25 novembre 2004
25 nov. 2004 à 10:30
Effectivement ce calendrier est très pro!
J'essaie de le masquer après la sélection d'une date en utilisant la méthode hide() dans la méthode getDate(), le calendrier se masque bien, par contre si je le réouvre, le pointeur de souris se positionne sur la date sélectionnée précédemment en restant bloqué dessus, ce qui a pour effet le déplacement du calendrier au déplacement de la souris. Aurais-je oublié quelque chose ?
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
13 oct. 2004 à 17:11
concernant la disparition du calendrier lors de la selection d'une date, j'ai dit des bétises précédemment (à propos du onchange), la solution est de faire appelle à la méthode hide() du calendrier dans sa méthode getDate().
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
12 oct. 2004 à 20:25
oui c'est possible, tu peux faire apparaitre le calendrier dans un div que tu peux positionner ou tu veux
seufer Messages postés 10 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 10 mai 2006
12 oct. 2004 à 16:24
ok merci, j'avais trouvé entre temps :)
par contre je voudrais positionné le calendrier en fonction de la position du champs, tu crois que c'est possible

En fait je ne voudrais pas que 2 calendriers se superposent

merci !!
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
7 oct. 2004 à 17:30
en appellant sa méthode hide() sur le onchange du champs qui reçoit la date sélectionnée?:)
seufer Messages postés 10 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 10 mai 2006
7 oct. 2004 à 17:28
super ton calendrier
mais comment fait-on pour qu'il se cache une fois que l'on a choisi un date

merci
zegnoo Messages postés 19 Date d'inscription dimanche 8 août 2004 Statut Membre Dernière intervention 27 mars 2006
2 sept. 2004 à 13:48
"rajouter des évènement à une date et qui serait linké vers une page qui aurait le descriptif de l'évènement"
c'est pas très clair tout ça:)

(merci pour les compliments:))
cs_theoreme Messages postés 3 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 1 septembre 2004
1 sept. 2004 à 16:43
Super, mais sans vouloir compliquer les choses, je voudrait pouvoir rajouter des évènement à une date et qui serait linké vers une page qui aurait le descriptif de l'évènement. Balaise non !!!!!!
cs_titours Messages postés 2 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 août 2004
26 août 2004 à 16:27
Ce calendrier est génial, du super boulot je tiens à le dire je suis informaticien je sais de quoi je parle, y'a du taf là dessus.
good job !
Rejoignez-nous