Olla, versuche gerade einen Jahreskalender zu kreieren, was mir
"eigentlich" auch gelungen ist.
Das Script basiert auf diesem hier.
Nun möchte ich allerdings noch, dass Tage, welche in der db
gespeichert sind (Aktionen/Termine), in diesem Kalender farbig
hervorgehoben werden, was mir leider nur so halb gelungen ist.
Mein geistiger Horizont ist leider an seine Grenzen gestoßen. Ich
weiß einfach nicht, wie ich die for-schleife, welche die Tage aus der
db enthält, in die while-schleife einbauen soll, welche den Kalender
generiert.
Leider etwas unübersichtlich
Ich denke mal, dass es einen wesentlich einfacheren, bzw von
Aufbau her schöneren Lösungsweg gibt. Falls jemand zu viel Zeit hat - nur keine Scheu
Danke im voraus
*edit*: Anschauen könnt ihr das ganze hier
Damit...warum ist das so breit?
"eigentlich" auch gelungen ist.
Das Script basiert auf diesem hier.
Nun möchte ich allerdings noch, dass Tage, welche in der db
gespeichert sind (Aktionen/Termine), in diesem Kalender farbig
hervorgehoben werden, was mir leider nur so halb gelungen ist.
Mein geistiger Horizont ist leider an seine Grenzen gestoßen. Ich
weiß einfach nicht, wie ich die for-schleife, welche die Tage aus der
db enthält, in die while-schleife einbauen soll, welche den Kalender
generiert.
Leider etwas unübersichtlich
PHP-Code:
<?
$months=array("Januar","Februar","März","April",
"Mai","Juni","Juli","August",
"September","Oktober","November","Dezember");
$qry = "SELECT datum FROM termine ORDER BY datum";
$res = query($qry);
while ($row = mysql_fetch_array($res)){
$datum[] = $row['datum'];
}
$mon = date('n');
$yea = date('Y');
$now = date('d');
$wert = mysql_num_rows($res);
foreach ($datum as $ndatum) {
$j = 1;
$dp_mon[] = date('n', $ndatum);
$dp_yea[] = date('Y', $ndatum);
$dp_now[] = date('d', $ndatum);
$j++;
}
?>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<?
for ($reihe=1;$reihe<=3;$reihe++){
echo "<tr>";
for ($spalte=1;$spalte<=4;$spalte++) {
$this_month=($reihe-1)*4+$spalte;
$erster=date("w",mktime(0,0,0,$this_month,1,$yea));
$insgesamt=date("t",mktime(0,0,0,$this_month,1,$yea));
if($erster==0){
$erster=7;
}
?>
<td valign="top" style="padding-top:10px;">
<table...>
<tr>
<td class="u r">Mo</td>
<td class="u r">Di</td>
<td class="u r">Mi</td>
<td class="u r">Do</td>
<td class="u r">Fr</td>
<td class="u r">Sa</td>
<td class="u r">So</td>
</tr>
<tr>
<?
$i=1;
while($i<$erster){
echo "<td> </td>";
$i++;
}
$i=1;
while($i<=$insgesamt) {
$rest=($i+$erster-1)%7;
for ($j = 0; $j < $wert; $j++) {
if ($i == $dp_now[$j] && $this_month==$dp_mon[$j]) {
echo "<td style=\"background:#C6D3D3; align=\"center\">
<span style=\"color:#2B477F;padding:2px;\">$i</span>";
}
}
if($i==$now && $this_month==$mon){
echo "<td style=\"background:#2B477F;" align=\"center\">";
}
else{
echo "<td style=\"font-color:#00cc00;\" align=center>";
}
if ($i==$now && $this_month==$mon){
echo "<span style=\"color:#ffffff;\">$i</span>";
}
else if($rest==6){
echo "<span style=\"color:#2B477F;\">$i</span>";
}
else if($rest==0){
echo "<span style=\"color:#2B477F;\">$i</span>";
}
else{
echo "".$i."";
}
echo "</td>\n";
if($rest==0){
echo "</tr>\n<tr>\n";
}
$i++;
}
echo "</tr>";
echo "</table>";
echo "</td>";
}
}
echo "</td>";
echo "</tr>";
echo "</table>";
?>
Aufbau her schöneren Lösungsweg gibt. Falls jemand zu viel Zeit hat - nur keine Scheu
Danke im voraus
*edit*: Anschauen könnt ihr das ganze hier
Damit...warum ist das so breit?
Kommentar