Kalendererweiterung?

2Pac

Erfahrenes Mitglied
Hallo,

ich wollte ein Kalender in meine Homepage einbauen. In diesen Kalender sollten möglichst Termine eingetragen werden.

Dazu hab ich mir folgendes Script rausgesucht.

Code:
<?php 
define("EINTAG", (60*60*24) ); 
if ( ! checkdate( $monat, 1, $jahr ) ) 
    { 
     $heuteArr = getdate(); 
     $monat = $heuteArr[mon]; 
     $jahr = $heuteArr[year]; 
    } 
$start = mktime ( 0, 0, 0, $monat, 1, $jahr ); 
$ersterArr = getdate($start); 
?>

<html> 
<head> 
<title><?php print "Kalendar: $ersterArr[month] 
        $ersterArr[year]" ?></title> 
<head> 
<body> 
<form action="<? print $PHP_SELF ?>" method="post"> 
<select name="monat"> 
<?php 
$monate = Array("January", "February", "March", "April", 
                "May", "June", "July", "August", "September", 
                "October", "November", "December"); 
for ( $x=1; $x <= count( $monate ); $x++ ) 
    { 
    print "\t<option value=\"$x\""; 
    print ($x == $monat)?" SELECTED":""; 
    print ">".$monate[$x-1]."\n"; 
    } 
?> 
</select> 
<select name="jahr"> 
<?php 
for ( $x=2007; $x<2020; $x++ ) 
    { 
    print "\t<option"; 
    print ($x == $jahr)?" SELECTED":""; 
    print ">$x\n"; 
    } 
?> 
</select> 
<input type="submit" value="Los geht's!"> 
</form>

<p> 
<?php 
$days = Array("Sunday", "Monday", "Tuesday", "Wednesday", 
              "Thursday", "Friday", "Saturday"); 
print "<TABLE BORDER = 1 CELLPADDING=5>\n"; 
foreach ( $days as $day ) 
    print "\t<td><b>$day</b></td>\n"; 

for ( $zaehler=0; $zaehler < (6*7); $zaehler++ ) 
    { 
    $tagArr = getdate( $start );  

if ( (($zaehler) % 7) == 0 ) 
        { 
        if ( $tagArr[mon] != $monat ) 
            break; 
        print "</tr><tr>\n"; 
        }  

if ( $zaehler < $ersterArr[wday] || $tagArr[mon] != $monat ) 
        { 
        print "\t<td><br></td>\n"; 
        }  
else 
        { 
        print "\t<td>$tagArr[mday] $tagArr[month]</td>\n"; 
        $start += EINTAG; 
        } 
    }  
print "</tr></table>"; 
?> 
</body> 
</html>

Wie pass ich den Kalender denn jetzt am besten so an, dass der automatisch erkennt, welcher Monat heute ist und alle Events die man eingetragen hat angezeigt werden? Bzw. wie bau ich die Datenbank am besten auf um das bewerkstelligen zu können?

Danke für die Hilfe!

2Pac
 
Das ist leider zu komplex um dies dir in ein paar Sätzen zu erklären.
Hast du das Tutorial hier gefunden?
 
Ja :)

Zu komplex um das zu erklären?

Und wo könnte man ein Erweiterungstut herbekommen? Oder jemanden der es versuchen würde es zu erklären? Ich meine du musst ja nicht bei 0 anfangen. Ich kenn mich nen bischen in MySQL aus. Also Datenbankeinträge erstellen und auslesen sind nicht so das Problem. Da kann ich zwar nicht gut/perfekt aber ich habe die Grundkenntnisse.

Ist es trotzdem noch zu komplex?

mfg
2Pac
 
Als erstes sollte man sich Gedanken machen wie man das Datum von jedem Kalendereintrag speichert. Das würde mir spontan der mySQL DATETIME Typ einfallen.
Dann überleg am besten die Struktur der Tabelle. Welche Spalten sollten vorhanden sein: Datum, Ueberschrift, Beschreibung, Prioritaet usw.
 
Hi,

am besten Du speicherst Dein Datum als Unixtimestamp ab. Andere Variablen sind zu blöd um es richtig sortieren und bearbeiten zu können. Habe auch schon Nächte damit verbracht.

Wie Du den aktuellen Monat auslesen kannst?
$actDate = time(); liefert Dir den die aktuelle Zeit im Unix-Timestamp zurück

Daraus kannst Du alles andere herleiten.
$actMonat = date("m", $actDate); liefert Dir den aktuellen Monat zurück (Monat als Zahl mit führenden Nullen, oder "n" ohne).

mit "mktime(Stunde,Minute,Sekunde,Monat,Tag,Jahr)" kannst Du Dir ganz einfach einen festen Unix-Timestamp für jeden Tag basteln und somit einen Eintrag in Deine DB vornehmen, welcher in Deinem Kalender wieder ausgelesen wird.
Wie gesagt, ganz einfach. :-))
 
Mit dem Spaltentyp DATETIME ist es aber genau so einfach und solche Umformatierungen kann man auch schon bequem mit MySQL-eigenen Mitteln lösen.
 
Zurück