Hi,
Could someone help me debugging this code :
1. <?
2. // fonction principale
3. function AfficheCalendrier ($Aff=1,$Mois="",$Annee=0,$evenement="",$Page="",$Aff1=0) {
4. // definitions complementaires
5. $NomDuMois=array("erreur","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
6. $Week=array(
7. array("d","l","m","M","j","v","s"), // début d'affichage =dimanche
8. array("l","m","M","j","v","s","d") // début d'affichage =lundi
9. );
10. // controle pour les valeurs par default
11. if ($Aff != 0) { $Aff = 1;} // toute autre valeurs que 0 retourne 1
12. if ( $Mois >0 or $Mois >13 ) {}else{$Mois=date("n" );}// mois courrant par défaut
13. if (!isset($Annee)and $Annee >0 ){$Annee=date("Y");} // annee courrante par défaut
14. if (!isset($Page)) {$Page=$_SERVER['PHP_SELF'];} // script d'appel par default
15. // ajustement des variables du script
16. $NoJour = -date("w",mktime(0,0,0,$Mois,1,$Annee)); // détermine le décalage du 1er dans la semaine
17. if ($Aff == 0 ) {$NoJour +=1;}else{$NoJour +=2 ; } // pour l'ajuster suivant l'affichage
18. if ($NoJour >1 && $Aff ==1) { $NoJour -=7;} // on s'assure du début de l'affichage a la 1ere ligne du tableau
19. $JourMax =date("t",mktime(0,0,0,$Mois,1,$Annee)); // nombre de jours dans le mois
20. $Liens = 0; // compteur du tableau des liens
21. $cejour = date("j n Y"); // la date actuelle
22. if (!is_array($evenement)) { // fonctionnement erratique si ce n'est pas un tableau
23. $evenement= (array) $evenement ;
24. }
25. @sort($evenement); // le tableau est classe dans l'ordre
26. $evenement=@array_unique($evenement) ; // eliminer les doublons
27. $evenement= @array_slice($evenement,0); // suprimer les vides
28.
29. // affichage du debut de calendrier
30. print "
31. <A class=\"MoisAnnee\"NAME=\"$NomDuMois[$Mois]_$Annee\"> $NomDuMois[$Mois] $Annee </A>
32. <TABLE class=\"Mois\">
33. <TR class=\"S\">\n";
34. for ( $w=0;$w<7;$w++){
35. print " <TD class=\"e".$w."\">".strtoupper($Week[$Aff][$w])."</TD> \n";
36. }
37. print " </TR>\n";
38. // création du calendrier
39.
40. for ($semaine=1;$semaine <=6;$semaine++) { // 6 semaines par mois
41. print " <TR class=\"S$semaine\">\n";
42. for ($journee=1;$journee <=7;$journee++) { // 7 jours par semaine
43. if ("$NoJour $Mois $Annee"==$cejour) { // est ce le jour actuel ?
44. print " <TD class=\"J\">"; // oui on utilise la surbrillance
45. }else{
46. print " <TD class=\"J".date("w",mktime(0,0,0,$Mois,$NoJour,$Annee))."\">";
47. }
48. if ($NoJour >0 && $NoJour <= $JourMax ){ // si le jour est valide a afficher
49. if (isset($evenement[$Liens]) && $NoJour >0 && $NoJour == $evenement[$Liens]){ // si evenement
50. $elements=explode(",",$evenement[$Liens]); // separe les infos
51. if ($elements[1]=="") { // si url vide
52. $elements[1]= $Page; // url par default
53. }
54. $pos = strpos($elements[1],"?"); // verifier si l'url contiend des parametres
55. if ($pos === false) {
56. $elements[1].="?"; // si non on ajoute le ?
57. }else{
58. $elements[1].="&"; // si oui on complete par &
59. }
60. // le lien est pret pour l'affichage
61. print "<A HREF=\"$elements[1]NoJour=$NoJour&Mois=$Mois&Annee=$Annee \"title=\"$elements[2]\">$elements[0]</A>";
62. $Liens++; // incrementer le tableau des liens
63. }else{ // sinon juste la date
64. print "$NoJour";
65. }
66. }else{
67. if ($Aff1>0) { // si remplir la table
68. print "<EM class=\"JComp\"\">"; // afficher une date complémentaire au mois en cours
69. print date("j",mktime(0,0,0,$Mois,$NoJour,$Annee)); // afficher les joursdu mois prec / suivant
70. print "</EM>";
71. }else{
72. print" "; // afficher un espace si jour non valide
73. }
74. }
75. $NoJour ++; // incremente le jour
76. print "</TD>\n"; // on passe au jour suivant
77. }
78. if ($NoJour > $JourMax){ $semaine ++; } // on échappe la dernière ligne si vide
79. print " </TR>\n"; // semaine suivante
80. }
81. print "</TABLE>\n"; // le mois est affiché
82. }
83. /****************************************************************/
?>
Thanx for your help !