HI Leute
Habe mir da ein Kalender Script gebaut. Dieses hier:
PHP-Code:
// -------------------------------------------
// Kalender Function
// Parameter: monat, jahr, tag j/n, woche j/n, monat j/n
// -------------------------------------------
function kalender ($monat,$jahr,$titel_tag=1,$titel_woche=1,$titel_monat=1){
// Query ob eingegeben
$erg = $this->executeQuery("SELECT * FROM meldung");
// Array bauen ob eingegeben
while ($record = mysql_fetch_array($erg)){
$date = explode("-",$record['datum']);
$eingabe = array();
$eingabe[$date[2].$date[1]] = $record['umsatz'];
}
// Ausgabe Variable setzen
$kalender = "";
// Table öffnen
$kalender.= "<table width=\"200\" cellpadding=\"0\">";
// Monat anzeigen?
if ($titel_monat){
$titel_woche ? $colspan = 8 : $colspan = 7;
$kalender.= "<tr bgcolor=\"#FF0000\">";
$kalender.= "<td colspan=\"".$colspan."\" align=\"center\" class=\"rahmen\">".$this->monate[$monat]."</td>";
$kalender.= "</tr>";
}
// Tagebezeichnungen anzeigen?
if ($titel_tag){
$kalender.= "<tr>";
// wenn $titel_woche anzeigen dann erste Zelle frei
if ($titel_woche)
$kalender.= "<td> </td>";
// Wenn $titel_tag anzeigen dann Tage Array durchlaufen
for ($i = 1; $i <= count($this->tage); $i++){
$kalender.= "<td>".$this->tage[$i]."</td>";
}
$kalender.= "</tr>";
}
// erste und letzter Tag setzen ---------------------------------
$tag = 1;
$maxtag = date("t",mktime(0,0,0,$monat,$tag,$jahr));
// Woche schreiben
if ($titel_woche)
$kalender.= "<td>" . date("W", mktime(0, 0, 0, $monat, $tag, $jahr)) . "</td>";
// Wochentag auslesen
$wochentag = date ("w",mktime(0, 0, 0, $monat, $tag, $jahr));
// Wenn Tag = Sonntag (0)
if ($wochentag == 0){
// Schleife
for ($i=1;$i<=6;$i++){
$kalender.= "<td> </td>";
// wenn Sontag , wenn $tag > heute dann gelb
if ( (date ("w",mktime(0, 0, 0, $monat, $tag, $jahr)) == 0) || ($tag > date("j")) ){
$kalender.= "<td class=\"sonntag\">".$tag."</td>";
} else {
if (!array_key_exists($tag.$monat,$eingabe))
$kalender.= "<td class=\"sonntag\">".$tag."</td>";
else
$kalender.= "<td>".$tag."</td>";
}
$tag++;
}
// wenn Tag != Sonntag
} else {
for ($i = 1; $i <= ($wochentag - 1); $i++)
$kalender.= "<td> </td>";
for ($i; $i <= 7; $i++){
// Einfärbung
if ( (date ("w",mktime(0, 0, 0, $monat, $tag, $jahr)) == 0) || ($tag > date("j")) ){
$kalender.= "<td class=\"sonntag\">".$tag."</td>";
} else {
if (!array_key_exists($tag.$monat,$eingabe))
$kalender.= "<td class=\"sonntag\">".$tag."</td>";
else
$kalender.= "<td>".$tag."</td>";
}
$tag++;
}
}
// Zeilen ermitteln
$rows = ceil(($maxtag - $tag + 1) / 7);
for ($row = 1; $row <= $rows; $row++){
$kalender.= "<tr>";
if ($titel_woche)
$kalender.= "<td>" . date("W", mktime(0, 0, 0, $monat, $tag, $jahr)) . "</td>";
for ($i = 1; $i <= 7; $i++){
if ($tag <= $maxtag)
// Wenn Tag ist Sonntag dann gelb
if (date ("w",mktime(0, 0, 0, $monat, $tag, $jahr)) == 0)
$kalender.= "<td class=\"sonntag\">".$tag."</td>";
// andernfalls neutral
else
$kalender.= "<td>".$tag."</td>";
else
$kalender.= "<td> </td>";
$tag++;
}
$kalender.= "</tr>";
}
$kalender.= "</table>";
// Kalender zurückgeben
return $kalender;
}
Diese Script soll nun 3 Sachen erledigen:
1) SChau ob Sonntag dann färben
2) schaue ob in $eingabe[] nicht vorhanden dann färben
3) schaue ob $tag größer ist als heute() dann färben
1) funktioniert aber die 2 und 3 nciht
Aber wieso?
wäre für hilfe dankbar!
Alex