CALENDRIER ULTRA SIMPLE ET PERSONNALISABLE

Signaler
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
-
Messages postés
1
Date d'inscription
samedi 20 octobre 2012
Statut
Membre
Dernière intervention
20 octobre 2012
-
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/44133-calendrier-ultra-simple-et-personnalisable

Messages postés
1
Date d'inscription
samedi 20 octobre 2012
Statut
Membre
Dernière intervention
20 octobre 2012

Bonjour,

Je viens de télécharger et installer le script, mais chez moi il ne fait qu'afficher un calendrier et impossible de sélectionner une date.
Si cela est possible (ce que j'éspère) qu'est-ce que j'ai raté.

Merci.
Messages postés
1
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
31 juillet 2009

Bonjours à tous
Je suis débutant et donc j’apprends petit à petit
Mais j'ai une petite question:
Tu n'utilise pas une base de données?
Si tu en utilise pourrais-tu ajouter dans le zip le fichier .SQL
Ce serai génial et sa m'aiderai à comprendre
Merci beaucoup theplayer777
Messages postés
1
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2009

Je ne comprends pas cette ligne :

jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0);

On utilise la fonction cal_to_jd qui convertit un calendrier en nombre de jours Julien en prenant comme premier paramètre l'une des constantes suivantes : CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH ou CAL_FRENCH.

Dans le code ci-dessus on rajoute un '$' ce qui veut dire que c'est une variable qui est envoyée et non plus une constante. Le plus étrange c'est que ça passe niquel en exécutant le fichier "index.php" fourni dans le pack mais dès lors qu'on cherche à implémenter la fonction calendrier() ailleurs dans nos pages on se retrouve avec un joli "Notice: Undefined variable: CAL_FRENCH in /Users/xxxx/Sites/calendrier/calendrier.php on line xx", ce qui est logique finalement. Car j'ai beau chercher dans tous les fichiers du pack, je ne trouve aucun endroit ou $CAL_FRENCH a été définie. Et si, dans index.php vous la remplacez par $cequevousvoulez ça passe toujours aussi bien...

Cerise sur le gâteau, en enlevant le $ à CAL_FRENCH et en passant donc la constante (au lieu de la variable) en premier paramètre de la fonction cal_to_jd(), le calendrier ne calcule plus bien les jours du mois précédant celui affiché.

J'ai finalement résolu le problème en passant CAL_GREGORIAN à la fonction cal_to_jd(), sachant que de nos jours le calendrier Julien a été abandonné depuis belle lurette et qu'on est en grégorien. À priori ça fonctionne, mais j'apprécierai que l'auteur du script le vérifie par lui-même... Voilà, j'espère avoir été assez clair :).

Merci :D
Messages postés
27
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

@cheznounours: Merci pour votre commentaire, ça fait toujours plaisir ;)

@lam55: mettez un $ devant CALL_FRENCH et cela devrait régler le problème.

@bourricot17: Il y aurait certainement un moyen de faire cela mais il faudrait y passer un peu de temps... temps que je n'ai malheureusement pas vraiment ces temps (je suis aux études) mais envoyez-moi un mail avec quelques précisions et je verrai ce que je peux faire
Messages postés
2
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

wéé j'ai réussi à le faire integrer , merci beaucouuuuup
Messages postés
17
Date d'inscription
dimanche 23 octobre 2005
Statut
Membre
Dernière intervention
23 novembre 2014

bonjour,

vraiment simple a utiliser
très bon descriptif

10/10
Messages postés
2
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
24 février 2009

commznt reglez cette erreur svp
merci d'avance
Notice: Undefined variable: CALL_FRENCH
Messages postés
2
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
1 février 2010

Bonjour,
Je suis vraiment novice en php, je trouve votre calendrier sympa et simple à mettre en œuvre, mais y aurait-il un complément de code qui permettrait de changer les couleurs de jours ou semaines particulières: indication de périodes réservées pour un hôtel ou gite par exemple?
Merci d'avance pour vos infos!
Messages postés
18
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
16 juin 2009

