ich habe zwei Module:
eins für die Termineigabe und eins für die Terminausgabe.
Termineingabe:
INPUT: ---
OUTPUT
Code: Alles auswählen
<?php
if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent")) // Überprüfen, ob im Editiermodus aufgerufen
{
$submit="";
echo " <script language=\"JavaScript\" src=\"../contenido/scripts/calendar1.js.php?contenido=".$sess->id."\"></script>"; // Kalender einbinden
$sql = "SELECT ARTLANG.idartlang, CONTENT.idtype, CONTENT.typeid, CONTENT.value, CONTENT.idcontent
FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = ".$idart." AND ARTLANG.idartlang = CONTENT.idartlang
ORDER BY CONTENT.typeid ASC";
$db->query($sql); // Artikelangaben einlesen
if ($db->num_rows() != 0)
{
$termin = array();
$exists = array();
$db->next_record();
$idartlang = $db->f("idartlang");
for ($i=0; $i<$db->num_rows(); $i++)
{
if ( $db->f("idtype") == 3 )
{
$j = $db->f("typeid");
$termin[$j] = $db->f("value");
$exists[$j] = 1;
}
$db->next_record();
}
}
if($termin[6]=="") // falls noch kein Titel eingetragen, Seitentitel einlesen
{
$sql = "SELECT ARTLANG.title
FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG
WHERE ARTLANG.idart = ".$idart."";
$db->query($sql);
$db->next_record();
$termin[6] = $db->f("title");
}
if($senden==1) // falls das Terminformular abgeschickt wurde, Daten in Datenbank schreiben
{
$senden=0;
$date = date("Y-m-d H:i:s");
$author = $auth->auth["uname"];
if (strlen($datum1)==10)
{
$termin[0] = $datum1;
} else
{
$termin[0] = "";
}
$termin[1] = $zeit1;
if (strlen($datum2)==10 && $datum2 >= $datum1)
{
$termin[2] = $datum2;
} else
{
$termin[2] = "";
}
$termin[3] = $zeit2;
$termin[4] = $ort1;
$termin[5] = $ort2;
$termin[6] = $titel;
for ($i=0; $i<=6; $i++)
{
if($exists[$i]==1)
{
$sql = "UPDATE ".$cfg["tab"]["content"]."
SET value='".$termin[$i]."', lastmodified='".$date."'
WHERE idartlang = ".$idartlang." AND idtype='3' AND typeid='".$i."'";
$db->query($sql);
} else
{
$sql = "INSERT INTO ".$cfg["tab"]["content"]."
(idcontent, idartlang, idtype, typeid, value, author, created, lastmodified)
VALUES('".$db->nextid($cfg["tab"]["content"])."', '".$idartlang."', '3', '".$i."', '".$termin[$i]."', '".$author."', '".$date."', '".$date."')";
$db->query($sql);
}
}
}
// ab hier das Formular für die Editieransicht
echo "<form action=\"".$REQUEST_URI."\" method=\"post\" name=\"eintrag\">
<table border=0 cellspacing=2 cellpadding=1>
<tr>
<td align=\"left\">Titel</td>
<td align=\"left\"><input type=\"text\" name=\"titel\" value=\"".urldecode(stripslashes($termin[6]))."\" size=27 class=Input></td>
</tr>
<tr>
<td nowrap>Startdatum <b class=klein>jjjj-mm-tt</b></td>
<td align=\"left\"><input type=\"text\" name=\"datum1\" value=\"".$termin[0]."\" size=11 class=Input>
<a href=\"javascript:startcal.popup('','".$cfg['path']['contenido_fullhtml']."templates/standard/');\">
<img src=\"".$cfg['path']['contenido_fullhtml']."images/calendar.gif\" width=16 height=16 border=0 alt=\"Startzeitpunkt wählen\"></a></td>
</tr>
<tr>
<td align=left>Start-Uhrzeit <b class=klein>hh:mm</b></td>
<td align=left><input type=\"text\" name=\"zeit1\" value=\"".$termin[1]."\" size=6 class=Input></td>
<td class=klein>(kann auch leer bleiben)</td>
</tr>
<tr>
<td align=left>Enddatum <b class=klein>jjjj-mm-tt</b></td>
<td><input type=\"text\" name=\"datum2\" value=\"".$termin[2]."\" size=11 class=Input>
<a href=\"javascript:endcal.popup('','".$cfg['path']['contenido_fullhtml']."templates/standard/');\">
<img src=\"".$cfg['path']['contenido_fullhtml']."images/calendar.gif\" width=16 height=16 border=0 alt=\"Endzeitpunkt wählen\"></a></td>
<td class=klein>(kann auch leer bleiben)</td>
</tr>
<tr>
<td align=left>End-Uhrzeit <b class=klein>hh:mm</b></td>
<td><input type=\"text\" name=\"zeit2\" value=\"".$termin[3]."\" size=6 class=Input></td>
<td class=klein>(kann auch leer bleiben)</td>
</tr>
<tr>
<td align=left>Ort</td>
<td><input type=\"text\" name=\"ort1\" value=\"".urldecode(stripslashes($termin[4]))."\" size=20 class=Input></td>
<td class=klein>(erscheint <i>auch</i> in der Übersicht)</td>
</tr>
<tr>
<td align=left>Ort - Detail</td>
<td><input type=\"text\" name=\"ort2\" value=\"".urldecode(stripslashes($termin[5]))."\" size=27 class=Input></td>
<td class=klein>(erscheint <i>nicht</i> in der Übersicht)</td>
</tr>
<tr>
<td colspan=3 align=center>
<input type=\"submit\" value=\" Absenden \" class=InputButton> <input type=\"hidden\" name=\"senden\" value=1>
<input type=\"reset\" value=\" Abbrechen \" class=InputButton>
</td>
</tr>
</table>
</f"."orm>
<p>Beschreibung/Inhalte: CMS_HTML[7]</p>
<script language=\"JavaScript\">
var startcal = new calendar1(document.forms['eintrag'].elements['datum1']);
startcal.year_scroll = true;
startcal.time_comp = false;
var endcal = new calendar1(document.forms['eintrag'].elements['datum2']);
endcal.year_scroll = true;
endcal.time_comp = false;
</script>";
} else // ab hier Terminausgabe für Frontend-Ansicht bzw. Vorschau
{
$tag1 = substr("CMS_TEXT[0]",8,2);
$monat1 = substr("CMS_TEXT[0]",5,2);
$jahr1 = substr("CMS_TEXT[0]",0,4);
$tag2 = substr("CMS_TEXT[2]",8,2);
$monat2 = substr("CMS_TEXT[2]",5,2);
$jahr2 = substr("CMS_TEXT[2]",0,4);
$datum1 = $tag1.".".$monat1.".".$jahr1;
$datum2 = $tag2.".".$monat2.".".$jahr2;
$date1 = getdate(mktime(0,0,0,$monat1,$tag1,$jahr1));
$date2 = getdate(mktime(0,0,0,$monat2,$tag2,$jahr2));
switch ($date1[wday]) {
case 1: $wtag1 = "Montag"; break;
case 2: $wtag1 = "Dienstag"; break;
case 3: $wtag1 = "Mittwoch"; break;
case 4: $wtag1 = "Donnerstag"; break;
case 5: $wtag1 = "Freitag"; break;
case 6: $wtag1 = "Samstag"; break;
case 0: $wtag1 = "Sonntag"; break; }
switch ($date2[wday]) {
case 1: $wtag2 = "Montag"; break;
case 2: $wtag2 = "Dienstag"; break;
case 3: $wtag2 = "Mittwoch"; break;
case 4: $wtag2 = "Donnerstag"; break;
case 5: $wtag2 = "Freitag"; break;
case 6: $wtag2 = "Samstag"; break;
case 0: $wtag2 = "Sonntag"; break; }
echo "<h1 class=\"headline\">CMS_TEXT[6]</h1>
<font id=\"font\"><p> ".$wtag1.", ".$datum1;
if ( "CMS_TEXT[1]"!=="" )
{
echo ", CMS_TEXT[1]";
if ( "CMS_TEXT[3]"=="" )
{
echo " Uhr";
}
}
if ( strlen($datum2)==10 || "CMS_TEXT[3]"!=="" )
{
echo " – ";
if ( strlen($datum2)==10 )
{
echo $wtag2.", ".$datum2;
}
if ( strlen($datum2)==10 && "CMS_TEXT[3]"!=="" )
{
echo ', ';
}
if ( "CMS_TEXT[3]"!=="" )
{
echo "CMS_TEXT[3] Uhr";
}
}
echo "</p>
<p> <b>CMS_TEXT[4]</b>";
if ( "CMS_TEXT[5]" )
{
echo ", CMS_TEXT[5]";
}
echo "</p>
<p><br>CMS_HTML[7]</p></font>";
$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."";
echo '<p><br><a href="'.$sess->url("$navmod_link").'" id="font">Zurück zur Terminübersicht</a></p>';
}
?>
INPUT: ----
OUTPUT:
Code: Alles auswählen
<?php
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo "<h1>CMS_HTMLHEAD[1]</h1>"; // Überschrift der Seite mit der Termin-Übersicht
echo '<table id="termine" border="0" cellspacing="0" cellpadding="0" width="100%">';
$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang = CONTENT.idartlang
AND ARTLANG.idlang = '".$lang."' AND CAT.idcat = '".$idcat."' AND CAT.idclient = '".$client."'
AND ARTLANG.online = '1' AND CATART.is_start='0'
ORDER BY ARTLANG.idart, CONTENT.typeid ASC"; // Alle Artikel der Kategorie einlesen, die nicht Startartikel (= Terminübersicht) sind
$db->query($sql);
$j=0; $anz=0;
if ($db->num_rows() != 0)
{
$termin = array(array()); // Array erzeugen, in dem die Termine abgelegt werden;
while ($j < $db->num_rows()) // alle Datensätze durchlaufen
{
$db->next_record();
if ($db->f("idart") > $termin["idart"][$anz])
{
$anz++;
}
switch ($db->f("typeid")) {
case 0: // Anfangstermin
$termin["datum1"][$anz] = $db->f("value");
$termin["jahr1"][$anz] = substr($db->f("value"),0,4);
$termin["monat1"][$anz] = substr($db->f("value"),5,2);
$termin["tag1"][$anz] = substr($db->f("value"),8,2);
$termin["idart"][$anz] = $db->f("idart");
break;
case 1: // Anfangsuhrzeit
$termin["zeit1"][$anz] = $db->f("value");
$termin["datum1"][$anz] = $termin["datum1"][$anz]." ".$termin["zeit1"][$anz];
break;
case 2: // Endtermin
$termin["datum2"][$anz] = $db->f("value");
$termin["jahr2"][$anz] = substr($db->f("value"),0,4);
$termin["monat2"][$anz] = substr($db->f("value"),5,2);
$termin["tag2"][$anz] = substr($db->f("value"),8,2);
break;
case 3: // Enduhrzeit
$termin["zeit2"][$anz] = $db->f("value");
$termin["datum2"][$anz] = $termin["datum2"][$anz]." ".$termin["zeit2"][$anz];
break;
case 4: // Ort
$termin["ort"][$anz] = $db->f("value");
break;
case 6: // Titel
$termin["titel"][$anz] = $db->f("value");
break;
}
$j++;
}
array_multisort ( $termin["datum1"], SORT_ASC, SORT_STRING, $termin["datum2"], SORT_ASC, SORT_STRING,
$termin["jahr1"], $termin["monat1"], $termin["tag1"], $termin["zeit1"],
$termin["jahr2"], $termin["monat2"], $termin["tag2"], $termin["zeit2"],
$termin["idart"], $termin["ort"], $termin["titel"] ); // nach Datum sortieren
for ($i=0; $i<=$anz; $i++)
{
if ( $termin["datum1"][$i] >= $date || $termin[$i]["datum2"] >= $date ) // nur Termine, die noch aktuell sind, aufnehmen
{
if ( $termin["monat1"][$i] !== $termin["monat1"][$i-1] || $gefunden == 0 ) // überprüfen, ob Monatsname einzufügen ist
{
echo ' <tr>
<td width="45"><img border="0" src="upload/img/trans.gif" width="45" height="1" alt="" class="line"></td>
<td width="115"><img border="0" src="upload/img/trans.gif" width="115" height="1" alt="" class="line"></td>
<td width="10"><img border="0" src="upload/img/trans.gif" width="10" height="1" alt="" class="line"></td>
<td width="120"><img border="0" src="upload/img/trans.gif" width="120" height="1" alt="" class="line"></td>
<td width="10"><img border="0" src="upload/img/trans.gif" width="10" height="1" alt="" class="line"></td>
<td><img border="0" src="upload/img/trans.gif" height="1" alt="" class="line"></td>
</tr>
<tr>
<td colspan="6" valign="top"><h2>';
switch ($termin["monat1"][$i]) {
case 1: echo "Januar"; break;
case 2: echo "Februar"; break;
case 3: echo "März"; break;
case 4: echo "April"; break;
case 5: echo "Mai"; break;
case 6: echo "Juni"; break;
case 7: echo "Juli"; break;
case 8: echo "August"; break;
case 9: echo "September"; break;
case 10: echo "Oktober"; break;
case 11: echo "November"; break;
case 12: echo "Dezember"; break; }
if ( $i>1 && $termin["jahr1"][$i] != $termin["jahr1"][$i-1] ) // überprüfen, ob Jahr einzufügen ist
{
echo ' '.$termin["jahr1"][$i];
}
echo '</h2></td>
</tr>';
}
$gefunden=1;
echo ' <tr>
<td nowrap valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">'.$termin["tag1"][$i].'.'; // Anfangsdatum ausgeben
if ( strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1 ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
{
echo '</td><td nowrap valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"> ['.$termin["zeit1"][$i].' h]';
} elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
{
echo ' –<br> '.$termin["tag2"][$i].'.';
if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat
{
echo $termin["monat2"][$i].'.';
if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr
{
echo substr($termin["jahr2"][$i],2,2).'.';
}
}
echo '</td><td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">';
} else
{
echo '</td><td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">';
}
$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
echo '</td>
<td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"><img border="0" src="upload/img/trans.gif" width="8" height="1" alt=""></td>
<td valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">'.urldecode($termin["ort"][$i]).'</td>
<td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"><img border="0" src="upload/img/trans.gif" width="8" height="1" alt=""></td>
<td valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"><a href="'.$sess->url("$navmod_link").'">'.urldecode($termin["titel"][$i]).'</a></td>
</tr>';
}
}
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo ' <tr>
<td colspan="6"><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
</table>
Ist ja auch klar, hab ia noch nix eingetragen.Es liegen aktuell keine Termine vor!
Auf der Seite Termineingabe erscheint:
Donnerstag, ..
Zurück zur Terminübersicht
Hab ich da ein generelles Denkproblem?
Danke schonmal,
Tom