pandrekano Posté 18 Octobre 2008 Posté 18 Octobre 2008 (modifié) 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 $d_importantes = array('13_10_2008', '24_10_2008', '28_10_2008'); 2- Le calendrier :Code : PHP <?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.'&y='.$annee_avant.'"><<</a> '.$m[$numero_mois].' '.$annee.' <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> <?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 Modifié 19 Octobre 2008 par pandrekano Merci d'utiliser codebox pour plus de 10 lignes de code :)
pandrekano Posté 2 Novembre 2008 Auteur Posté 2 Novembre 2008 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 : <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 Posté 3 Novembre 2008 Posté 3 Novembre 2008 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.
pandrekano Posté 10 Novembre 2008 Auteur Posté 10 Novembre 2008 Ah ah ah ! Bien répondu et Merci beaucoup. Amitiés, pandrekano
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant