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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
/* les cases avec un lien */
.cal td a { background:#fff; display:block; text-decoration:none; font-weight:bold; }
/* un premier style */
.cal .st1 { font-weight:bold; background:Turquoise; }
/* un second style */
.cal .st2 { font-weight:bold; color:Purple; }
</style>
</head>
<body>
<?php
$links=array();
//$links[0] = '-------------- Titre --------------';
$links[1] = '<a href="fichier1.html">1</a>';
$links[5] = '<a href="fichier5.html" class="st1">5</a>';
$links[12] = '<span class="st2">12</span>';
Calendrier(1, 2013, $links);
function Calendrier($month,$year,$links) {
$MonthNames = array(1 => "Janvier","Fevrier","Mars","Avril","Mai","Juin",
"Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
$monthname = $MonthNames[$month+0];
// on ouvre la table
echo '';
// Première ligne = mois et année ou link[0]
$title = array_key_exists(0, $links) ? $links[0] : $monthname.' '.$year;
echo ''.$title.''."<br>
";
// Seconde lignes = initiales des jours de la semaine
$DayNames = array(" L "," M "," M "," J "," V "," S "," D "," L "," M ","M","J","V","S","D","L","M","M","J","V","S","D","L","M","M","J","V","S","D","L","M","M","J","V","S","D","L","M","M","J","V","S","D");
foreach ($DayNames as $d) echo $d; echo "<br>";
// On regarde si aujourd'hui est dans ce mois pour mettre un style particulier
if ($year == date('Y') && $month == date('m'))
$today = date('d');
else
$today = 0;
$time = mktime(0,0,0,$month,1,$year); // timestamp du 1er du mois demandé
$days_in_month = date('t',$time); // nombre de jours dans le mois
$firstday = date('w',$time); // jour de la semaine du 1er du mois
if ($firstday == 0) $firstday = 7; // attention, en php, dimanche = 0
$daycode = 1; // ($daycode % 7) va nous indiquer le jour de la semaine.
// on commence par le lundi, c'est-à-dire 1.
// on ouvre une première ligne pour le calendrier proprement dit :
echo '';
// on met des cases blanches jusqu'à la veille du 1er du mois :
for ( ; $daycode<$firstday; $daycode++) echo '';
// boucle sur tous les jours du mois :
for ($numday = 1; $numday <= $days_in_month; $numday++, $daycode++) {
// si on en est au lundi (sauf le 1er),
// on ferme la ligne précédente et on en ouvre une nouvelle
if ($daycode%7 == 1 && $numday != 1) echo " ";
// on ouvre la case (avec un style particulier s'il s'agit d'aujourd'hui)
echo ($numday == $today ? '' : '---');
// on affiche le numéro du jour ou le contenu donné par l'utilisateur
echo (array_key_exists($numday, $links) ? $links[$numday] : $numday);
// on ferme la case
echo '';
}
// on met des cases blanches pour completer la dernière semaine si besoin :
for ( ; $daycode%7 != 1; $daycode++) echo ' ';
// on ferme la dernière ligne, et la table.
echo ''; echo "";
}
?> |
Partager