Irgendjemand_1
Erfahrenes Mitglied
So.
Da hier anscheinend seeehr viel über das Kalender Tutorial (bin neu hier) geredet wird, unter anderem auch Termin/Event-Kalender Fragen auftauchen, hab ich den mal etwas modifiziert (ich hoffe, dass ich das durfte) und einen Event/Termin-Kalender daraus gemacht.
Müsst ihr nur noch alles mit der Datenbank anpassen und unten hab ich 3 Zeilen Kommentar, wo steht, was ihr dort noch einfügen müsst (den Inhalt, wenn man auf einen Termin klickt)
Ich denke, man sieht noch, dass es vom Tutorial abgeleitet ist
Ach ja, man kann dort nur zwischen dem jetzigen Monat und dem nächsten Moant wechseln, aber ihr könntet das mit einer switch-Anweisung ganz einfach um 10 Monate erweitern (diese Stelle ist auch kommentiert)
Auf design ist wiedermal keine Rücksicht genommen worden.
Ich hoffe, dass kein Fehler drinnen ist, ich hab es aber schon ausprobiert, allerdings hab ich ja jetzt das Zeug, was ich aus der DB auslese usw. wieder rausgenommen, damit ihr das besser anpassen könnt, hoffentlich hab ich nicht ausversehen etwas gelöscht.
Hier gibt es ein Beispiel
PS: Muss das etwa unter Tutorials?
Da hier anscheinend seeehr viel über das Kalender Tutorial (bin neu hier) geredet wird, unter anderem auch Termin/Event-Kalender Fragen auftauchen, hab ich den mal etwas modifiziert (ich hoffe, dass ich das durfte) und einen Event/Termin-Kalender daraus gemacht.
PHP:
<?php
// Connection zur Datenbank aufbauen
// Müsst ihr halt noch machen
// Zum überprüfen, ob ein Event existiert
function check_event($thisday, $events) {
for ($i = 0; $i <= count($events); $i++) {
if ($events[$i][0] == $thisday['mday'] && $events[$i][1] == $thisday['mon'] && $events[$i][2] == $thisday['year']) {
return $i;
}
}
if ($i == count($events)-1) {
return false;
}
}
define("DAY", (60*60*24));
$today = getdate();
$days = array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
$months = array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
// Hier switch-Anweisung daraus machen, wenn ihr mehrere Monate einfügen wollt.
if (!isset($_GET['next'])) {
$month = $today['mon'];
}
else {
$month = ($today['mon']+1);
}
$start_day_time = mktime (0, 0, 0, $month, 1, $today['year']);
$start_day = getdate($start_day_time);
$sql = "SELECT `month`, `year`, `day` // Die restlichen Spalten - z.B Den Inhalt etc. um den anzuzeigen, wenn man draufklickt
FROM `events`
WHERE `month` = '".$month."'
AND `year` = '".$today['year']."'";
$result = mysql_query($sql) or die (mysql_error());
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$events[$i] = array ($row['day'], $row['month'], $row['year']);
$i++;
}
if (!isset($_GET['event'])) {
echo "<table border='2' cellspacing='3'>\n";
for ($i = 0; $i <= 6; $i++) {
echo "<th>";
echo $days[$i];
echo "</th>";
}
for ($i = 0; $i < (6*7); $i++) {
$thisday = getdate($start_day_time);
if (($i % 7) == 0 ) {
// Wenn der Monat zuende ist Script beenden (damit kein unnötiges <tr> kommt)
if ($thisday['mon'] != $month) {
break;
}
echo "<tr>\n";
}
// den 1. Monatstag erst anzeigen, wenn der richtige Wochentag gezählt wird, wenn der Monat zuende ist leere Zelle schreiben.
if ($i < $start_day['wday'] || $thisday['mon'] != $month) {
echo "<td></td>\n";
}
// Wenn der Tag im aktuellem Monat ist
else {
$check = check_event($thisday, $events);
if (isset($events[$check][0])) {
if (!isset($_GET['next'])) {
echo "<td><a href='eventcalendar.php?event=".$check."'>".$thisday['mday']." ".$thisday['month']."<br>\n";
}
else {
echo "<td><a href='eventcalendar.php?event=".$check."&next=1'>".$thisday['mday']." ".$thisday['month']."<br>\n";
}
echo $events[$check][3];
echo "</a></td>";
$start_day_time += DAY;
}
else {
echo "<td>".$thisday['mday']." ".$thisday['month']."</td>\n";
$start_day_time += DAY;
}
}
}
echo "</table>\n";
echo "<br>\n";
// Zwischen derzeitigen und nächsten Monat wechseln
if (!isset($_GET['next'])) {
echo "<a href='eventcalendar.php?next=1'>Show next month</a>\n";
}
else {
echo "<a href='eventcalendar.php'>Show current month</a>\n";
}
}
// Wenn ein event angeklickt wurde
else {
if (isset($events[$_GET['event']])) {
// Wichtig
// Inhalt eures Events - Kalender wird ausgeblendet und das Event gezeigt
// Includen könntet ihr auch
// $_GET['event'] steht nicht für die id des Events, sondern für den Index des Arrays
else {
echo "Ungültiges Event!\n";
}
if (isset($_GET['next'])) {
echo "\n<br>\n<a href='eventcalendar.php?next=1'>Back</a>\n";
}
else {
echo "\n<br>\n<a href='eventcalendar.php'>Back</a>\n";
}
}
?>
Müsst ihr nur noch alles mit der Datenbank anpassen und unten hab ich 3 Zeilen Kommentar, wo steht, was ihr dort noch einfügen müsst (den Inhalt, wenn man auf einen Termin klickt)
Ich denke, man sieht noch, dass es vom Tutorial abgeleitet ist
Ach ja, man kann dort nur zwischen dem jetzigen Monat und dem nächsten Moant wechseln, aber ihr könntet das mit einer switch-Anweisung ganz einfach um 10 Monate erweitern (diese Stelle ist auch kommentiert)
Auf design ist wiedermal keine Rücksicht genommen worden.
Ich hoffe, dass kein Fehler drinnen ist, ich hab es aber schon ausprobiert, allerdings hab ich ja jetzt das Zeug, was ich aus der DB auslese usw. wieder rausgenommen, damit ihr das besser anpassen könnt, hoffentlich hab ich nicht ausversehen etwas gelöscht.
Hier gibt es ein Beispiel
PS: Muss das etwa unter Tutorials?