Hallo zusammen,
ich habe mir einen Kalender gebaut, der in einer monatsansicht ausgegeben wird. Die Ausgabe, die Berechnung von Schaltjahren, Hervorhebung des aktuellen Tages usw. funktioniert soweit alles wunderbar.
Ich weiss es ist nicht der beste code aber ich bin schonmal froh das ich das hinbekommen habe!
SO - nun würde ich gerne noch in den leeren Feldern der Monatsansicht die restlichen Tage des vormonats sowie die kommenden Tage des nächsten monats ausgeben. (am besten den Kalender mal im browser dazu betrachten).
Desweiteren würde ich gerne meine Termineingabe erweitern:
Es gibt nur Events die an einem ausgewählten Tag stattfinden oder aber Events die z.B. immer Dienstags stattfinden.
D.h. ich würde gerne in der Eingabemaske eine Checkbox setzen können bei der dann das Event für das aktuelle Jahr am besagten Tag eingetragen wird (z.B. jeden Dienstag).
Kann mir da jemand helfen? Muss ich das per SQL Anweisung lösen?
Danke im voraus!
PHP-Code:
<?php
$datum = getdate();
$dieser_tag = $datum[mday];
$dieser_monat = $datum[mon];
$dieses_jahr = $datum[year];
$monat_text = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
$wochen_text = array("Mo", "Di", "Mi","Do", "Fr", "Sa", "So");
if(!isset($tag)) {
$tag = "$datum[mday]";
}
if(!isset($monat)) {
$monat = "$datum[mon]";
}
if(!isset($jahr)) {
$jahr = "$datum[year]";
}
$schaltjahr = gettype($jahr/4);
if($schaltjahr == "integer")
{
$monat_tage = array(0,31,29,31,30,31,30,31,31,30,31,30,31);
} else {
$monat_tage = array(0,31,28,31,30,31,30,31,31,30,31,30,31);
}
$start = getdate(mktime(2,0,0,$monat,1,$jahr));
$beginn = "$start[wday]";
if($beginn == 0)
{
$beginn=7;
}
echo ("<form action=\"".$PHP_SELF."?section=termine&action=termine&PHPSESSID=$PHPSESSID\" method=\"post\">\n");
echo ("<table width=\"95%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">\n");
echo ("<tr>\n");
echo (" <td></td>\n");
echo ("</tr>\n");
echo ("<tr>\n");
echo (" <td align=\"right\" valign=\"center\">\n");
echo (" <select name=\"monat\" class=\"field\">\n");
for ( $i=1; $i <= count( $monat_text ); $i++ )
{
if ($i == $monat)
{
echo (" <option value=\"$i\" SELECTED>".$monat_text[$i-1]."</option>\n");
} else {
echo (" <option value=\"$i\">".$monat_text[$i-1]."</option>\n");
}
}
echo (" </select>\n");
echo (" <select name=\"jahr\" class=\"field\">\n");
for ($i = $dieses_jahr; $i <= ($dieses_jahr + 10); $i++)
{
if ($i == $jahr)
{
echo (" <option value=\"$i\" SELECTED>".$i."</option>\n");
} else {
echo (" <option value=\"$i\">".$i."</option>\n");
}
}
echo (" </select>\n");
echo (" <input type=\"submit\" class=\"button\" value=\"Abschicken\">\n");
echo (" </form>\n");
echo (" </td>\n");
echo ("</tr>\n");
echo ("<tr>\n");
echo (" <td></td>\n");
echo ("</tr>\n");
echo ("</form>\n");
echo ("<tr>\n");
echo (" <td align=\"center\">\n");
echo (" <table width=\"100%\" border=\"1\" cellpadding=\"3\" cellspacing=\"1\">\n");
echo (" <tr>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Montag</td>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Dienstag</td>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Mittwoch</td>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Donnerstag</td>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Freitag</td>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Samstag</td>\n");
echo (" <td width=\"13%\" class=\"wochentage\" align=\"center\">Sonntag</td></tr>\n");
echo (" </tr>\n");
$zeile = 1; $spalte = 1; $tagnummer = 1;
echo (" <tr>\n");
for($y = 1;$y < ($monat_tage[$monat]+$beginn);$y++)
{
$x = $wochen_text[date("w", mktime(0,0,0,$dieser_monat,$y,$dieses_jahr))];
$bo = "unaktiv";
if ($x == "So" OR $x == "Sa")
{
$bo = "weekend";
}
if ($tagnummer == $tag && $monat == $dieser_monat && $jahr == $dieses_jahr)
{
$bo = "aktiv";
}
if($y < $beginn)
{
echo (" <td width=\"13%\" height=\"70\" class=\"leer\" align=\"center\"></td>\n");
} else if($tagnummer == $tag && $monat == $dieser_monat && $jahr == $dieses_jahr) {
$datstr = "$tag.$monat.$jahr";
$datstr = Datum2Db($datstr);
echo (" <td width=\"13%\" height=\"70\" class=\"$bo\" align=\"left\" valign=\"top\">\n");
echo (" <a href=\"".$PHP_SELF."?section=termine&action=termine&datum=$datstr&PHPSESSID=$PHPSESSID\">[b]$tagnummer[/b]</a>
\n");
$query = mysql_query("SELECT * FROM ".$tblprfx."termine WHERE datum=\"$datstr\"",$verbindung);
for ($i=0; $i<mysql_num_rows($query); $i++)
{
$result = mysql_fetch_row($query);
if ($result != 0)
{
echo (" <img border=\"0\" src=\"http://www.weblife-td.de/images/link.gif\"><a href=\"".$PHP_SELF."?section=termine&action=termine_edit&id=$result[0]&PHPSESSID=$PHPSESSID\">$result[2]</a>
\n");
}
}
echo (" </td>\n");
$tagnummer++;
} else {
$datstr = "$tagnummer.$monat.$jahr";
$datstr = Datum2Db($datstr);
echo (" <td width=\"13%\" height=\"70\" class=\"$bo\" align=\"left\" valign=\"top\">\n");
echo (" <a href=\"".$PHP_SELF."?section=termine&action=termine&datum=$datstr&PHPSESSID=$PHPSESSID\">[b]$tagnummer[/b]</a>
\n");
$query = mysql_query("SELECT * FROM ".$tblprfx."termine WHERE datum=\"$datstr\"",$verbindung);
for ($i=0; $i<mysql_num_rows($query); $i++)
{
$result = mysql_fetch_row($query);
if ($result != 0)
{
echo (" <img border=\"0\" src=\"http://www.weblife-td.de/images/link.gif\"><a href=\"".$PHP_SELF."?section=termine&action=termine_edit&id=$result[0]&PHPSESSID=$PHPSESSID\">$result[2]</a>
\n");
}
}
echo (" </td>\n");
$tagnummer++;
}
$temp = gettype($spalte/7);
if($temp == "integer" && $y < ($monat_tage[$monat]+$beginn-1))
{
echo (" </tr>\n");
echo (" <tr>\n");
$zeile++;
}
$spalte++;
}
$ende = $zeile * 7; $rest = ($ende - $spalte) + 1; if($rest >= 7) { $rest = 0; }
for($r = 0;$r < $rest;$r++)
{
echo (" <td width=\"13%\" height=\"70\" class=\"leer\" align=\"center\"></td>\n");
}
echo (" </tr>\n");
echo (" </table>\n");
echo (" </td>\n");
echo ("</tr>\n");
echo ("</table>
\n");
?>
Thx
Marco