Event-Kalender
Mit dem Event-Kalender können Sie Events (Ereignisse) in einer DB-Tabelle speichern. Die Events werden übersichtlich in einem Kalender angezeigt. Die Navigation des Kalenders läuft vollständig über JavaScript (AJAX), somit ist kein Seitenwechsel notwendig.
Dieser Kalender zeigt alle Tage eines Monats in Form einer Tabelle an. Dabei kann über Buttons zum Vormonat oder kommenden Monat navigiert werden, auch die Auswahl eines bestimmten Wochentags, der Kalenderwoche, Monats oder Jahres ist möglich.
Der Eingetragene Event, die Tagesansicht oder das Kalenderblatt können direkt ausgewählt werden. Ein Journal zeigt alle Events im Kalenderjahr an.
Eigenschaften
- Flexible Größe - Der Kalender passt sich automatisch der Breite der Seite an.
- Events direkt im Kalender eintragen oder bearbeiten.
- Jährliche Wiederholung eines Events (für Geburtstage, Feiertage etc.).
- Passwort-Schutz (auch für mehrere Benutzer).
- Anzeige von Feiertagen (Optional).
Weitere Eigenschaften
- Jeder Benutzer kann nur seinen eigenen Event bearbeiten (der Admin. alle)!
- Einfaches ändern der Farben des Kalenders durch eine externe CSS-Datei.
- Eine schnelle Suchfunktion im Kalender.
- Ein Kalenderblatt für jeden Kalendertag.
- Prioritäten (farbige Markierungen) für Events setzen.
- Unterstützung für BB-Code.
- HTML-Tags können in der Beschreibung verwendet werden.
- URLs werden in der Beschreibung des Events autom. umgewandelt.
- Die (Kalender-)Dateien sind mit dem Zeichensatz UTF-8 kodiert.
- Anzeige einer Liste der aktuellen Events (◆).
- Ein Event als iCal (ics-Datei) exportieren.
- Die Wochentage (Mo-So) sind anklickbar, diese zeigen dann alle Events des Wochentags im Monat oder im Jahr an.
- Die Tagesansicht zeigt alle Events des gewählten Tages an.
- Smileys und Symbole (Emojis 😁🌼🍓🎁🐉 …) werden nativ dargestellt.
- Schnelle Auswahl von bestimmten Monaten oder Jahren.
- In den Optionen (◼) kann man eine bestimmte Priorität auswählen.
- Die Tagesansicht, das Kalenderblatt (und andere) haben eine Navigation (◄►), mit dieser kann vor- oder zurück gesprungen werden.
- Ein Doppelklick im Kalender auf einem Kalendertag, zeigt die Kalenderwoche an.
- Das Event-Eingabefeld und das Eingabefeld für die Suche haben eine Combobox, mit dieser können bereits eingetragene Events ausgewählt werden.
- PHP 7 Unterstützung.
- Serienevents eintragen - Events in den Kalender eintragen die über mehrere Tage gehen.
- Anzeige der Weltzeit (eine Auswahlliste im heutigen Kalenderblatt).
- Ein Journal für alle Events (komplette Übersicht) im Kalenderjahr.
- Gruppenoptionen: Der Admin. kann mehrere Events (gleichzeitig!) bearbeiten, exportieren oder löschen.
- Das Datumsformat ist anpassbar.
- Vorschau-Funktion beim eintragen oder aktualisieren eines Events (Optional).
- Mit der Suche kann nach mehreren Begriffen gesucht werden.
Neu
- Autom. E-Mail Benachrichtigung - Events können per E-Mail versendet werden (Beta!).
- Der Tag ist in Stunden aufgeteilt. Beim aktuellen Tag wird die Uhrzeit hervorgehoben.
- Private Events - Diese werden erst nach der Anmeldung angezeigt.
- Events können in Kategorien sortiert werden.
- ICS-Dateien importieren und (Optional) alle Events in den Kalender einfügen.
Hinweise zur Installation
Voraussetzung:
Webserver (Linux) mit PHP 7.1 (oder höher), eine MySQL/MariaDB-Datenbank.
Führen Sie folgende Anweisungen nacheinander aus:
- In der Datei:
verbindung.phptragen Sie Ihre Zugangsdaten (zur Datenbank) ein. Dort sind auch weitere Einstellungen möglich. - Laden Sie alle Dateien auf Ihrem Webserver hoch.
- Rufen Sie die Datei:
installation.phpin Ihrem Browser auf. - Rufen Sie die Datei:
demo.htmin Ihrem Browser auf und tragen Sie Ihre ersten Event in den Kalender ein.
Herunterladen: event-kalender.zip
Viel Spaß damit!
➥ In den Kommentaren können Sie Hinweise, Fehler und Verbesserungsvorschläge zum Event-Kalender eintragen.
Tipps
Den Event-Kalender einbinden
Der Kalender lässt sich in jede HTML-Seite einbinden, einfach den Blau hervorgehobenen Text in die Seite einfügen.
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <title>Kalender</title> <link rel="stylesheet" href="kalenderstyle.css"> <script type="text/javascript" src="kalenderscript.js"></script> </head> <body> <div id="kalender"></div> </body> </html>
Den Event-Kalender in ein anderes Verzeichnis einbinden
Die Relativen Pfade anpassen, ausgehend vom aktuellen Verzeichnis in dem der Verweis liegt!
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <title>Kalender</title> <link rel="stylesheet" href="deinverzeichnis/event-kalender/kalenderstyle.css"> <script type="text/javascript" src="deinverzeichnis/event-kalender/kalenderscript.js"></script> </head> <body> <div id="kalender"></div> </body> </html>
In der Datei: kalenderscript.js (Zeile: 18) folgendes anpassen:
const verzeichnis = "deinverzeichnis/event-kalender/";
Anmeldung im Event-Kalender
Ein Hintergrundbild für den Event-Kalender
Öffne die Datei: "kalenderstyle.css" und entferne die folgenden
/* Kalender */
div#kalender {
box-shadow: 1px 1px 10px #CFCFCF;
/* background-image: url(hintergrundbild.jpg);
background-repeat: No-Repeat;
background-size: Cover;*/
}
/* Tabelle */
table#kalender {
font-family: Verdana, Sans-Serif;
background-color: #F5F5F5;
border-collapse: Collapse;
empty-cells: Hide;
width: 100%;
/* opacity: 0.85;*/
cursor: Default;
}
Wenn man eine Liste der Events auch auf einer anderen Seite anzeigen möchte, dann sind die folgenden PHP-Scripte hilfreich.
Die Events des aktuellen Monats anzeigen
Dieses Script zeigt die Events des aktuellen Monats an.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Event-Kalender
// Events des aktuellen Monats anzeigen
include "verbindung.php"; // Dateipfad eventuell anpassen
$select = $db->query("SELECT `start`, `event`, `beschreibung`
FROM `" . $TABLE_PREFIX . "_kalender`
WHERE YEAR(`start`) = YEAR(NOW()) AND
MONTH(`start`) = MONTH(NOW())
ORDER BY `start` ASC");
$events = $select->fetchAll();
foreach ($events as $event) {
sscanf($event["start"], "%4s-%2s-%2s %5s", $dbJahr, $dbMonat, $dbTag, $dbUhr);
echo '<p>' . $dbTag . '.' . $dbMonat . '.' . $dbJahr . ' ' . $dbUhr . ' Uhr - ' .
$event["event"] . '<br>' . $event["beschreibung"] . '</p>';
}
?>
Aktuelle Events anzeigen
Hier können Sie selbst die Anzahl der Events bestimmen die angezeigt werden soll.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// Event-Kalender
// Aktuelle Events anzeigen (mit Beschreibung)
include "verbindung.php"; // Dateipfad eventuell anpassen
$anzahl = 12; // Anzahl
$select = $db->query("SELECT `start`, `event`, `beschreibung`
FROM `" . $TABLE_PREFIX . "_kalender`
WHERE `start` >= NOW()
ORDER BY `start` ASC
LIMIT " . $anzahl);
$events = $select->fetchAll();
foreach ($events as $event) {
sscanf($event["start"], "%4s-%2s-%2s %5s", $dbJahr, $dbMonat, $dbTag, $dbUhr);
echo '<p>' . $dbTag . '.' . $dbMonat . '.' . $dbJahr . ' ' . $dbUhr . ' Uhr - ' .
$event["event"] . '<br>' . $event["beschreibung"] . '</p>';
}
?>
Events der nächsten 31 Tage
Immer Aktuell, die Events der nächsten 31 Tage (individuell einstellbar).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Event-Kalender
// Events der nächsten 31 Tage (individuell einstellbar).
include "verbindung.php"; // Dateipfad eventuell anpassen
$tage = 31; // Tage
$select = $db->query("SELECT `start`, `event`, `beschreibung`
FROM `" . $TABLE_PREFIX . "_kalender`
WHERE (TO_DAYS(`start`) - TO_DAYS(NOW())) >= 0 AND (TO_DAYS(`start`) - TO_DAYS(NOW())) <= " . $tage . "
ORDER BY `start` ASC");
$events = $select->fetchAll();
foreach ($events as $event) {
sscanf($event["start"], "%4s-%2s-%2s %5s", $dbJahr, $dbMonat, $dbTag, $dbUhr);
echo '<p>' . $dbTag . '.' . $dbMonat . '.' . $dbJahr . ' ' . $dbUhr . ' Uhr - ' .
$event["event"] . '<br>' . $event["beschreibung"] . '</p>';
}
?>
Event-Kalender als APP installieren
Voraussetzung: Windows 10 und Microsoft Edge (Chromium).- Die Datei: "demo.htm" mit CSS anpassen.
<style> body { margin: 0 0 850px 0; } div#kalender { box-shadow: unset; } </style> - Ein Icon für die App erstellen - Favicon erstellen
<link rel="SHORTCUT ICON" href="icon.ico" type="image/x-icon">zwischen<head>und</head>einfügen. - Datei speichern.
- Browser: Microsoft Edge (Chromium) öffnen und die Datei in der Adresszeile aufrufen.
- Im Menü folgendes auswählen:

- Fertig