Version complète: sur le forum Webmaster Hub : calendrier + dates importantes
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Scripts et utilitaires
pandrekano
Bonjour à tous,
J'ai un site avec un calendrier sur la page d'accueil. C'est celui du cours de Aki avara et Nicoco_40 sur le site du zéro "faire un calendrier comme le site du zero". Tout va très bien, mais je voudrais savoir comment fait-on pour que les jours dans un array puissent devenir colorés (avec le CSS) ?
est-ce que quelqu'un pourrait m'aider
merci d'avance

La page d'exemple avec un calendrier et des jours colorés et 2, en-dessous le calendrier sur lequel je travaille:
http://ppzx.net/rv/ad.php5

Maintenant, voici les codes de l'array et du calendrier
1- l'array
CODE
$d_importantes = array('13_10_2008',
                           '24_10_2008',
                           '28_10_2008');


2- Le calendrier :Code : PHP
CODE-BOX
<?php
$tsQuebec = time() - (6*60*60); // = 6 heures = 6 x 60 x 60 secondes
// Enregistrons les informations de date dans des variables
$jour = date('d',$tsQuebec);
$mois = date('m',$tsQuebec);
$annee = date('Y',$tsQuebec);
$heure = date('H',$tsQuebec);
$minute = date('i',$tsQuebec);
?>
<?php
// Si on ne récupère rien dans l'url, on prends la date du jour
if(!$_GET['m'] && !$_GET['y']) $timestamp = mktime(0, 0, 0, date('m',$tsQuebec), 1, date('Y'));
// Sinon on récupère la date donnée
else $timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);

// === Si le mois correspond au mois actuel et l'année aussi, on retient le jour actuel pour le griser plus tard (sinon le jour actuel ne se situe pas dans le mois)
if(date('m', $timestamp) == date('m',$tsQuebec) && date('Y', $timestamp) == date('Y')) $coloreNum = date('d',$tsQuebec);

$m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril", "05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août", "09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$d_importantes = array('13_2_2008',
'24_2_2008',
'28_12_2008');

$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);

if($numero_mois == 12) {
$annee_avant = $annee;
$annee_apres = $annee + 1;
$mois_avant = $numero_mois - 1;
$mois_apres = 01;
}
elseif($numero_mois == 01) {
$annee_avant = $annee - 1;
$annee_apres = $annee;
$mois_avant = 12;
$mois_apres = $numero_mois + 1;
}
else {
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}

// 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
$numero_jour1er = date('w', $timestamp);


// Changement du numéro du jour car l'array commence à l'indice 0
if ($numero_jour1er == 0) $numero_jour1er = 6; // Si c'est Dimanche, on le place en 6ème position (après samedi)
else $numero_jour1er--; // Sinon on mets lundi à 0, Mardi à 1, Mercredi à 2...
?>
<table>
<caption><?php echo '<a href="?m='.$mois_avant.'&amp;y='.$annee_avant.'"><<</a> '.$m[$numero_mois].' '.$annee.' <a href="?m='.$mois_apres.'&amp;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>
<?php
// Ecriture de la 1ère ligne
echo '<tr>';
// Ecriture de colones 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>';

$nbLignes = ceil((date('t', $timestamp) - ($i-1))/ 7); // Calcul du nombre de lignes à afficher en fonction de la 1ère (surtout pour les mois a 31 jours)

for($ligne = 0; $ligne < $nbLignes; $ligne++) {
echo '<tr>';
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>';
if(in_array($timestamp_jour, $d_important)) echo '$d_important">';
}
else {
echo '<td></td>';
}
$i = $i +1;
}
echo '</tr>';
}
?>

</table>

</body>
</html>


Si quelqu'un veut bien m'aider, j'en serais très heureux.
Amitiés, pandrekano
pandrekano
Bonjour à tous,
Mon sujet est maintenant résolu avec l'aide d'un modérateur du forum d'Alsacréations

Voici les modifications si ça intéresse quelqu'un :
CITATION
<tbody>
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Me</th>
<th>Je</th>
<th>Ve</th>
<th>Sa</th>
<th>Di</th>
</tr>
[...]
for ($i = 0; $i <= 6; $i++)
for($i = 1 ; $i <= 7 - $numero_jour1er; $i++) :
Mille excuses, mais je ne me rappelle plus comment on ajoute Résolu.
Amitiés, pandrekano
Dudu
CITATION(pandrekano @ dimanche 2 novembre 2008 à 16:40) *
Mille excuses, mais je ne me rappelle plus comment on ajoute Résolu.
Sur Alscréations, c'est très important d'ajouter "Résolu" entre crochets dans le titre de la discussion.

Sur le Hub, c'est différent: on n'en veut surtout pas. wink.gif
pandrekano
Ah ah ah ! Bien répondu et Merci beaucoup.

Amitiés, pandrekano
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.