<?php
// ------------------------------------------------------------------------- //
// Micro-Calendrier //
// ------------------------------------------------------------------------- //
// Auteur: DemiPoulpe <demipoulpe@bentobox.jp> //
// Web: http://www.bentobox.jp //
// ------------------------------------------------------------------------- //
/*
Un tout petit script de calendrier dynamique qui affiche 7 jours consecutifs
avec le nom des mois et des jours correspondants en français, il inclu aussi un
petit systeme de navigation qui permet de naviguer dans l'année .
Ce script peut etre facilement couplé avec un gestionnaire d 'evenement
*/
//-----------------------------------------------------------------------------
//Definition des variables
//-----------------------------------------------------------------------------
$i='0'; //indice pour parcourir les tableaux
$i1='1'; //indice pour parcourir les tableaux
$i2='0'; //indice pour parcourir les tableaux
$now = date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("Y"))); //date systeme
$d_now = date("d", mktime(0,0,0,date("m"),date("d"),date("Y"))); //jour de la date systeme
$n='60'; // width des colonnes
if(empty($mois)) $mois = date("n"); //mois systeme si non renseigné
if(empty($annee)) $annee = date("Y"); //annee systeme si non renseigné
if(empty($jour)) $jour = date("d"); //jour systeme si non renseigné
$septjour = date("Y-m-d", mktime(0,0,0,$mois,$jour+$i,$annee)); //date du premier jour du tableau
$d_septjour= date("d", mktime(0,0,0,$mois,$jour,$annee)); //jour du premier jour du tableau + '$i'
$largeur9=$n*'9'; // Largeur des tableaux
$largeur7=$n*'7'; // Largeur des tableaux
$couleur='#CCFF33'; // coouleur du tableau general
?>
<table width="<?php echo $largeur9;?>" border="0" cellspacing="0" cellpadding="0" valign="top">
<tr valign="top">
<td width="<?php echo $n;?>" align="center" valign="middle" bgcolor="<?php echo $couleur;?>">
<?php
//-----------------------------------------------------------------------------
//Fleche de navigation << ( principe on ne peut pas naviguer avec la fleches < à des dates inferieures à la date systeme
//-----------------------------------------------------------------------------
$i_1='1';//nombre de jour en moins en cas de recul dans le tableau ( fleche de navigation )
$septjour_1=date("Y-m-d", mktime(0,0,0,$mois,$jour-1,$annee)); //date du premier jour du tableau - '$i_1' jour
$d_septjour_1=date("d", mktime(0,0,0,$mois,$jour-1,$annee)); //jour du premier jour du tableau - '$i_1' jour
$m_septjour_1=date("m", mktime(0,0,0,$mois,$jour-1,$annee)); //mois du premier jour du tableau - '$i_1' jour
$y_septjour_1=date("y", mktime(0,0,0,$mois,$jour-1,$annee)); //année du premier jour du tableau - '$i_1' jour
IF ($septjour_1 >= $now) //si la date du premier jour du tableau - '$i_1' jour est sup ou egale à la date systeme
{
echo "<a href=\"index.php?action=1&jour=".$d_septjour_1."&mois=".$m_septjour_1."&annee=".$y_septjour_1."\"><font class=\"texte\"> ( - ) </font></a>";
}
ELSE
{
echo " ";
}
?>
</td>
<td valign="top" bgcolor="<?php echo $couleur;?>" >
<table width="<?php echo $largeur7;?>" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td colspan="7">
<table width="<?php echo $largeur7;?>" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td colspan="7">
<?php
//-----------------------------------------------------------------------------
//Affichage du nom du mois
//-----------------------------------------------------------------------------
$month = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
$nommois=$month[$mois-1]; //nom du mois du premier jour du tableau en français
$nommoissuivant=$month[$mois+1-1]; //nom du mois suivant celui du premier jour du tableau en français
$datefinmois= date("Y-m-d", mktime(0,0,0,$mois+1,0,$annee));
$nbrjourmois =date("d",mktime(0,0,0,$mois+1,0,$annee)); //nombre de jour du mois du premier jour du tableau
$datediff = date("d", mktime(0,0,0,$mois,$nbrjourmois-$d_septjour+1,$annee));//nombre de jour entre le premier jour du tableau et la fin du mois
$largeurtab1=$n*$datediff; //largeur du premier tableau
IF ($largeurtab1<>'7'*$n) //si le premier tableau n'occupe pas les ' 7*$n '
{
$largeurtab2=('7'*$n)-$largeurtab1; //largeur du deuxieme tableau
}
ELSE
{
$largeurtab2='0'; //largeur du deuxieme tableau
}
//Alternance des couleurs pour la barres des mois
IF (($mois =='01')||($mois =='03')||($mois =='05')||($mois =='07')||($mois =='09')||($mois =='11'))
{
$couleurbarremois="FFF000";
$couleurbarremois2="ccc333";
}
ELSE
{
$couleurbarremois="ccc333";
$couleurbarremois2="FFF000";
}
//Affichage
IF($datediff < '7')
{
echo"<table bgcolor=".$couleurbarremois." width=".$largeurtab1." border=\"0\"><tr><td><div align=\"center\">".$nommois."</div></td></tr></table></td><td width=".$largeurtab2."><table bgcolor=".$couleurbarremois2." width=".$largeurtab2." border=\"0\"><tr><td><div align=\"center\">".$nommoissuivant."</div></td></tr></table>";
}
ELSE
{
echo"<table bgcolor=".$couleurbarremois." width=".$largeur7." border=\"0\"><tr><td><div align=\"center\">".$nommois."</div></td></tr></table>";
}
?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="<?php echo $largeur7;?>" border="0" cellspacing="0" cellpadding="0" valign="top">
<tr>
<?php
//-----------------------------------------------------------------------------
//Affichage du nom des jours en français
//-----------------------------------------------------------------------------
WHILE ($i<='6')
{
$septjour = date("Y-m-d", mktime(0,0,0,$mois,$jour+$i,$annee)); //date du premier jour du tableau + '$i'
$y_septjour = date("Y", mktime(0,0,0,$mois,$jour+$i,$annee)); //année du premier jour du tableau + '$i'
$m_septjour= date("m", mktime(0,0,0,$mois,$jour+$i,$annee)); //mois du premier jour du tableau + '$i'
$d_septjour= date("d", mktime(0,0,0,$mois,$jour+$i,$annee)); //jour du premier jour du tableau + '$i'
//Jour de la semaine
$joursemaine = date("w", mktime(0,0,0,$mois,$jour+$i,$annee)); //Numerotés de 0 ( Dimanche ) à 6 ( Samedi )
IF ( $joursemaine =="0"){$jouraffiche="D";}
IF ( $joursemaine =="1"){$jouraffiche="L";}
IF ( $joursemaine =="2"){$jouraffiche="M";}
IF ( $joursemaine =="3"){$jouraffiche="M";}
IF ( $joursemaine =="4"){$jouraffiche="J";}
IF ( $joursemaine =="5"){$jouraffiche="V";}
IF ( $joursemaine =="6"){$jouraffiche="S";}
echo "<td width=".$n." align=\"center\" bgcolor=".$couleur."><font class=\"texte\"><b>".$jouraffiche."</b></font></td>";
$i=$i+1;
}
?>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="<?php echo $largeur7;?>" border="0" cellspacing="0" cellpadding="0" valign="top">
<tr>
<?php
//-----------------------------------------------------------------------------
//Affichage des numero des jours
//-----------------------------------------------------------------------------
WHILE ($i2<='6')
{
$septjour = date("Y-m-d", mktime(0,0,0,$mois,$jour+$i2,$annee)); //date du premier jour du tableau + '$i2'
$y_septjour = date("Y", mktime(0,0,0,$mois,$jour+$i2,$annee)); //année du premier jour du tableau + '$i2'
$m_septjour= date("m", mktime(0,0,0,$mois,$jour+$i2,$annee)); //mois du premier jour du tableau + '$i2'
$d_septjour= date("d", mktime(0,0,0,$mois,$jour+$i2,$annee)); //jours du premier jour du tableau + '$i2'
//#############################################################################
//Requetes permettant par exemple de recuperer les evenements correspondants a ce jour à completer celon vos tables :p
//Retirer les slash avant bien sur ! ;p
//#############################################################################
//$qa=mysql_query("SELECT ##### FROM ##### WHERE datedebut##### <= ' $septjour' AND datefin##### >= ' $septjour' ");
//echo mysql_error();
//$ra=mysql_fetch_array($qa);
//$tempa = mysql_num_rows($qa);
//IF($tempa=='') // si il n'y a pas de réponses
//{
echo "<td width=".$n." align=\"center\" bgcolor=".$couleur."><font class=\"texte\">".$d_septjour."</font></td>";
//}
//ELSE // si il y a des réponses
//{
//echo "<td width=".$n." align=\"center\" bgcolor=".$couleur."><a href=\"mon_url.php"\"><font class=\"texte\">".$d_septjour."</font></a></td>";
//}
$i2=$i2+1;
}
?>
</tr>
</table>
</td>
</table>
</td>
<td width="<?php echo $n;?>" align="center" valign="middle" bgcolor="<?php echo $couleur;?>">
<?php
//-----------------------------------------------------------------------------
//Fleche de navigation >>
//-----------------------------------------------------------------------------
$d_septjour1=date("d", mktime(0,0,0,$mois,$jour+1,$annee)); //date du premier jour du tableau + '$i1'
$m_septjour1=date("m", mktime(0,0,0,$mois,$jour+1,$annee)); //date du premier jour du tableau + '$i1'
$y_septjour1=date("y", mktime(0,0,0,$mois,$jour+1,$annee)); //date du premier jour du tableau + '$i1'
echo "<a href=\"index.php?action=1&jour=".$d_septjour1."&mois=".$m_septjour1."&annee=".$y_septjour1."\"><font class=\"texte\">( + ) </font></font></a>";
?>
</td>
</tr>
</table>