Salut;
Ok merci, j'avais fini par faire le mien.
JE voudrais ajouter un peu d'ajax pour animer tout ça,
Exemple quand on change de mois , ici la page se recharge, je bosse sur un truc pour eviter ça. La gestion de rendez-vous et d'évenements sera aussi intégré.
A bientôt
Messages postés
27
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

et bien, par exemple, tu remplace cette ligne dans calendrier.php:

$premierdumois = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0);

par celle-ci:

$premierdumois = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0)+1;

ce qui aura pour effet de décaler les dates d'un jour... ensuite, dans config.php,
tu modifie cette partie:

$jours = array();
$jours[1] = "Lu";
$jours[2] = "Ma";
$jours[3] = "Me";
$jours[4] = "Je";
$jours[5] = "Ve";
$jours[6] = "Sa";
$jours[7] = "Di";

pour que ta semaine commence par dimanche, ça ferait comme ça:

$jours = array();
$jours[1] = "Di";
$jours[2] = "Lu";
$jours[3] = "Ma";
$jours[4] = "Me";
$jours[5] = "Je";
$jours[6] = "Ve";
$jours[7] = "Sa";

et le tour est joué... si tu n'a pas compris ou que tu as un problème redis-moi ;)
Messages postés
18
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
16 juin 2009

Bonjour,
OK, mais je fais ça comment , décaler l'ordre de la formule ?

Merci d'avance pour les reponses
Messages postés
27
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

Normalement en décalant d'un jour la formule tu devrais pouvoir t'en sortir sans trop de problème, et en changeant l'ordre des jours en haut...
Messages postés
18
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
16 juin 2009

SAlut à tous !
Comment faire pour commencer le calendrier à Dimanche , si c'est possible .
Le code à l'air ok ! et assez simple, à bidouiller facilement

A bientôt
Messages postés
203
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 août 2017

Super code, je me suis plong? dedans et je l'ai un peu bidouiller ^^.
J'ai vu que si on avance les mois pour arriver ? l'annee suivante, on a quand m?me le jour colori?. Je m'explique, le 27 mai 2008, 27 mai 2009 ou bien 27 mai 2002 sont tous colori?.
Je pense donc qu'il faut modifier la condition en ajoutant l'ann'e:
if($jour date("d") && $m date("n") && $a == date("Y")){
Messages postés
239
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
20 avril 2009

> PS : les accolades { } ne sont pas obligatoire sur les conditions lorsque qu'une seule action est faite. :)

Bien sur mais si tu n'en veux pas personnelement au pauvre gars qui va maintenir ton code, c'est quand meme plus sympa de toujours les mettre :o)

Si tu veux vraiment rester sur une ligne, tu as ca:

$m = (isset($_GET['m']) && $_GET['m']!='') ? $_GET['m'] : $m_donne;

Encore que pour rendre le code plus lisible, le mieux est de mettre tout ca dans une fonction genre:

function GetParam($szVar,$szDefault = false)
{
return (isset($_GET[szVar]) && $_GET[szVar]!='') ? $_GET[szVar] : $szDefault ;
}

Eric
Messages postés
56
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
30 novembre 2007

C'est pas mieux ca :

# if ( isset($_GET['m']) && $_GET['m'] != '') $m = $_GET['m']; else $m = $m_donne;
# if ( isset($_GET['a']) && $_GET['a'] != '') $a = $_GET['a']; else $a = $a_donne;

que ca : ?

# $m = $_GET['m'];
# $a = $_GET['a'];
## if ($m "") { $m $m_donne; }# if ($a "") { $a $a_donne; }

PS : les accolades { } ne sont pas obligatoire sur les conditions lorsque qu'une seule action est faite. :)
Messages postés
56
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
30 novembre 2007

Vraiment beau code,

Enfin j'n'ai pas encore analysé le code, mais ca m'a l'air assez bien !

:)
Messages postés
2
Date d'inscription
dimanche 23 juillet 2006
Statut
Membre
Dernière intervention
26 septembre 2007

Oups!!! le boulet que je suis!!!

Parti une démarche purement technique, j'ai perdu de vue l'aspect pratique.

Il est clair que la grande majorité des utilisations dépasse rarement les 2 siècles (voire largement moins).

J'aurais du réfléchir avant de poster

Toutes mes excuses donc.

Pour le reste, le code est au poil. Modifiable à souhait et très efficace.

Bravo et merci.
Messages postés
239
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
20 avril 2009

Pour les annees bissextiles, T_JAY a raison, mais dans la pratique, la "regle du %4" fonctionne tres bien entre 1901 et 2099.

[Begin remarque off-topic]
Ca m'a toujours fait marrer de voir des gens se prendre la tete a implementer la fonction "complete" en C alors qu'ils utilisaient derriere des time_t permettant de representer des dates uniquement comprises entre 1970 et 2038 :o)
[End remarque off-topic]

Sinon ton code est tres clair et le resultat tres esthetique.
Bravo!

Eric
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

plutôt que de faire des formules avec d'innombrables exceptions, tu devraiyt plutôt utiliser les fonctions dates toutes faites de php pour parvenir avec certitude au bon résultat.
Messages postés
27
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

Salut,

Merci pour cette précision je n'étais pas au courant de cette règle... Dès que j'y arriverai (en effet j'ai essayé hier de mettre à jour ma source mais impossible ça ne fonctionnait pas!) je rajouterai ça dans mon code.

Merci encore!
Messages postés
2
Date d'inscription
dimanche 23 juillet 2006
Statut
Membre
Dernière intervention
26 septembre 2007

Bonjour,

sympa ton calendrier, c'est exactement ce que je cherchais.

Toutefois, il me semble que tu as fais une erreur sur le calcul des années bissextiles.

Règles sur les années bissextiles:
- Les années divisibles par 4 sont bissextiles, pas les autres.
- Exception: les années divisibles par 100 ne sont pas bissextiles.
- Exception à l'exception: les années divisibles par 400 sont bissextiles.

En conséquence, il me semble qu'il faudrait modifier ton code de la façon suivante:

if ( $a%400==0 || ( $a%4==0 && $a%100!=0 ) ) {
$nbrjour = array(0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
}else{
$nbrjour = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
}

Merci beaucoup pour ce code en tout cas.

Jérôme
Messages postés
27
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

plus... rigoureusement tu dis? Je vois pas exactement ce que tu veux que je te dise mais disons que je cherchais un calendrier tout simple que je puisse modifier à volonté et comme je ne suis pas un pro du PHP j'ai trouvé que la plupart des codes que j'avais vu étaient assez complexes alors j'en ai fais un moi-même avec du code plus basic (pour autant qu'on connaisse un minimum le php bien entendu) et avec des styles CSS pour pouvoir personnaliser facilement les couleurs et tailles des éléments du calendrier (texte,tableau,...) Voilà ;)
Messages postés
21
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
30 septembre 2007

Euh, ça a l'air prometteur mais explique nous plus rigoureusement enfin j'aimerais bien :p !
Messages postés
224
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
29 mars 2009

Merci, me voilà moins...
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Google -> Yahoo User Interface
A connaître d'urgence.
Messages postés
224
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
29 mars 2009

Evangun, un lien ?
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
D'accord, merci.
Bon, ce n'est pas pour diminuer ton mérite du tout, mais je dois dire à tous ceux qui cherchent un calendrier d'aller voir aussi les librairies Yahoo (YUI), il y a des scripts vraiment très bien foutus, calendriers cliquables et tout.
Messages postés
27
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

Oui C'est en fait un calendrier tout simple qui affiche le mois en cours avec la date du jour dans une couleur différente. On peut aussi passer de mois en mois dans le passé et le futur. Ce qui est bien c'est qu'il est facilement utilisable et personnalisable même pour des débutants.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Bonjour,

est-ce que tu pourrais détailler les fonctions de ton calendrier stp ?
Histoire de ne pas avoir à analyser la source pour savoir pourquoi je devrais l'utiliser.
Merci