mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 07:06 Benutzername: Passwort: Auto-Login

Thema: dynamischer Kalender vom 05.03.2005

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> dynamischer Kalender
Autor Nachricht
fischchen
Threadersteller

Dabei seit: 06.03.2003
Ort: Kassel
Alter: 45
Geschlecht: Männlich
Verfasst Sa 05.03.2005 18:27
Titel

dynamischer Kalender

Antworten mit Zitat Zum Seitenanfang

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\">&nbsp;</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\">&nbsp;</td>\n";
}
}
echo "</tr></table>";
?>



Vielen Dank
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Ähnliche Themen iPhone-Kalender bei Google-Kalender backupen
dynamischer div-tag...
Dynamischer Katalog
Dynamischer Hintergrund
dynamischer Div mit Adminoberfläche in PHP
XML + dynamischer HtmlText
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.