Im Format UTF-8 speichern! Ggf. im Browser - Darstellung Textcodierung auf Unicode (UTF-8) stellen
<?php
/*
* Event-Kalender - kalender.php (utf-8)
* - https://werner-zenk.de
Dieses Script wird in der Hoffnung verteilt, dass es nützlich sein wird, aber ohne irgendeine Garantie;
ohne auch nur die implizierte Gewährleistung der Marktgängigkeit oder Eignung für einen bestimmten Zweck.
Weitere Informationen finden Sie in der GNU General Public License.
Siehe Datei: license.txt - http://www.gnu.org/licenses/gpl.html
Diese Datei und der gesamte "Event-Kalender" ist urheberrechtlich geschützt (c) Werner Zenk alle Rechte vorbehalten.
Sie können diese Datei unter den Bedingungen der GNU General Public License frei verwenden und weiter verbreiten.
*/
session_start();
//ini_set("session.use_strict_mode", 1);
header("Content-type: text/html; charset=utf-8");
header("Cache-control: no-cache");
/*
* Includes
*/
require_once "verbindung.php";
require_once "include/kalenderfunktionen.php";
require_once "include/kalenderfunktionen2.php";
require_once "include/kalenderfunktionen3.php";
/*
* Cookies - Vorhandene Einstellungen überschreiben
*/
if (isset($_COOKIE["menue"])) {
list(
$FEIERTAGE, $KALENDERBLATT, $VORSCHAU_BUTTON, $PERMALINK, $BENUTZER,
$FARBVERLAUF, $FARBIGE_EVENTS, $KATEGORIE_FARBE, $KALENDER_BESCHRIFTUNG
) = explode("-", $_COOKIE["menue"]);
}
/*
* Definitionen
*/
// Den Admin und den Benutzer festlegen
define("ADMIN", (isset($_SESSION["name"]) && $_SESSION["name"] == $NAME) ? true : false);
define("BENUTZER", isset($_SESSION["name"]) ? true : false);
// Monate
define("MONATE", [1 => 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']);
define("MONATE_INT", [1 => 'Januar, January, Janvier, Enero, Gennaio, Januari, Ianuarius', 'Februar, February, Février, Febrero, Febbraio, Februari, Februarius',
'März, March, Mars, Marzo, Marzo, Mars, Martius', 'April, Avril , Abril, Aprile, Aprilis', 'Mai, May, Mayo, Maggio, Maj, Maius',
'Juni, June, Juin, Junio, Giugno, Iunius', 'Juli, July, Juillet, Julio, Luglio, Iulius', 'August, Août, Agosto, Agosto, Augusti, Augustus',
'September, Septembre, Septiembre, Settembre', 'Oktober, October, Octobre, Octubre, Ottobre',
'November, Novembre, Noviembre', 'Dezember, December, Décembre, Diciembre, Dicembre']);
// Wochentage (von Sonntag bis Sonntag!)
define("WOCHENTAGE", [0 => 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag']);
define("WOCHENTAGE_INT", [1 => 'Montag, Monday, Lundi, Lunes, Lunedì, Måndag, Lunae', 'Dienstag, Tuesday, Mardi, Martes, Martedì, Tisdag, Martis',
'Mittwoch, Wednesday, Mercredi, Miércoles, Mercoledì, Onsdag, Mercurii', 'Donnerstag, Thursday, Jeudi, Jueves, Giovedì, Torsdag, Iovis',
'Freitag, Friday, Vendredi, Viernes, Venerdì, Fredag, Veneris', 'Samstag, Saturday, Samedi, Sábado, Sabato, Lördag, Saturni',
'Sonntag, Sunday, Dimanche, Domingo, Domenica, Söndag, Solis']);
// modify RaHa ->
// SQL - Private Events
//define('SQL_AND_PRIVATE', (BENUTZER == true) ? ' AND `privat` >= 0 ' : ' AND `privat` = 0 ');
// SQL - Einzelperson-Anzeige
//define('SQL_AND_INDIVIDUAL', (BENUTZER == true && $EINZELPERSON_ANZEIGE == "ja") ? ' AND `name` = "' . $_SESSION["name"] . '" ' : '');
if (isset($_SESSION["name"])) {
if ($_SESSION["name"] == $NAME ) {
// Admin darf immer alles sehen
define('SQL_AND_PRIVATE', '');
define('SQL_AND_INDIVIDUAL', '');
} else {
define('SQL_AND_PRIVATE', ' AND `privat` >= 0 ');
if($EINZELPERSON_ANZEIGE == "ja") { define('SQL_AND_INDIVIDUAL', ' AND `name` = "' . $_SESSION["name"] . '" ');
} else { define('SQL_AND_INDIVIDUAL', '');
}
}
} else {
define('SQL_AND_PRIVATE', ' `privat` = 0 ');
define('SQL_AND_INDIVIDUAL', '');
}
// <- modify RaHa
// Kontextmenü
$kontextmenue = kontextmenue("menu2");
// modify RaHa ->
// Anmeldung und Abmeldung
$tastaturbelegungen = ' Taste: L 	Tastaturbelegungen F1 - Hilfe F2 - Alle Tastaturbelegungen A - Aktuelle Events B - Kalenderblatt C - In die Zwischenablage kopieren D - Drucken F - Feiertage G - Gruppenoptionen H - Heute I - Info J - Jahr K - Kategorie L - Anmelden / Abmelden M - Monat N - Neuen Event eintragen P - Priorität Q - Quartal R - Journal S / F3 - Suche T - Wochentag U - Uhrzeit V - Wecker W - Woche X - Aktueller Kalender Y - Monat / Jahr eingeben Z - Schlüsselwörter ESC - Schließen';
/*
define("ANABMELDUNG", (BENUTZER == true && isset($_SESSION["name"]) && !isset($_GET["abmelden"])) ?
'<th width="90%%">' . $kontextmenue . '<span class="anmeldungOK" onPointerDown="abmelden()" title="' . $_SESSION["name"] . ', klicke hier um dich abzumelden' . $tastaturbelegungen . '">Event-Kalender</span></th>' :
'<th width="90%%">' . $kontextmenue . '<span class="anmeldungKO" onPointerDown="anmelden()" title="Klicke hier um dich anzumelden Taste: L">Event-Kalender</span></th>');
*/
define("ANABMELDUNG", '<th width="90%%"><span class="anmeldungOK">Event-Kalender - '.$_SESSION["name"].'</span></th>') ;
// <- modify RaHa
// Neuen Event eintragen
define("DIREKTEINGABE", (BENUTZER == true) ?
'<th width="2%%"><span class="navLink ig_neu" onPointerDown="zeigeFormular(`eintragen`,' . date("j") . ',' . date("n") . ',' . date("Y") . ',null)" title="Neuen Event eintragen Taste: N"></span> </th> ' :
'');
// Kalender-Navigation
define("NAVIGATION", '<table id="tableNavigation" class="print">
<tr onDblClick="scrollToDo(`kalender`)">
<td width="3%%">%s %s</td>
<td width="1%%"><span id="nachOben" onPointerDown="scrollToDo(`kalender`)" title="Nach oben zum Kalender springen Taste: O oder ALT + Pfeil-Taste Auf"></span></td>
%s
' . ANABMELDUNG . '
' . DIREKTEINGABE . '
%s
%s
</tr>
</table>');
// Kopieren
define("KOPIEREN", '<th width="2%"><span class="navLink print ig_kopieren" id="TasteC" onPointerDown="selectCode()" title="In die Zwischenablage kopieren Taste: C"></span> </th>');
// Anzeige (Ausgabe) beenden
define("AUSGABEX", '<th width="2%"><span class="navLink ig_schliessen" onPointerDown="anzeigeBeenden(`anzeige`)" title="Schließen Taste: ESC"></span></th>');
// Anzeige (Auswahl) beenden
define("AUSWAHLX", '<div id="anzeigeOptionenBeenden"><span class="navLink ig_schliessen" onPointerDown="anzeigeBeenden(`auswahl`)" title="Schließen Taste: ESC"></span></div>');
// Icons
define("ICONS", '<span class="navLink print ig_minus mobilePlus" id="TasteMinus" onClick="setzeFlex(`Zeilen`)" title="Events in Zeilen anzeigen Taste: - (Minus, Ziffernblock)"></span>
<span class="navLink print ig_plus mobilePlus" id="TastePlus" onClick="setzeFlex(`Spalten`)" title="Events in Spalten anzeigen Taste: + (Plus, Ziffernblock)"></span>
<span class="navLink print ig_aufgabe2" onPointerDown="zeigeAufgaben(`1`,`false`);scrollToDo(`kalender`)" title="Aufgaben anzeigen Taste: * (Stern)"></span>
<span class="navLink print ig_volltag" onPointerDown="zeigeSortierung(`uhrzeitangabe2`,`false`)" title="Ganztägige Events anzeigen"></span>
' . (BENUTZER == true ? '<span class="navLink print ig_privat" onPointerDown="zeigeSortierung(`privat`,`false`)" title="Private Events anzeigen"></span>' : '') . '
' . (BENUTZER == true && !empty($ABSENDER) ? '<span class="navLink print ig_benachrichtigung" onPointerDown="zeigeSortierung(`benachrichtigung`,`false`)" title="Benachrichtigungen anzeigen"></span>' : '') . '
<span class="navLink print ig_schluessel" onPointerDown="zeigeAlleSchluesselwoerter();scrollToDo(`kalender`)" title="Alle Schlüsselwörter anzeigen Taste: Z"></span>
<span class="navLink print ig_drucken" onPointerDown="javascript:self.print()" title="Drucken Taste: D"></span>');
// Optionen
define("OPTIONEN", BENUTZER == true ?
'<div id="eventgruppe">
' . ICONS . ' 
<span id="TasteG" class="navLink print ig_gruppe" onPointerDown="gruppenOptionEinAus()" title="Gruppenoptionen anzeigen Taste: G"></span>
<span id="gruppenOptionAnzeige" style="display:none"> |
<span title="Alle Events auswählen oder abwählen">
<input type="checkbox" id="cAll" onclick="gruppenOptionAlleCheckboxen()"><label for="cAll"> Alle</label></span>
<label><span id="checkboxAnzahl">0</span> gewählte:
<select name="gruppenAuswahlliste" id="gruppenAuswahlliste" onwheel="auswahllisteMrAendern(event, this.id)">
' . (ADMIN == true ? '<option value="gruppe_bearbeiten">Bearbeiten</option>' : '') . '
' . (BENUTZER == true ? '<option value="benutzerDetails">Details</option>' : '') . '
<option value="gruppe_drucken">Drucken</option>
<option value="gruppe_exportieren">Export (ICS)</option>
' . (ADMIN == true ? '<option value="gruppe_loeschen">Löschen</option>' : '') . '
</select>
<input type="button" value="OK" onPointerDown="gruppenOption()"></span></label></div>' :
'<div id="eventgruppe">' . ICONS . '</div>');
/*
* Automatische Löschung nicht mehr aktueller Events nach x-Tagen (Optional)
*/
if ($DEL_EVENTS == "ja") {
if (
is_numeric($DEL_TAGE) &&
$DEL_TAGE > 0 && $DEL_TAGE <= 1000
) {
$db->exec("DELETE FROM `" . $TABLE_PREFIX . "_kalender`
WHERE (TO_DAYS(NOW()) - TO_DAYS(`start`)) > " . $DEL_TAGE);
}
}
/*
* Includes - "Verteilerkasten" ;)
*/
if (isset($_GET["kalender"])) {
require_once "include/kalenderanzeige.php";
}
if (isset($_POST) && !isset($_GET["vorschau"])) {
// Formular-Versand
if (
isset($_POST["eintragen"]) || isset($_POST["bearbeiten"]) || isset($_POST["loeschen"]) ||
isset($_POST["anmelden"]) || isset($_POST["abmelden"]) || isset($_POST["suchbegriff"])
) {
require_once "include/kalenderform.php";
}
}
if (
isset($_GET) &&
!isset($_GET["kalender"])
) {
$aktion = array_keys($_GET);
if (isset($aktion[0])) {
switch ($aktion[0]) {
case "aktuelleevents";
case "event";
case "jahresliste";
case "kalenderwoche";
case "monatsliste";
case "monatstag";
case "quartal";
case "tagesansicht";
case "uhrzeit";
case "vergangeneevents";
case "wochentage";
require_once "include/kalenderdetails1.php";
break;
case "alleschluessel";
case "aufgaben";
case "benutzer";
case "feiertage";
case "gruppe";
case "kategorie";
case "prioritaet";
case "schluessel";
case "sortieren";
case "stunde";
case "zeitraum";
case "zeitraums";
require_once "include/kalenderdetails2.php";
break;
case "aktualisierung";
case "berechnung";
case "gruppe_bearbeiten";
case "gruppe_bearbeitenOk";
case "gruppe_drucken";
case "gruppe_exportieren";
case "gruppe_loeschen";
case "benutzerDetails_form";
case "benutzerDetails_send";
case "benutzerDetails";
case "alleBenutzerDetails";
case "ics_form";
case "ics_import";
case "kalender_export";
case "kalender_import";
case "menue";
case "menue_speichern";
require_once "include/kalenderdetails3.php";
break;
case "bewegen";
case "calendar";
case "kopieren";
case "loeschen";
case "tagbewegen";
case "tageauswahl";
case "weltzeit";
require_once "include/kalenderdetails4.php";
break;
case "abmelden";
case "anmeldung_ok";
case "audio";
case "datumsCheck";
case "jahre";
case "mehrTage";
case "monate";
case "optionen";
case "stundenDifferenz";
case "vorschau";
case "zeigefarbe";
require_once "include/kalenderdetails5.php";
break;
case "adress_form";
case "adress_action";
require_once "include/kalenderadressen.php";
break;
case "hilfe";
case "tastaturbelegung";
require_once "include/kalenderdetails6.php";
break;
case "form";
require_once "include/kalenderform.php";
break;
case "kalenderblatt";
require_once "include/kalenderblatt.php";
break;
case "journal";
require_once "include/kalenderjournal.php";
break;
case "info";
require_once "include/kalenderinfo.php";
break;
default;
echo $aktion[0]; // Den Schlüssel bei einem Fehler ausgeben
}
}
}