Bonsoir,
Je suis débutante en php et j'ai essayé d'intégrer le calendrier php de grafikart
L'idée est de remplir le calendrier de sorte que je puisse afficher les évènements pour lesquels les dates sont déjà occupées par des sessions de formation
J'ai pas pu comprendre la raison pour laquelle les dates déjà occupées les évènements ne s'affichent pas !
Veuillez me donner un coup de main car je cherche ça fait 3 jours en vain et merci de votre aide
je vous laisse avec le code:
Je commence par le code de la classe d'ou je remplis le calendrier:
<?php
require_once('database.php');
require('Session.php');//la classe ou existe les getters et setters
class Sessions {
var $link ;
var $days = array('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
var $months = array('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Decembre');
public function __construct ()
{
$this->link= open_connection('localhost','root','root') or die (mysql_error());
}
//fonction pour recupere les evenements pour notre calendrier dynamique
function getEvents($year){
//cette requete m'affiche les dates qui coincide avec des evenements , ma table sessions contient les dates deb et fin des sessions et avec //lesquelles je compare la date $year donnée en paramètre
$result =query_database("SELECT dated,datef, idformation, idstatutformation FROM sessions WHERE dated IN(SELECT dated
from sessions where idstatutformation<> 4 AND dated='$year' ) OR datef IN(SELECT datef from sessions where idstatutformation<> 4 AND datef='$year') "
,"DBformations",$this->link)or die(mysql_error());
$r = array();
while($d = fetch_results($result)){
$r[strtotime($d->dated)][strtotime($d->datef)]$d->idstatutformation] = $d->idformation;
}
return $r;
}
function getAll($year){
$r = array();
$date = new DateTime($year.'-01-01');
while($date->format('Y') <= $year){
//Ce que je veux => $r[ANNEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = $date->format('Y');
$m = $date->format('n');
$d = $date->format('j');
$w = str_replace('0', '7', $date->format('w'));
$r$y]$m]$d] = $w;
$date->add(new DateInterval('P1D'));
}
return $r;
}
}
?>
le code de la page php ou j'affiche le calendrier : "calendrier.php "
<?php
$date = new Sessions();
$year = date('Y');
$events = $date->getEvents($year);
$dates = $date->getAll($year);
?>
<div class="periods">
<!-- ######################### BLOC ANNÉE ############################ -->
<div class="year"><?php echo $year; ?></div>
<!-- ######################### FIN BLOC ANNÉE ######################## -->
<!-- ######################### BLOC MOIS ############################# -->
<div class="months">
<ul>
<?php foreach($date->months as $id=>$m): ?>
<li><a href="" id="linkMonth<?php echo $id+1; ?>"><?php echo utf8_encode(substr(utf8_decode($m),0,3)); ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<!-- ######################### FIN BLOC MOIS ######################### -->
<div class="clear"></div>
<?php $dates = current($dates); ?>
<?php foreach ($dates as $m=>$days): ?>
<!-- ######################### BLOC TABLEAU ####################### -->
<div class="month relative" id="month<?php echo $m; ?>">
<table>
<thead>
<tr>
<?php foreach ($date->days as $d): ?>
<th><?php echo substr($d,0,3); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<?php $end = end($days); foreach($days as $d=>$w): ?>
<?php $time = strtotime("$year-$m-$d"); ?>
<?php if($d == 1 AND $w-1 > 0): ?>
<td colspan="<?php echo $w-1; ?>" class="padding"></td>
<?php endif; ?>
<td<?php if($time == strtotime(date('Y-m-d'))): ?> class="today" <?php endif; ?>>
<div class="relative">
<div class="day"><?php echo $d; ?></div>
</div>
<div class="daytitle">
<?php echo $date->days$w-1]; ?> <?php echo $d; ?> <?php echo $date->months$m-1]; ?>
</div>
<ul class="events">
<?php if(isset($events$time])): foreach($events$time] as $e): ?>
<li><?php echo $e; ?></li>
<?php endforeach; endif; ?>
</ul>
</td>
<?php if($w == 7): ?>
</tr><tr>
<?php endif; ?>
<?php endforeach; ?>
<?php if($end != 7): ?>
<td colspan="<?php echo 7-$end; ?>" class="padding"></td>
<?php endif; ?>
</tr>
</tbody>
</table>
</div>
<?php endforeach; ?>
Pourriez-vous m'aider s'il vous plaît j'ai vraiment besoin de l'aide
et merci d'avance.