Présentation
Ce calenderier est développé en PHP 5, sous forme de 3 classes. Une classe gêre l’affichage du calendrier, une autre gêre les évènements et une autre est appellée à chaque événement, elle décrit un événement.
Lors du clique sur un événement, une popup DHTML est ouverte et son contenu est dans un fichier « popup.php » appellé en POST avec comme argument, l’argument défini lors de la création de l’événement.
Télécharger
Nous pouvez télécharger le calendrier sous forme d’archive contenant le code source et la page de démo en plusieurs formats :
- Télécharger le calendrier en zip
- Télécharger le calendrier en tar.gz
- Télécharger le calendrier en tar.bz2
Mise en place
Comme vous pouvez le voir dans le fichier index.php de l’archive, voici comment créer simplement un calendrier:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | // On charge les classes nécessaires require('librairies/Calendrier.php'); require('librairies/CalendrierEvents.php'); require('librairies/CalendrierEvent.php'); // On détermine quel mois afficher $mois = (int) ((isset($_GET['mois'])) ? $_GET['mois'] : date('m')); $annee = (int) ((isset($_GET['annee'])) ? $_GET['annee'] : date('Y')); // On créer les événements $events = new CalendrierEvents(); $events->add( array( 'from' => mktime(12, 0, 0, 6, 12, 2009), 'to' => mktime(18, 0, 0, 6, 12, 2009), 'name' => 'Petit test', 'color' => '#00ff00', 'ajax_params' => 'id=0' ), array( 'from' => mktime(8, 30, 0, 6, 5, 2009), 'to' => mktime(18, 0, 0, 6, 8, 2009), 'name' => 'Second test assez long', 'color' => '#ffff00', 'ajax_params' => 'id=1', ), array( 'from' => mktime(7, 30, 0, 6, 6, 2009), 'to' => mktime(23, 19, 0, 6, 15, 2009), 'name' => '3ème test assez long', 'color' => '#00ffff', 'ajax_params' => 'id=2' ) ); // On créer le carlendrier $calendrier = new Calendrier($mois, $annee); // On ajoutes les événements au calendrier $calendrier->setEvents($events); // On défini la syntaxe des liens // %Y = Année (AAAA) // %M = Mois (MM) $calendrier->setLinks(LOCAL_PATH.'%Y/%M'); // On défini la syntaxe des heures // Attention: Le contenu de cette variable est passé dans "date" $calendrier->setHours('H<\s\up>i</\s\up>'); // On défini quel sont les conditions d'accès au contenu de la popup $calendrier->setPopup(LOCAL_PATH.'popup.php', 'POST'); // On affiche le calendrier $calendrier->parse(); |
Vous pouvez aussi faire intervenir une base de données afin de pouvoir créer de manière interactive vos énéments. Remplacez le code de la ligne 11 à 34.

Bonjour et Bonne Année,
J’aprécie beaucoup ce calendrier, malheureusement il y a un décalage de jours lorsqu’il est affiché avec IE inférier à 8. Je n’ai pas réussi à résoudre le problème, voilà pourquoi je vous demande comment faire.
(janvier 2010 : le 4 s’affiche sous la colonne vandrdi au lieu de lundi).
Bonjour,
Afin de corriger cette erreur, voici un nouveau fichier CSS
calendrier.cssà télécharger qui prend place de l’ancien:http://projects.d-sites.com/calendrier/style/calendrier.css
Note: Les archives vont être mises à jour sous peu.
Merci de votre intérêt pour ce calendrier.
Samuel.
bonjour,
le calendrier est sympa mais j’ai des erreurs du type:
Notice: Undefined offset: 1244764800 in C:\wamp\www\modules\calendrier\librairies\CalendrierEvents.php on line 37
Notice: Undefined offset: 1244160000 in C:\wamp\www\modules\calendrier\librairies\CalendrierEvents.php on line 37
Notice: Undefined offset: 1247270400 in C:\wamp\www\modules\calendrier\librairies\CalendrierEvents.php on line 48
Notice: Undefined offset: 1247356800 in C:\wamp\www\modules\calendrier\librairies\CalendrierEvents.php on line 48
j’ai oublié de dire…comment fait on pour résoudre ce probleme?
Voici la solution pour ceux qui ont le meme probleme que moi :
dans le fichier CalendrierEvents.php, modifier la fonction get ($time) par celle là:
public function get ($time) {
if (isset($this->events[$time])) {
$events = $this->events[$time];
if (count($events) > 0) {
return $events;
}
else {
return array();
}
}
}
Normalement plus aucun probleme!
Petite info en plus, pensez a activer la fonction url_rewrite de apache
Tres bon calendrier, vraiment du bon boulot!