Christian Marthen: Kalender in PHP dynamisch erzeugenlassen

Beitrag lesen

gruss chris ;)

<?php
function PrintMonth($month){
 GLOBAL $year, $kalenderwoche, $actualdate,$id,$sid;

$passee = false;

$year2 = (!$year) ? $actualdate['year'] : sprintf("%04d", $year);
 $month2 = (!$month) ? $actualdate['mon'] : sprintf("%02d", $month);
 $day2 = (!$day) ? $actualdate['mday'] : sprintf("%02d", $day);

$calstring = "<table border=0>\n";

$spalte = 1;

for ($i=1; $i <= date("t", mktime(0,0,0,$month,1,$year)); $i++) {

$wochentag = date ("w", mktime(0,0,0,$month,$i,$year));

if ($wochentag == 0) $wochentag = 7;
  $wochentag--;

if ($year == $actualdate['year'] and $i == $actualdate['mday'] and  $month == $actualdate['mon']) {
   $class_today = "cal1a2";
  } else {
   $class_today = "cal1";
  }

$tag_heute = date ("z", mktime(0,0,0,$month,$i,$year));
  $tag_ueber_heute = date ("z", mktime(0,0,0,$actualdate['mon'],$actualdate['mday'], $actualdate['year']));

if ($tag_ueber_heute >= $tag_heute) {
   $monat_array[$month][$spalte][$wochentag] = "<a href="jobzettel.php?year=$year&month=$month&day=$i"  class="$class_today">$i</a>";
  } else {
   $monat_array[$month][$spalte][$wochentag] = $i;
  }
  if ($wochentag == 6) {
   $spalte++;
  }

}

$calstring .= "<tr align="center"><td><b style="color:#0000AA">KW&nbsp</b></td><td><b>Mo</b></td><td><b>Di</b></td><td><b>Mi</b></td><td><b>Do</b></td><td><b>Fr</b></td><td><b>Sa</b></td><td><b>So</b></td></tr>\n";

$tag = 0;

for ($k=1; $k <= sizeof($monat_array[$month]); $k++) {
  $calstring .= "<tr>\n";
  for ($i=0; $i < 7; $i++) {

if ($monat_array[$month][$k][$i] != "") { $tag++; }

$tag = ($tag == 0) ? 1: $tag;

if ($i == 0) {
    $kalenderwoche = floor((date("z", mktime(0,0,0,$month,$tag,$year))) / 7) +1;
    $kalenderwoche = ($kalenderwoche > 52) ? $kalenderwoche - 52 : $kalenderwoche;

$calstring .= sprintf ("<td><span style="color:#AAAAAA">%02d</span></td>\n", $kalenderwoche);
   }

$kalenderpos = ($monat_array[$month][$k][$i] == "") ? "<span class="cal0"> </span>" : $monat_array[$month][$k][$i];

if ($year == $actualdate['year'] and $tag == ($actualdate['mday'] + 1) and  $month == $actualdate['mon'] and $passee == false) {
    $class_today = "class="today"";
    $passee = true;

} else {
    $class_today = "";
   }

$calstring .= "<td $class_today align=center>$kalenderpos</td>\n";

}
  $calstring .= "</tr>\n";
 }
 $calstring .= "</table>\n\n";

return $calstring;
}
?>