[Neues Modul] Terminkalender

Gesperrt
djw
Beiträge: 129
Registriert: Di 6. Apr 2004, 21:27
Wohnort: Baden
Kontaktdaten:

[Neues Modul] Terminkalender

Beitrag von djw » Fr 25. Feb 2005, 15:20

Bin zur Zeit noch dran - Teil kann ich schonmal veröffentlichen (editieren geht aber zb noch nicht)

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;

OUTPUT:

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>&nbsp;</td>';
        if ($EditMode == 1) {// Überprüfen, ob im Editiermodus aufgerufen
               $OutputPrint .= '<td>&nbsp;</td><td>&nbsp;</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>&nbsp;</td><td>&nbsp;</td>';
                  }
                  // Neuen Monatsnamen schreiben
                  $OutputPrint .= '
                                 <td>'.$StartMonthName.'</td>
                                 <td>&nbsp;</td>
                                 <td>&nbsp;</td>
                                 <td>&nbsp;</td>
                                 <td>&nbsp;</td>
                  ';

                  foreach($TextFelderArray as $Textfelder) {
                        if ($Textfelder[0]=="1"){
                        	$OutputPrint .= '<td>&nbsp;</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&ouml;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>&nbsp;</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 ;
        }

}

 

?>
Version aktualisiert
Zuletzt geändert von djw am Mi 2. Mär 2005, 16:55, insgesamt 5-mal geändert.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 25. Feb 2005, 18:08

ähm irgendwie mag deine spielwiese nicht gehen...
*** make your own tools (wishlist :: thx)

djw
Beiträge: 129
Registriert: Di 6. Apr 2004, 21:27
Wohnort: Baden
Kontaktdaten:

Beitrag von djw » Sa 26. Feb 2005, 01:11

emergence hat geschrieben:ähm irgendwie mag deine spielwiese nicht gehen...
Ops Sorry - musste Server neu installieren - habs jetzt grad ausm profil raus


Karl
Beiträge: 185
Registriert: Fr 28. Nov 2003, 19:07
Kontaktdaten:

Re: [Neues Modul] Terminkalender

Beitrag von Karl » Mi 2. Mär 2005, 14:46

djw hat geschrieben: Beispiel unter http://www.eventbasar.de/cms/ffwrheinau ... ?idcat=218
(derzeitige Entwicklungsumgebung)
Ich sehe da nur Script Code :(
Gruss Karl

djw
Beiträge: 129
Registriert: Di 6. Apr 2004, 21:27
Wohnort: Baden
Kontaktdaten:

Beitrag von djw » Mi 2. Mär 2005, 16:08

hat 2 Gründe:
1.) ich habe den Debug Modus angeschalten dann werden alle Mysql Codes angezeigt
2.) Es sind noch keine Termine eingetragen

OAA
Beiträge: 134
Registriert: Sa 15. Nov 2003, 15:54
Wohnort: Regensburg
Kontaktdaten:

Beitrag von OAA » Do 3. Mär 2005, 17:21

ist das jetzt der code den Du oben gepostet hast, oder ein überarbeiteter?

djw
Beiträge: 129
Registriert: Di 6. Apr 2004, 21:27
Wohnort: Baden
Kontaktdaten:

immer aktuell

Beitrag von djw » Do 3. Mär 2005, 20:51

Ich halte den Code oben so gut wie es geht immer aktuell.

Gesperrt