Après plusieurs recherches de scripts de calendrier, j'ai décidé de développer ma propre class, voici une présentation :
- Affichage possible, en popup, en inclusion, en div ...
- Afficher un évènement avec le titre en rollover sur une date
- Afficher un évènement s'étalant sur une période avec le titre en rollover sur une date
- Définir un évènement par défaut
- Affiche ou pas une sélection pour une semaine
- Changer de mois sans recherger la page (merci ajax)
- ...
Le code est simple et très documenté ! et même si j'ai prévu pas mal de personnalisation par feuille de style etc... un développeur n'aura aucun mal à modifier à souhait ce calendrier.
Mais bon j'ai assez parlé : voici la page de test avec lien vers la doc et les source.
http://www.olecorre.com/calendar
exemple de code pour l'utiliser :
Code : Tout sélectionner
$mois = isset($_GET['mois']) ? $_GET['mois'] : date('m');
$annee = isset($_GET['annee']) ? $_GET['annee'] : date('Y');
/**
* création du calendrier
*/
$calendrier = new calendrier($annee, $mois);
/**
* définit les boutons suivant, précédent et l'évènement pas défaut
*/
$calendrier->affec_previous($mois, $annee, "mois_prec.jpg");
$calendrier->affec_next($mois, $annee,"mois_suiv.jpg");
$calendrier->affec_event_default("test",time());
/**
* ajout d'évènement
* affec_day($day, $link='#', $class='',$titre='')
*/
$jour1 = mktime(0,0,0,9,18,2006);
$jour2 = mktime(0,0,0,9,20,2006);
$calendrier->affec_day($jour1, '#','','test event');
$calendrier->affec_day($jour2, '#','','test event 2');
/**
* ajout d'évènement sur plusieurs jours
* affec_periode($debut, $fin, $link='#', $class='',$titre='')
*/
$debut1 = mktime(0,0,0,9,18,2006);
$fin1 = mktime(0,0,0,9,25,2006);
$debut2 = mktime(0,0,0,9,28,2006);
$fin2 = mktime(0,0,0,10,4,2006);
$calendrier->affec_periode($debut1,$fin1, '#', '', 'test periode 1');
$calendrier->affec_periode($debut2,$fin2, '#', '', 'test periode 2');
/**
* Affiche une première colonne permettant de sélectionner la semaine
* affec_semaine($affiche=true, $link='#', $variable1="datedebut", $variable2="datefin", $titre=">")
*/
$calendrier->affec_semaine(false);
/**
* Affiche le calendrier
*/
echo $calendrier->affiche();PS: Merci à Cyrano pour la doc et les tests de cette class