Bonjour!
j'ai pour thème de personnaliser le calendrier du site web de mon village en notre langue et de façon dynamique.c'est ici href="http://www.bafou.com/calendrier.php".
Mais avant tout je vais vous expliquez comment ce calendrier fonctionne car ci celui-ci n'était pas particulier, je ne me permettrais pas de vous déranger.
En fait,ce calendrier a sa façon d'appeler les jours de la semaine en plus des jours que nous connaissons tous; je m'explique: si nous sommes aujourd'hui le lundi 12 janvier 2009 et que le jour correspondant en notre langue est"jambo", ce jour "jambo" apparaitra encore mais non plus le lundi 19 janvier 2009, mais plutot le mardi 20 janvier 2009; et c'est la meme chose pour les autres jours. vous voyez donc qu'il y a un décalage de 7 jours+1. c'est donc faire un système pareil qui me pose problème et c'est pour cela que je sollicite votre aide.
NB: voici le lien de la page qui contient l'image du calendrier :href="http://www.bafou.com/calendrier.php".
Voici le code php du calendrier que j'aimerai personnalisé pour qu'il réponde à mon besoin:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="calendrier.css" />
<title>Mon calendrier</title>
</head>
<body>
<?php
if(!isset($_GET['m']) && !isset($_GET['y']))
{
// Si on ne récupère rien dans l'url, on prend la date du 1er jour du mois actuel.
$timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
}
else
{
// Sinon on récupère la date du 1er jour du mois donné.
$timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
}
?>
<?php
/* Si le mois et l'année de la variable $timestamp correspondent au mois et à l'année d'aujourd'hui, on retient le jour actuel.
Sinon le jour actuel ne se situe pas dans le mois et on ne retient rien */
if(date('m', $timestamp) == date('m') && date('Y', $timestamp) == date('Y'))
{
$coloreNum = date('d');
}
?>
<?php
$m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril");
$m += array("05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août");
$m += array("09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
// Souvenez-vous que les dates en PHP commencent par dimanche !
?>
<?php
$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);
if($numero_mois == 12)
{
// Dans le cas du mois de décembre
$annee_avant = $annee;
$annee_apres = $annee + 1; // L'année d'après change
$mois_avant = $numero_mois - 1;
$mois_apres = 01; // Le mois d'après est janvier
}
elseif($numero_mois == 01)
{
// Dans le cas du mois de janvier
$annee_avant = $annee - 1; // L'année d'avant change
$annee_apres = $annee;
$mois_avant = 12; // Le mois d'avant est décembre
$mois_apres = $numero_mois + 1;
}
else
{
// Il ne s'agit ni de janvier ni de décembre
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}
/*
// Lien pour aller au mois précédent
echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a>';
// Affichage du mois et de l'année
echo ' '.$m[$numero_mois].' '.$annee.' ';
// Lien pour aller au mois suivant
echo '<a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>';
*/
?>
<?php
$numero_jour1er = date('w', $timestamp); // 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
// Changement du numéro du jour car l'array commence à l'indice 0.
if ($numero_jour1er == 0)
{
/*
Si c'est dimanche, on le place en 6e position
(car on commencera notre boucle à 0)
*/
$numero_jour1er = 6;
}
else
{
// Sinon on met lundi à 0 ou mardi à 1 ou mercredi à 2...
$numero_jour1er--;
}
?>
<table>
<caption>
<?php
// Lien pour aller au mois précédent
echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a>';
// Affichage du mois et de l'année
echo ' '.$m[$numero_mois].' '.$annee.' ';
// Lien pour aller au mois suivant
echo '<a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>';
?>
</caption>
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Me</th>
<th>Je</th>
<th>Ve</th>
<th>Sa</th>
<th>Di</th>
</tr>
<!-- On placera le code php ici -->
<?php
echo '<tr>'; // Nouvelle ligne du tableau (celle de la 1ère semaine, donc)
// Écriture de colonnes vides tant que le mois ne démarre pas.
for($i = 0 ; $i < $numero_jour1er ; $i++)
{
echo '<td></td>';
}
for($i = 1 ; $i <= 7 - $numero_jour1er; $i++)
{
echo '<td><div class="';
if(isset($coloreNum) && $coloreNum == $i)
{
echo 'lienCalendrierJour';
}
else
{
echo 'lienCalendrier';
}
echo '">'.$i.'</div></td>';
}
echo '</tr>';
?>
<?php
$nbLignes = ceil((date('t', $timestamp) - ($i-1)) / 7);
?>
<?php
for($ligne = 0 ; $ligne < $nbLignes ; $ligne++)
{
echo '<tr>'; // Nouvelle ligne du tableau (celle de la nouvelle semaine)
for($colone = 0 ; $colone < 7 ; $colone++)
{
if($i <= date('t', $timestamp))
{
echo '<td><div class="';
if(isset($coloreNum) && $coloreNum == $i)
{
echo 'lienCalendrierJour';
}
else
{
echo 'lienCalendrier';
}
echo '">'.$i.'</div></td>';
}
else
{
// On a fini d'écrire le mois on termine la tableau par des cellules vides
echo '<td></td>';
}
$i = $i +1;
}
echo '</tr>';
}
?>
</table>
</body>
</html>
et voici le code CSS carrespondant:
/* CSS Document */
caption /* Titre du tableau */
{
margin: auto; /* Centre le titre du tableau, ça rend mieux */
font-family: "Trebuchet MS", Arial, "Times New Roman", serif;
font-size: 1.2em; /* taille de la police */
color: #556dff; /* Couleur du texte */
margin-bottom: 10px; /* Marge avec le tableau */
}
table /* Le tableau en lui-même */
{
margin: auto; /* Centrons notre tableau */
border: 2px inset blue; /* Bordure bleue effet 3D */
border-collapse: separate; /* Rend les cellules indépendantes les unes des autres */
}
th /* Les cellules d'en-tête */
{
background-color: #7ba3ff; /* Couleur de fond */
color: white; /* Couleur du texte */
font-size: 1.1em; /* Taille des jours */
font-family: "Trebuchet MS", Arial, "Times New Roman", serif;
}
.lienCalendrier /* Les cellules normales */
{
border: 1px solid black;
border-style: dotted; /* Une bordure en pointillés */
font-family: "Trebuchet MS", Arial, "Times New Roman", serif;
text-align: center; /* Tous les numéros des cellules seront centrés*/
padding: 1px; /* Marge intérieure aux cellules */
empty-cells: show; /* Révèle les cellules vides */
}
.lienCalendrierJour {
/* La cellule du jour actuel dans le calendrier */
background-color: rgb(86, 139, 239);
}
s'il vous plait aidez moi, je suis déja à cours d'idée
Merci d'avance!
Merci d'avance!