Beispiel unter http://www.eventbasar.de/cms/ffwrheinau ... ?idcat=218
(derzeitige Entwicklungsumgebung)
FEATURES:
- Weitere Spalten konfigurierbar
- selbstinstallierend (beim 1. Start) bitte beim hinzufügen von neuen Spalten alte Tabelle löschen oder neuen Namen angeben
- Datums Format Frei wählbar
- Debugger der die aktuellen SQL Codes ausgibt einschaltbar
- Tabellen Name frei wählbar
- TerminDetailseite mit oder ohne Gesamtansicht anzeigen
- TerminDetailseite nicht anzeigen
- Löschen der Einträge
- Eintragsformular mit Aktuellem Datum vorbelegt
- Bearbeiten der Einträge
TODO:
- Wenn eingetragen - diese Werte übernehmen
- Automatisches Löschen der Einträge nach Ablauf --> kann nicht überall benutzt werden da nicht jeder Cronjobs hat
- Manuelles Löschen der Einträge nach Ablauf
- Update Spalten --> Aufgeschoben
- Kleinen Kalender einblenden zum einstellen --> keine Erfahrung
- Jeder Monat extra Tabelle (Ladezeiten) --> schlecht, da sonst die Überschrift nicht mehr passt
- Ausgabetabelle für: Ort, Tag
- Ausgabe des Real Namens des Eintragers
- Flexibel für Mehrsprachigkeit
- Beschränkt auf User (nur der, der den Eintrag macht darf was ändern) --> Konfigurierbar
INPUT:
Code: Alles auswählen
if ($_REQUEST["changeview"]== "edit") {
// Im Editiermodus
echo "Im Editiermodus<br>";
} else {
// Im Editiermodus
echo "Nicht im Editiermodus<br>";
}
//printf($cfg);
echo "<br>". $_REQUEST["changeview"];
echo "<br>". $auth->auth["uid"];
echo "<br>".$cfg["sql"]["sqlprefix"];
/*
DELETE FROM `con_DJW_Termine` WHERE (`StartDate` >= date_sub(now(), interval 1 hour) ) AND (`ClientID` = "10") AND (`idart` = "94")
$cfg["tab"]["cat_tree"];
$cfg["tab"]["cat_lang"];
$cfg["tab"]["cat"];
*/
echo '
<table width="100%" border="0">
<tr>
<td><strong>Debugger an/aus:</strong></td>
<td><input type="checkbox" name=CMS_VAR[1212] value="1"'; if ("CMS_VALUE[1212]" == 1) {echo "checked";} echo '></td>
</tr>
<tr>
<td><strong>Detailseite:</strong></td>
<td><input type="checkbox" name=CMS_VAR[1211] value="1"'; if ("CMS_VALUE[1211]" == 1) {echo "checked";} echo '></td>
</tr>
<tr>
<td><strong>Tabelle Zeigen wenn Detailseite gezeigt wird:</strong></td>
<td><input type="checkbox" name=CMS_VAR[1215] value="1"'; if ("CMS_VALUE[1215]" == 1) {echo "checked";} echo '></td>
</tr>
<tr>
<td><strong>Alle Kategorien Anzeigen:</strong></td>
<td><input type="checkbox" name=CMS_VAR[1213] value="1"'; if ("CMS_VALUE[1213]" == 1) {echo "checked";} echo '></td>
</tr>
<tr>
<td><strong>Kategorien:</strong></td>
<td><input type="text" name=CMS_VAR[1201] value="CMS_VALUE[1201]"> </td>
</tr>
<tr>
<td><strong>Anzahl Termine die angezeigt werden:</strong></td>
<td><input type="text" name=CMS_VAR[1216] value="CMS_VALUE[1216]"> </td>
</tr>
</table>
';
echo $client;
Code: Alles auswählen
<?php
/////////////////////////////////////////////////////////////////
/**
*
* OUTPUT
*
* DJW Kalender Modul 0.1
*
* BESCHREIBUNG
* Kalender für Contenido
*
*
* FEATURES:
* - Weitere Spalten konfigurierbar
* - selbstinstallierend (beim 1. Start) bitte beim hinzufügen von neuen Spalten alte Tabelle löschen oder neuen Namen angeben
* - Datums Format Frei wählbar
* - Debugger der die aktuellen SQL Codes ausgibt einschaltbar
* - Tabellen Name frei wählbar
* - TerminDetailseite mit oder ohne Gesamtansicht anzeigen
* - TerminDetailseite nicht anzeigen
* - Löschen der Einträge
* - Eintragsformular mit Aktuellem Datum vorbelegt
* - Bearbeiten der Einträge
* - Wenn Termin eingetragen ist und der Nächste eingetragen wird sind die Daten vom vorrigen Termin noch im Formular
* - Manuelles Löschen der Einträge nach Ablauf
* - Ausgabe des Benutzernamens bei Neuem Eintrag
*
* IMPLEMENTIERT IN:
* - www.feuerwehr-rheinau.de (noch im Aufbau)
*
* TODO:
* - Automatisches Löschen der Einträge nach Ablauf --> kann nicht überall benutzt werden da nicht jeder Cronjobs hat
* - Update Spalten --> Aufgeschoben
* - Kleinen Kalender einblenden zum einstellen --> keine Erfahrung
* - Jeder Monat extra Tabelle (Ladezeiten) --> schlecht, da sonst die Überschrift nicht mehr passt
* - Ausgabetabelle für: Ort, Tag
* - Ausgabe des Real Namens des Eintragers
* - Flexibel für Mehrsprachigkeit
* - Beschränkt auf User (nur der, der den Eintrag macht darf was ändern) Konfigurierbar --> Aufgeschoben da derzeit nicht benötigt
* @autor DJ W. Eventservice <markus@dj-w.de>
* @copyright DJ W. Eventservice 22.02.2005
*/
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
// //
// //
//----- EINSTELLUNGEN START -----//
// //
// //
/////////////////////////////////////////////////////////////////
$DebugOption = "CMS_VALUE[1212]"; // Debugger an und ausschalten
/////////////////////////////////////////////////////////////////
$DateFormatOutputTable = "d.w H:i"; // Englisches Datum = "Y-m-d H:i:s" / 12.Samstag 13:16 = d.w H:i
$DateFormatOutputDetails = "d.w H:i"; // Englisches Datum = "Y-m-d H:i:s" / 12.Samstag 13:16 = d.w H:i
/////////////////////////////////////////////////////////////////
// Anzeige
$ViewArtList = "CMS_VALUE[1201]"; // Artikel Liste die angezeigt werden soll (Kommagetrennt)
$ViewAllArtList = "CMS_VALUE[1213]"; // 1 wenn Termine von allen Artikeln angezeigt werden sollen
$DetailView = "CMS_VALUE[1211]"; // 1 = Detail Anzeige einschalten
$TableIfDetailView = "CMS_VALUE[1215]"; // 1 = Tabelle anzeigen wenn Details angezeigt werden.
$SQLLimitViews = "CMS_VALUE[1216]"; // Anzahl der anzuzeigenden Einträge
/////////////////////////////////////////////////////////////////
// Tabellen Namen setzen
$Standardprefix = "1"; // 1 eintragen wenn das Standard Contenido Prefix genutzt werden soll
$TableName = "_DJW_Termine"; // Tabellen Name (wenn $Standardprefix = 1 dann wird das Prefix von Contenido vorne angefügt
/////////////////////////////////////////////////////////////////
// //
// !!!! NUR FÜR ERFAHRENE ANWENDER !!!! //
// //
/////////////////////////////////////////////////////////////////
// Zusatzfelder in Tabelle Anlegen
/*
Nur wenn noch keine Daten in der Kalender Tabelle sind.
Script überprüft ob die Tabelle schon vorhanden ist - Erst dann wird die Neue Tabelle angelegt
Beispiel:
$TextFelderArray[Kleidung(SQLName)] = array (1(in Startseite),1 (In Detailseite),text(Datentyp in Mysql),Kleidung(Ausgabename),Anzug(Textinhalt);
Das in runden (Klammern) ist die Beschreibung - diese bitte draussen lassen
*/
$TextFelderArray[Kleidung] = array (0,1,text,Kleidung);
$TextFelderArray[Ansprechpartner] = array (0,1,text,Ansprechpartner);
$TextFelderArray[Abteilung] = array (1,1,text,Abteilung);
/////////////////////////////////////////////////////////////////
// //
// //
// //
//----- EINSTELLUNGEN ENDE -----//
// //
// //
// //
/////////////////////////////////////////////////////////////////
// benötigte Funktionen
function DebugEcho($OutputString,$DebugOption) {
if ($DebugOption == "1") {
if ($OutputString != "") {
echo "<br>".$OutputString."<br>";
}
}
}
function DateConvertGerman_English($GermanDate) {
// 18.10.1979
$GermanDateArray = explode (".", $GermanDate);
$EnglishDate = $GermanDateArray[2]."-".$GermanDateArray[1]."-".$GermanDateArray[0];
return $EnglishDate;
}
function DateConvertEnglish_German($EnglishDate) {
// 18.10.1979
// 1979-10-18
$EnglishDateArray = explode ("-", $EnglishDate);
$GermanDate = $EnglishDateArray[2].".".$EnglishDateArray[1].".".$EnglishDateArray[0];
return $GermanDate;
}
function DateTimeConvertEnglish_Array($EnglishDate) {
// 1979-10-18 11:55
$DateTempArray = explode (" ", $EnglishDate);
$DateArray = explode ("-",$DateTempArray[0]);
$TimeArray = explode (":",$DateTempArray[1]);
$DateTimeArray[Year] = $DateArray[0];
$DateTimeArray[Month] = $DateArray[1];
$DateTimeArray[Day] = $DateArray[2];
$DateTimeArray[Hour] = $TimeArray[0];
$DateTimeArray[Minute] = $TimeArray[1];
$DateTimeArray[Second] = $TimeArray[2];
return $DateTimeArray;
}
function Dayswitch($DaiNr) {
switch (date("w",strtotime ($DaiNr))) {
case 1: $StartDay = "Montag"; break;
case 2: $StartDay = "Dienstag"; break;
case 3: $StartDay = "Mittwoch"; break;
case 4: $StartDay = "Donnerstag"; break;
case 5: $StartDay = "Freitag"; break;
case 6: $StartDay = "Samstag"; break;
case 0: $StartDay = "Sonntag"; break;
}
return $StartDay;
}
function Monthwitch($MonthName) {
switch ($MonthName) {
case 1: $MonthName = "Januar"; break;
case 2: $MonthName = "Februar"; break;
case 3: $MonthName = "März"; break;
case 4: $MonthName = "April"; break;
case 5: $MonthName = "Mai"; break;
case 6: $MonthName = "Juni"; break;
case 7: $MonthName = "Juli"; break;
case 8: $MonthName = "August"; break;
case 9: $MonthName = "September"; break;
case 10: $MonthName = "Oktober"; break;
case 11: $MonthName = "November"; break;
case 12: $MonthName = "Dezember"; break;
}
return $MonthName;
}
function DayFormat($DateTime,$OutputFormat) {
$DayName = Dayswitch($DateTime); //Montag
$OutputFormat = str_replace("w", "x", $OutputFormat);
$DateOut = date($OutputFormat,strtotime($DateTime));
$DateOut = str_replace("x", $DayName, $DateOut);
return $DateOut;
}
///////////////////////////////////////////////////////////////////////////////////
// Nur Begrenzt Einträge anzeigen
$SQLSelectLimiter = "";
if ($SQLLimitViews != "") {
$SQLSelectLimiter = "LIMIT ".$SQLLimitViews;
}
///////////////////////////////////////////////////////////////////////////////////
//Tabellen Namen Festlegen
if ($Standardprefix == "1") {
$cfg["tab"]["termine"] = $cfg["sql"]["sqlprefix"].$TableName;
} else {
$cfg["tab"]["termine"] = $TableName;
}
//////////////////////////////////////////////////////////////////////////////////
// Datum und Zeiten zum Vorbelegen des Formulars
$StartTime = date("G:i",time());
$EndTime = date("G:i",time());
$StartDate = date("d.m.Y",time());
$EndDate = date("d.m.Y",time());
$AuthorName = $auth->auth["perm"];
///////////////////////////////////////////////////////////////////////////////////
// Link für Details erstellen
$DetailSiteLink = $_SERVER["PHP_SELF"];
if ($QUERY_STRING != "") {
$DetailSiteLink .= "?".$QUERY_STRING."&DJWCalenderDetailIDTermin=";
} else {
$DetailSiteLink .= "?DJWCalenderDetailIDTermin=";
}
///////////////////////////////////////////////////////////////////////////////////
if($_POST["DeleteSubmit"]=="Delete") {
$SQLDeleteOldString = 'DELETE FROM `'.$cfg[tab][termine].'` WHERE (`StartDate` <= date_sub(now(), interval 1 hour) ) AND (`ClientID` = "'.$client.'")';
DebugEcho($SQLDeleteOldString,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($SQLDeleteOldString); // Datenbank Abfrage
}
///////////////////////////////////////////////////////////////////////////////////
// Termin ändern
if ($_REQUEST["EditID"] != "" ) {
// Zu editierenden Termin abrufen
$SQLEditString ='SELECT * FROM `'.$cfg[tab][termine].'` WHERE `IDTermin` = "'.$_REQUEST["EditID"].'"';
DebugEcho($SQLEditString,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($SQLEditString); // Datenbank Abfrage
while ( $db->next_record() ) {
$StartDateTimeArray = DateTimeConvertEnglish_Array($db->f("StartDate"));
$EndDateTimeArray = DateTimeConvertEnglish_Array($db->f("EndDate"));
$EndTime = $EndDateTimeArray[Hour].":".$EndDateTimeArray[Minute];
$EndDate = $EndDateTimeArray[Day].".".$EndDateTimeArray[Month].".".$EndDateTimeArray[Year];
$StartTime = $StartDateTimeArray[Hour].":".$StartDateTimeArray[Minute];
$StartDate = $StartDateTimeArray[Day].".".$StartDateTimeArray[Month].".".$StartDateTimeArray[Year];
$AuthorName = $db->f("Author");
$TerminBeschreibung = $db->f("ViewBeschreibung");
$TerminOrt = $db->f("ViewOrt");
foreach($TextFelderArray as $Textfelder) {
$TempVar1 = $Textfelder[3]; // Name des Feldes
$TextFelderArray[$TempVar1][4]= $db->f($TempVar1);
$TempVar1 = "";
}
}
}
///////////////////////////////////////////////////////////////////////////////////
// Termin löschen
if ($_REQUEST["DeleteID"] != "" ) {
$SQLDeleteString = 'DELETE FROM `'.$cfg[tab][termine].'` WHERE `IDTermin` = "'.$_REQUEST["DeleteID"].'"';
DebugEcho($SQLDeleteString,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($SQLDeleteString);// Datenbank Abfrage
echo '<br><div align ="center">Eintrag wurde gelöscht</div><br>';
}
///////////////////////////////////////////////////////////////////////////////////
// Link zum Ändern zusammenstellen
$EditSiteLink = $_SERVER["PHP_SELF"];
if ($QUERY_STRING != "") {
$EditSiteLink .= "?".$QUERY_STRING."&EditID=";
} else {
$EditSiteLink .= "?EditID=";
}
///////////////////////////////////////////////////////////////////////////////////
// Link zum löschen zusammenstellen
$DeleteSiteLink = $_SERVER["PHP_SELF"];
if ($QUERY_STRING != "") {
$DeleteSiteLink .= "?".$QUERY_STRING."&DeleteID=";
} else {
$DeleteSiteLink .= "?DeleteID=";
}
///////////////////////////////////////////////////////////////////////////////////
// Artikel die angezeigt werden sollen auflisten
if ($ViewAllArtList == "1") {
// Falls alle Artikel ausgegeben sollen
$ViewArtSQLSelection .= '(`ClientID` = "'.$client.'")'; // Alle Artikel
} else {
$ViewArtSQLSelection .= '(`ClientID` = "'.$client.'") AND (`idart` = "'.$idart.'")'; // Termine vom gleichen Artikel
$ViewArtArray = explode(",",$ViewArtList); // Weitere Artikel
foreach($ViewArtArray as $ViewArt) {
$ViewArtSQLSelection .= 'OR (`idart` = "'.$ViewArt.'")';
}
}
///////////////////////////////////////////////////////////////////////////////////
// Zusatzfelder für Tabellen Create anlegen
//SQL Tabellen Insert der ganzen Tabelle
$SQLTableInsertCodeZusatzfelder= "";
//SQL Insert der ganzen Tabelle
$SQLInsertCodeZusatzfelder = "";
//
$ZusatzFelderArray = array();
foreach($TextFelderArray as $Textfelder) {
$SQLTableInsertCodeZusatzfelder .= ",";
$SQLTableInsertCodeZusatzfelder .= "`".$Textfelder[3]."` ".$Textfelder[2]." NOT NULL";
$SQLInsertCodeZusatzfelder .= ",`".$Textfelder[3]."`";
}
///////////////////////////////////////////////////////////////////////////////////
// Tabelle falls noch nicht vorhanden anlegen
// TebellenCode erstellen
$TableCreateSQL = "
CREATE TABLE IF NOT EXISTS `".$cfg[tab][termine]."` (
`IDTermin` int(10) NOT NULL auto_increment,
`ClientID` int(10) NOT NULL default '0',
`idart` int(10) NOT NULL default '0',
`Author` varchar(255) NOT NULL default '',
`StartDate` datetime NOT NULL,
`EndDate` datetime NOT NULL,
`ViewOrt` text NOT NULL,
`ViewBeschreibung` text NOT NULL,
`Eintragsdatum` datetime NOT NULL,
PRIMARY KEY (`IDTermin`)".$SQLTableInsertCodeZusatzfelder."
) TYPE=MyISAM AUTO_INCREMENT=1 ;
";
DebugEcho($TableCreateSQL,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($TableCreateSQL);// Datenbank Abfrage
///////////////////////////////////////////////////////////////////////////////////
// Auf Editiermodus überprüfen
$SubmitButton = "Eintragen";
if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent")) {// Überprüfen, ob im Editiermodus aufgerufen
$EditMode = 1; // Wenn im Editiermodus Editmode einschalten
$SQLSelectLimiter = "";
if ($_REQUEST["EditID"]!=""){
$SubmitButton = "Update"; // Submittbutton auf Update setzen
}
}
$sqlSelectionTermine .= 'SELECT * FROM `'.$cfg[tab][termine].'` WHERE '; // Abfrage für Termine
if ($EditMode != 1) {
// Wenn nicht im Editiermodus
$sqlSelectionTermine .= '(`StartDate` >= date_sub(now(), interval 1 hour) ) AND '; //Nur Neue Termine - 1 Stunde vor aktueller Zeit
}
$sqlSelectionTermine .= $ViewArtSQLSelection.'ORDER BY `StartDate`'.$SQLSelectLimiter; // Nach Datum sortieren
DebugEcho( $sqlSelectionTermine,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($sqlSelectionTermine);// Datenbank Abfrage
///////////////////////////////////////////////////////////////////////////////////
// Standardausgabe Tabelle
// Wenn Detailansicht angezeigt wird und Die Tabelle auch angezeigt werden darf
$TableViewSwitch = 1; // Tabellenanzeige einschalten
if ($_REQUEST["DJWCalenderDetailIDTermin"] != "" ) {
$TableViewSwitch = 0; // Tabellenanzeige ausschalten wegen Detailansicht
if ($TableIfDetailView == 1) { // Wenn Tabelle auch bei der Detailansicht angezeigt werden soll
$TableViewSwitch = 1;
}
}
if ($TableViewSwitch == 1) { // Tabelle auch bei der Detailansicht anzeigen
$OutputPrint .= '
<table width="100%" border="0">
<tr class="DJWKalenderHeader">
<td> </td>';
if ($EditMode == 1) {// Überprüfen, ob im Editiermodus aufgerufen
$OutputPrint .= '<td> </td><td> </td>';
}
$OutputPrint .= '
<td>Ende</td>
<td>Ort</td>
<td>Beschreibung</td>
<td>Autor</td>
';
// Zusatzfelder ausgeben
foreach($TextFelderArray as $Textfelder) {
//$TextFelderArray[Kleidung] = array (0,1,text,Kleidung);
if ($Textfelder[0]=="1"){
$OutputPrint .= '<td>'.$Textfelder[3].'</td>';
}
}
$OutputPrint .= '</tr>';
// Monat Anzeigen
while ( $db->next_record() ) {
$StartMonat = $db->f("StartDate"); // Startdatum abfragen für Monat
$DateTimeArray = DateTimeConvertEnglish_Array($db->f("StartDate"));// Datum Konvertieren
$StartMonthName = Monthwitch($DateTimeArray["Month"]);//Monatsnamen setzen
if ($LastStartMonthName != $StartMonthName) {//Wenn der letzte gesetzte Monat nicht der gleiche ist
$OutputPrint .= '
<tr class="DJWKalenderMonat">
';
if($EditMode == 1) {// Überprüfen, ob im Editiermodus aufgerufen
$OutputPrint .= '<td> </td><td> </td>';
}
// Neuen Monatsnamen schreiben
$OutputPrint .= '
<td>'.$StartMonthName.'</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
';
foreach($TextFelderArray as $Textfelder) {
if ($Textfelder[0]=="1"){
$OutputPrint .= '<td> </td>';
}
}
$OutputPrint .= ' </tr> ';
}
$LastStartMonthName = $StartMonthName; // Monatsnamen für spätere Überprüfung in Variable schreiben
$StartDateSpecial =str_replace("00:00", "",DayFormat(($db->f("StartDate")),$DateFormatOutputTable)); //Falls 00:00 in Tabelle steht (keine Zeit angegeben) dann dies herausfiltern
$EndDateSpecial =str_replace("00:00", "",DayFormat(($db->f("EndDate")),$DateFormatOutputTable));//Falls 00:00 in Tabelle steht (keine Zeit angegeben) dann dies herausfiltern
$OutputPrint .= '
<tr>';
if ($EditMode == 1) {// Überprüfen, ob im Editiermodus aufgerufen
// Links zum Löschen und Editieren
$OutputPrint .= '
<td><a href="'.$DeleteSiteLink.$db->f("IDTermin").'" target="_self"><img src="../contenido/images/delete.gif" alt="löschen" border="0"></a></td>
<td><a href="'.$EditSiteLink.$db->f("IDTermin").'" target="_self"><img src="../contenido/images/but_edit.gif" alt="Editieren" border="0"></a></td>
';
$DetailView = "0";
}
// Datum ausgeben
$OutputPrint .= '
<td>'.$StartDateSpecial.'</td>
<td>'.$EndDateSpecial.'</td>
';
if ($DetailView == 1) { // Wenn Detail Ansicht eingeschaltet ist
$OutputPrint .= '
<td><a href="'.$DetailSiteLink.$db->f("IDTermin").'" target="_self">'. $db->f("ViewOrt").'</a></td>'; // Link Ausgeben
} else {
$OutputPrint .= '
<td>'. $db->f("ViewOrt").'</td>';
}
// Autor und Beschreibung ausgeben
$OutputPrint .= '<td>'.$db->f("ViewBeschreibung").'</td>
<td>'.$db->f("Author").'</td>';
// Extra Felder ausgeben
foreach($TextFelderArray as $Textfelder) {
if ($Textfelder[0]=="1"){
$OutputPrint .= '<td>'.$db->f($Textfelder[3]).'</td>';
}
}
$OutputPrint .= '</tr>';
}
$OutputPrint .= '</table>';
}
//////////////////////////////////////////////////////////////////////////////////
// Modus kontrollieren
if($EditMode == 1) {// Überprüfen, ob im Editiermodus aufgerufen
//
// Submittbutton auf Eintragen setzen
// Im Editiermodus
DebugEcho("Im Editiermodus",$DebugOption);// Meldung wenn Debugger eingeschaltet
//////////////////////////////////////////////////////////////////////////////////
if ($_POST["Submit"] == "Eintragen") { // Falls Formular abgesendet wurde
DebugEcho("EINTRAGEN",$DebugOption); // Meldung ausgeben wenn Debugger eingeschaltet
// Variablen aus Formular füllen
$GermanDateStart = $_POST["GermanDateStart"];
$GermanTimeStart = $_POST["GermanTimeStart"];
$GermanDateEnd = $_POST["GermanDateEnd"];
$GermanTimeEnd = $_POST["GermanTimeEnd"];
$Author = $_POST["Author"];
$Description = $_POST["ViewDescription"];
$Ort = $_POST["ViewOrt"];
$Freigabe = $_POST["ChkBoxFreigabe"];
// Werte wieder Eintragen in Formular
$EndTime = $GermanTimeEnd;
$EndDate = $GermanDateEnd;
$StartTime = $GermanTimeStart;
$StartDate = $GermanDateStart;
$AuthorName = $Author;
$TerminBeschreibung = $Description;
$TerminOrt = $Ort;
// Datum für Tabelle Konvertieren
$StartDateTime = DateConvertGerman_English($GermanDateStart)." ".$GermanTimeStart;
$EndDateTime = DateConvertGerman_English($GermanDateEnd)." ".$GermanTimeEnd;
// SQL Code zusammensetzen
$SQLInsert = "INSERT INTO `".$cfg["tab"]["termine"]."` (
`IDTermin` ,
`idart` ,
`ClientID` ,
`Author` ,
`StartDate` ,
`EndDate` ,
`ViewOrt` ,
`ViewBeschreibung`,
`Eintragsdatum`
";
foreach($TextFelderArray as $Textfelder) { // Zusatzfelder
$SQLInsert .= ",`".$Textfelder[3]."`";
}
$SQLInsert .= "
) VALUES (
'',
'".$_REQUEST["idart"]."',
'".$client."',
'".$Author."',
'".$StartDateTime."',
'".$EndDateTime."',
'".$Ort."',
'".$Description."',
NOW()
";
foreach($TextFelderArray as $Textfelder) { // Zusatzfelder
$TempVar = "";
$TempVar = $Textfelder[3];
$SQLInsert .= ",'".$_POST[$TempVar]."'";
}
$SQLInsert .= ");";
DebugEcho($SQLInsert,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($SQLInsert);// Datenbank Abfrage
} elseif ($_POST["Submit"] == "Update") { // Falls Formular mit Update abgesendet wurde
DebugEcho("UPDATEN",$DebugOption); // Meldung ausgeben wenn Debugger eingeschaltet
// Variablen aus Formular füllen
$GermanDateStart = $_POST["GermanDateStart"];
$GermanTimeStart = $_POST["GermanTimeStart"];
$GermanDateEnd = $_POST["GermanDateEnd"];
$GermanTimeEnd = $_POST["GermanTimeEnd"];
$TerminIDUpdate = $_POST["TerminID"];
$Author = $_POST["Author"];
$Description = $_POST["ViewDescription"];
$Ort = $_POST["ViewOrt"];
$Freigabe = $_POST["ChkBoxFreigabe"];
$Delete = $_POST["ChkBoxDelete"];
// Datum für Tabelle Konvertieren
$StartDateTime = DateConvertGerman_English($GermanDateStart)." ".$GermanTimeStart;
$EndDateTime = DateConvertGerman_English($GermanDateEnd)." ".$GermanTimeEnd;
// SQL Code zusammensetzen
$SQLInsert = "
UPDATE `".$cfg["tab"]["termine"]."`
SET
`idart` = '".$_REQUEST["idart"]."',
`ClientID` ='".$client."',
`Author` ='".$Author."',
`StartDate` ='".$StartDateTime."',
`EndDate` ='".$EndDateTime."',
`ViewOrt` ='".$Ort."',
`ViewBeschreibung` ='".$Description."',
`Eintragsdatum` = NOW()
";
foreach($TextFelderArray as $Textfelder) { // Zusatzfelder
$TempVar = "";
$TempVar = $Textfelder[3];
$SQLInsert .= ",`".$Textfelder[3]."` = '".$_POST[$TempVar]."'";
}
$SQLInsert .= " WHERE `IDTermin` = '".$TerminIDUpdate."';";
DebugEcho($SQLInsert,$DebugOption);// SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($SQLInsert);// Datenbank Abfrage
}
/////////////// FORMULAR ZUM EINTRAGEN /////////////
if (trim($AuthorName) == "") {
$AuthorName = $auth->auth["perm"];
}
?>
<form name="TerminEingabe" method="post" action="">
<input name="TerminID" type="hidden" value="<?php echo $_REQUEST["EditID"];?>" size="10">
<table border="0" align="center">
<tr>
<td><strong>Artikel Nr.: <?php echo $_REQUEST["idart"]; ?></strong></td>
</tr>
<tr>
<td><strong>Author:<input name="Author" type="text" value="<?php echo $AuthorName; ?>"></strong></td>
</tr>
<tr>
<td height="25"><strong>Beginn: <input name="GermanDateStart" type="text" value="<?php echo $StartDate;?>" size="10">TT.MM.JJJJ<input name="GermanTimeStart" type="text" value="<?php echo $StartTime;?>" size="7">HH:MM </strong></td>
</tr>
<tr>
<td><strong>Ende:<input name="GermanDateEnd" type="text" value="<?php echo $EndDate;?>" size="10">TT.MM.JJJJ<input name="GermanTimeEnd" type="text" value="<?php echo $StartTime;?>" size="7">HH:MM </strong></td>
</tr>
<?php
// ZusatzFelder
foreach($TextFelderArray as $Textfelder) {
$SQLInsert .= ",'".$Textfelder[4]."'";
echo '
<tr>
<td valign="middle"><div align="right"><p align="center"><strong>'.$Textfelder[3].'</strong><strong><textarea name="'.$Textfelder[3].'">'.$Textfelder[4].$Textfelder[5].'</textarea></strong></p></div></td>
</tr>
';
}
?>
<tr>
<td> </td>
</tr>
<tr>
<td valign="middle"><div align="right"><p align="center"><strong>Beschreibung:</strong><strong><textarea name="ViewDescription"><?php echo $TerminBeschreibung;?></textarea></strong></p></div></td>
</tr>
<tr>
<td valign="middle"><div align="center"><strong>Ort: <textarea name="ViewOrt"><?php echo $TerminOrt;?></textarea></strong></div></td>
</tr>
<tr>
<td><div align="center"><strong>Freigabe
<input type="checkbox" name="ChkBoxFreigabe" value="checkbox"></strong></div></td>
</tr>
<tr>
<td><div align="center"> <strong><input type="submit" name="Submit" value="<?php echo $SubmitButton; ?>"></strong></div></td>
</tr>
</table>
</form>
<form name="DeleteOldForm" method="post" action="">
Alte Beiträge löschen
<input type="submit" name="DeleteSubmit" value="Delete">
</form>
<?php
echo $OutputPrint ; // Tabelle ausgeben
} else {
// Nicht im Editiermodus
DebugEcho( "Nicht im Editiermodus",$DebugOption);// Meldung ausgeben wenn Debugger eingeschaltet
///////////////////////////////////////////////////////////////////////////////////
// Detailbereich
// Check ob Detailseite geladen werden muss
if ($_REQUEST["DJWCalenderDetailIDTermin"] != "") {
//Wenn Detailseite geladen werden muss
$SQLDetailTermin = 'SELECT * FROM `'.$cfg[tab][termine].'` WHERE (`ClientID` = "'.$client.'") AND (`IDTermin` ='.$_REQUEST["DJWCalenderDetailIDTermin"].') ';
if ($EditMode != 1) { // Wenn nicht im Editier Modus
$sqlSelectionTermine .= 'AND (`StartDate` >= date_sub(now(), interval 1 hour) )'; // Nur Aktuelle Termine Abrufen
}
$sqlSelectionTermine .= '
AND (`IDTermin` ="'.$_REQUEST["DJWCalenderDetailIDTermin"].'") AND'.$ViewArtSQLSelection.' ORDER BY `StartDate`';
DebugEcho( $SQLDetailTermin,$DebugOption); // SQL Abfrage ausgeben wenn Debugger eingeschaltet
$db->query($SQLDetailTermin);// Datenbank Abfrage
// Ausgabe von Details
while ( $db->next_record() ) {
echo '
<table class ="DJWKalenderDetails" align="center" border="0">
<tr>
<td>'.DayFormat(($db->f("StartDate")),$DateFormatOutputDetails).'</td>
</tr>
<tr>
<td>'.str_replace("00:00", "", DayFormat(($db->f("EndDate")),$DateFormatOutputDetails)).'</td>
</tr>
<tr>
<td>'.$db->f("ViewOrt").'</td>
</tr>
<tr>
<td>'.$db->f("ViewBeschreibung").'</td>
</tr>
';
// Sonder Felder
foreach($TextFelderArray as $Textfelder) {
echo '<tr><td>'.$db->f($Textfelder[3]).'</td></tr>';
}
echo '
<tr>
<td>Eingetragen am '.$db->f("Eintragsdatum").' von '.$db->f("Author").'</td>
</tr>
</table>
<hr>
';
}
}
if ($TableViewSwitch == 1) { // Falls Tabelle in der Detailansicht auch angezeigt werden soll
echo $OutputPrint ;
}
}
?>