Bonjour à tous,
j'ai un souci d'affichage avec le calendrier du tuto du même nom et uniquement au mois de mai, 1e jour un dimanche ?
merci de votre aide.
j'ai trouvé la solution. Ouaaaaa !!!
en fait , je modifiais une variable $w pour le colspan sans changer son nom et apparemment cela faisait un conflit:
...
//$w = $w - 1;
$v_col = $w - 1;
$calendar .= '<td colspan="'.$v_col.'"></td>'.chr(13);
...
Il faudrait voir un peu de code car la dans avoir fait le tuto.
C'est peu être un pb de boucle
voici mon code désolé c'est un peu à la pelle !
public function calendar(){
$calendar = '';
$year = date("Y");
$dates = $this->getAllDays($year);
$calendar .= '<div class="calendar">';
$calendar .= '<div class="months">';
$calendar .= '<ul>';
$calendar .= '<li><a class="active" href="#" title="'.$year.'">'.$year.'</a></li>';
foreach($this->months as $kMonth=>$m) :
$kMonth = $kMonth + 1;
$calendar .= '<li><a href="#" title="'.$m.'" id="linkMonth'.$kMonth.'">'.utf8_encode(substr(utf8_decode($m),0,3)).'</a></li>';
endforeach;
$calendar .= '</ul>';
$calendar .= '</div>';
// $calendar .= '<div class="clear"></div>';
$dates = current($dates);
foreach($dates as $m=>$days) :
$calendar .= '<div class="month" id="month'.$m.'">';
$calendar .= '<table>';
$calendar .= '<thead>';
$calendar .= '<tr>';
foreach ($this->days as $d):
$calendar .= '<th>'.substr($d,0,3).'</th>';
endforeach;
$calendar .= '</tr>';
$calendar .= '</thead>';
$calendar .= '<tbody>';
$calendar .= '<tr>';
$end = end($days);
foreach($days as $d=>$w):
$time = strtotime("$year-$m-$d");
if($d == 1 && $w != 1):
$w = $w - 1;
$calendar .= '<td colspan="'.$w.'"></td>';
endif;
$today = ($time == strtotime(date('Y-m-d'))) ? 'class="today"' : '';
$calendar .= '<td '.$today.'>';
$calendar .= $d;
$calendar .= '<div class="daytitle">'.$this->days$w-1].' '.$d.' '.$this->months$m-1].'</div>';
$calendar .= '</td>';
if($w == 7):
$calendar .= '</tr><tr>';
endif;
endforeach;
if($end != 7):
$end = 7 - $end;
$calendar .= '<td colspan="'.$end.'" class="padding"></td>';
endif;
$calendar .= '</tr>';
$calendar .= '</tbody>';
$calendar .= '</table>';
$calendar .= '</div>';
endforeach;
$calendar .= '</div>';
return $calendar;
}
voici le tableau $dates
Array
(
[2011] => Array
(
...
[5] => Array
(
[1] => 7
[2] => 1
[3] => 2
[4] => 3
[5] => 4
[6] => 5
[7] => 6
[8] => 7
[9] => 1
[10] => 2
[11] => 3
[12] => 4
[13] => 5
[14] => 6
[15] => 7
[16] => 1
[17] => 2
[18] => 3
[19] => 4
[20] => 5
[21] => 6
[22] => 7
[23] => 1
[24] => 2
[25] => 3
[26] => 4
[27] => 5
[28] => 6
[29] => 7
[30] => 1
[31] => 2
)
...
)
)
en fait je remarque qu'il y a un décalage au niveau du numero du jour, entre le 1er et le 2ème
ex : mai le dernier jour de la première semaine est 6 alors que ca devrait etre 7
bizarre