fischchen
Threadersteller
Dabei seit: 06.03.2003
Ort: Kassel
Alter: 45
Geschlecht:
|
Verfasst Sa 05.03.2005 18:27
Titel dynamischer Kalender |
|
|
Hallo zusammen,
ich habe im Netz ein Script für einen dynamischen Kalender gefunden. Er funtioniert auch sehr gut. Das einzige Problem ist das man beim Aufrufen des Kalenders nicht den ersten Tag angezeigt bekommt. Wenn ich allerdings einen Monat vor und wieder zurück wechsle, zeigt er mir alles richtig an. Ich vermute mal das es an einer Variable liegt die nicht sofort gesetzt ist. Ich habe das Script schon mehrmals durchsucht und finde einfach nicht die Lösung. Kann mal einer von euch einen kurzen Blick drüber werfen ?
Hier erstmal der Kalender:
Jetzt mal der PHP Code:
Code: | <style type="text/css" media="screen">@import "css/kalender.css";</style>
<?php
// Aktuellen Tag auf 1 setzten
$currDay = "1";
function german_months($n) {
$months = array(
1 => 'Januar',
2 => 'Februar',
3 => 'März',
4 => 'April',
5 => 'Mai',
6 => 'Juni',
7 => 'Juli',
8 => 'August',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'Dezember'
);
return $months[$n];
}
// ersten Tag des Monats berechnen (mktime)
if(!isset($show_month))
{
$year_now = date('Y');
$month_now = date('m');
$day_now = date('d');
$FDoM = mktime(0,0,0,$month_now,1,$year_now);
$show_month_now = date('n');
$show_year_now = date('Y');
}
else
{
$FDoM = mktime(0,0,0,$show_month,1,$show_year);
}
$NDoM = date('t',$FDoM); // Anzahl Tage des Monats berechnen (date)
$IFoM = getdate($FDoM); // Zusatzinformation zum gew?lten Monat werden berechnet (getdate) des Montags berechnen
$DAoW = $IFoM['wday']; // Wochentag des ersten Tages
if($show_month == "")
{
$month = german_months(date('n'));
$show_month_minus = $month_now-1;
$show_month_plus = $month_now+1;
$show_year = $year_now;
$year_minus = $year_now;
$year_plus = $year_now;
}
else
{
$day_now = date('d');
$month = german_months($show_month);
$show_month_minus = $show_month-1;
$show_month_plus = $show_month+1;
if($show_year == "")
{
$show_year = $year_now;
$year_plus = $year_now;
$year_minus = $year_now;
}
elseif($show_month == "12")
{
$show_month_plus = "1";
$year_minus = $show_year;
$year_plus = $show_year+1;
}
elseif($show_month == "1")
{
$show_month_minus = "12";
$year_plus = $show_year;
$year_minus = $show_year-1;
}
else
{
$show_month_minus = $show_month-1;
$show_month_plus = $show_month+1;
$year_plus = $show_year;
$year_minus = $show_year;
}
}
echo "<table width=\"150\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n"
."<td class=\"monat\" colspan=\"7\" align=\"center\">
<a href=\"?show_month=$show_month_minus&show_year=$year_minus\"><span class=\"pfeile\"><<</span></a>
$month $show_year
<a href=\"?show_month=$show_month_plus&show_year=$year_plus\"><span class=\"pfeile\">>></span></a>
</td>\n"
."</tr><tr>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">Mo</td>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">Di</td>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">Mi</td>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">Do</td>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">Fr</td>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">Sa</td>\n"
."<td class=\"tag\" align=\"center\" width=\"20\">So</td>\n"
."</tr><tr>\n";
$lastmonth= mktime(0,0,0,$show_month-1,1,$show_year);
$lastdays = date('t',$lastmonth);
//echo"$lastdays";
// Die Kästchen vor dem ersten Tag des Monats werden erzeugt
if($DAoW > 0)
{
for($fdi = 1;$fdi < $DAoW; $fdi++)
{
$currDay++;
}
$tage_ab = $fdi-2;
$days_old = $lastdays-$tage_ab;
for($fdi = $days_old; $fdi <= $lastdays; $fdi++)
{
echo "<td class=\"tag2\" align=\"center\" bgcolor=\"white\"> </td>\n";
//$currDay++;
}
}
else
{
for($fdi = 1; $fdi <= 6; $fdi++)
{
$days_old = $lastdays-5;
for($fdi = $days_old; $fdi <= $lastdays; $fdi++)
{
echo "<td class=\"tag2\" align=\"center\" bgcolor=\"white\">$fdi</td>\n";
$currDay++;
}
}
}
// Die Kästchen werden mit den Monatstagen erzeugt???
for($di = 1; $di <= $NDoM; $di++)
{
$file = file_get_contents("kalender/holiday.txt");
if (preg_match("/\b$di.$show_month.$show_year\b/i", "$file")) {
$style = "color:white";
$bgcolor = "#2FA449";
} elseif ($di == $day_now && $show_month == "" && $show_year = "" or $di == $day_now && $show_month == date('n') && $show_year == date('Y')) {
$bgcolor = "white";
$style = "border:thin solid #C54214";
} else {
$style = "";
$bgcolor = "white";
}
if ($bgcolor == "#2FA449") {
include"kalender/holiday.php";
$sd = "<a href=\"#\" onclick=\"alert('$alert')\" style=\"$style\">$di</a>";
} else {
$sd = "$di";
}
if ($currDay % 7 == 0) {
$bgcolor = "#cccccc";
}
if ($currDay % 7 == 0)
{
echo "<td class=\"kalender\" align=\"center\" style=\"$style\" bgcolor=\"$bgcolor\">$sd</td>\n</tr><tr>\n";
$currDay++;
$DAoW = 0;
}
else
{
echo "<td class=\"kalender\" align=\"center\" style=\"$style\" bgcolor=\"$bgcolor\">$sd</td>\n";
$currDay++;
$DAoW++;
}
}
// Die Kätchen nach dem letzten Tag des Monats werden erzeugt
if ($DAoW !=7)
{
$remainDay = 7 - $DAoW;
for ($ldi = 1; $ldi <= $remainDay; $ldi++)
{
echo "<td class=\"tag2\" align=\"center\" bgcolor=\"white\"> </td>\n";
}
}
echo "</tr></table>";
?>
|
Vielen Dank
|
|