das mit der doppelten datenhaltung ist temporär. für die termine macht es wirklich keinen sinn, außer einer einfacheren möglichkeit des im- und exportierens aus und für andere datenbanken.
die daten zu den veranstaltungsorten und zu den referenten/anbietern hole ich ausschließlich aus den dafür vorgesehenen tabellen. da wird nichts in der con_content abgelegt, außer der eine link (CMS_LINK[15]) zum artikel des jeweiligen referenten.
Code: Alles auswählen
<?
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Termin Ein- und Ausgabe
* Author :
* Copyright :
* Created :
************************************************/
/*
* Values form:
* $termin[0] = te_beginn_datum // start date
* $termin[1] = te_beginn_zeit // start time
* $termin[2] = te_end_datum // end date
* $termin[3] = te_end_zeit // end time
* $termin[4] = st_veranstaltungsort // place name
* $termin[5] = an_ansprechpartner // contact person
* $termin[6] = te_titel // title
* $termin[7] = re_referent1 // speaker/director 1
* $termin[8] = re_referent2 // speaker/director 2
* $termin[9] = te_kurz_text // short description
* $termin[10] = te_lang_text // long description
* $termin[11] = te_kosten // price
* $termin[12] = te_kosten_zusatz // comment on price
* $termin[13] = te_uhrzeit_text // comment on time
* $termin[14] = te_kategorie_text1 // date category
* $termin[15] = termin_link // CMS_LINK[15]
*/
if (!is_object($tpl))
{
$tpl = new Template;
}
$tpl->reset();
$template = "termin.html";
if (!is_object($db))
$db = new DB_Contenido;
$db1 = new DB_Contenido;
$db2 = new DB_Contenido;
$db3 = new DB_Contenido;
$db4 = new DB_Contenido;
$db5 = new DB_Contenido;
$kategorie = array("CMS_VALUE[1]", "CMS_VALUE[2]","CMS_VALUE[3]","CMS_VALUE[4]", "CMS_VALUE[5]");
cInclude('classes', 'class.template.php');
// sql request for the last date
$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid, CONTENT.idtype, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT, ".$cfg["tab"]["cat_lang"]." AS CATLANG WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang = CONTENT.idartlang AND ARTLANG.idlang = '".$lang."' AND ARTLANG.idart = '".$idart."' AND CAT.idclient = '".$client."' AND ARTLANG.online = '1' AND CATART.idcat = CATLANG.idcat ";
$db->query($sql); // read all data
if ($edit)
{
$submit='';
echo '<script type="text/javascript" src="'.$cfg['path']['contenido_fullhtml'].'scripts/calendar1.js.php?contenido='.$sess->id.'"></script>';
$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); // write all data into an array
if ($db->num_rows() != 0)
{
$termin = array();
$exists = array(); // does already a date exists?
$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] == "") // if there is no title yet, load title
{
$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) // if form has been send, write data into database
{
$senden = 0;
$date = date("Y-m-d H:i:s");
$author = $auth->auth["uname"];
if (strlen($te_beginn_datum) == 10)
{
$termin[0] = $te_beginn_datum;
}
else
{
$termin[0] = "";
}
$termin[1] = $te_beginn_zeit;
if (strlen($te_end_datum) == 10 && $te_end_datum >= $te_beginn_datum)
{
$termin[2] = $te_end_datum;
}
else
{
$termin[2] = "";
}
$termin[3] = $te_end_zeit;
$termin[4] = $st_veranstaltungsort;
$termin[5] = $an_ansprechpartner;
$termin[6] = $te_titel;
$termin[7] = $re_referent1;
$termin[8] = $re_referent2;
$termin[9] = $te_kurz_text;
$termin[10] = $te_lang_text;
$termin[11] = $te_kosten;
$termin[12] = $te_kosten_zusatz;
$termin[13] = $te_uhrzeit_text;
$termin[14] = $te_kategorie_text1;
for ($i=0; $i<=7; $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);
$db->next_record();
$sql = "UPDATE ".$cfg["tab"]["veranstaltung"]." SET te_beginn_datum='".$termin[0]."', te_end_datum='".$termin[2]."', te_kategorie_text1='".$termin[14]."', te_titel='".$termin[6]."', te_kurz_text='".$termin[9]."', te_lang_text='".$termin[10]."', te_kosten='".$termin[11]."', te_kosten_zusatz='".$termin[12]."', te_beginn_zeit='".$termin[1]."', te_end_zeit='".$termin[3]."', te_uhrzeit_text='".$termin[13]."', st_veranstaltungsort='".$termin[4]."', an_ansprechpartner='".$termin[5]."', re_referent1='".$termin[7]."', re_referent2='".$termin[8]."'";
$db1->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);
$db->next_record();
$sql = "INSERT INTO ".$cfg["tab"]["veranstaltung"]." (te_beginn_datum, te_end_datum, te_kategorie_text1, te_titel, te_kurz_text, te_lang_text, te_kosten, te_kosten_zusatz, te_beginn_zeit, te_end_zeit, te_uhrzeit_text, st_veranstaltungsort, an_ansprechpartner, re_referent1, re_referent2, te_user) VALUES ('".$termin[0]."', '".$termin[2]."', '".$termin[14]."', '".$termin[6]."', '".$termin[9]."', '".$termin[10]."', '".$termin[11]."', '".$termin[12]."', '".$termin[1]."', '".$termin[3]."', '".$termin[13]."', '".$termin[4]."', '".$termin[5]."', '".$termin[7]."', '".$termin[8]."')";
$db1->query($sql);
}
}
} // end if($edit)
// insert date (backend)
echo '<form action="'.$REQUEST_URI.'" method="post" name="formulareintrag">
<table align="center" cellpadding="2" cellspacing="2" border="0" width="90%">
<tr><td align="center" colspan="2"><b>Neuen Termin eingeben</b><br><br></td></tr>
<tr><td>'.mi18n("Datum Beginn (Format: JJJJ-MM-TT)").'</td><td valign="top"><input type="text" name="te_beginn_datum" value="'.$termin[0].'" size="15"> <a href="javascript:startcal.popup(\'\',\''.$cfg['path']['contenido_fullhtml'].'templates/standard/\');"><img src="'.$cfg['path']['contenido_fullhtml'].'images/calendar.gif" width="16" valign="top" height="16" border="0" alt="'.mi18n("Bitte Datum mit Hilfe des Kalenders waehlen").'"></a></td></tr>
<tr><td>'.mi18n("Datum Ende (Format: JJJJ-MM-TT)").'</td><td valign="top"><input type="text" name="te_end_datum" value="'.$termin[2].'" size="15"> <a href="javascript:endcal.popup(\'\',\''.$cfg['path']['contenido_fullhtml'].'templates/standard/\');"><img src="'.$cfg['path']['contenido_fullhtml'].'images/calendar.gif" width="16" valign="top" height="16" border="0" alt="'.mi18n("Bitte Datum mit Hilfe des Kalenders waehlen").'"></a></td></tr>
<tr><td>'.mi18n("Kategorie").' </td><td><select name="te_kategorie_text1" value="'.$termin[14].'" size="1">';
$x = 1;
while($x<6)
{
echo '<option>'.$kategorie[$x].'</option>';
$sql = "UPDATE ".$cfg["tab"]["kategorie"]." SET kategorie='".$kategorie[$x]."'";
$db1->query($sql);
$db1->next_record();
$x++;
}
echo '</select></td></tr>
<tr><td>'.mi18n("Veranstaltungsname").' </td><td><input name="te_titel" type="text" size="50" value="'.urldecode(stripslashes($termin[6])).'"></td></tr>
<tr><td>'.mi18n("Kurztext").' </td><td><textarea name="te_kurz_text" rows="3" cols="45">'.urldecode(stripslashes($termin[9])).'</textarea></td></tr>
<tr><td>'.mi18n("Langtext").' </td><td><textarea name="te_lang_text" rows="6" cols="45">'.urldecode(stripslashes($termin[10])).'</textarea></td></tr>
<tr><td>'.mi18n("Kosten").' </td><td><input name="te_kosten" type="text" value="'.$termin[11].'" size="15"> (Format: 00,00)</td></tr>
<tr><td>'.mi18n("Kosten Kommentar").' </td><td><input name="te_kosten_zusatz" value="'.urldecode(stripslashes($termin[12])).'" type="text" size="50"></td></tr>
<tr><td>'.mi18n("Zeit (Beginn)").' </td><td><input name="te_beginn_zeit" type="text" value="'.$termin[1].'" size="20"> (Format: hh:mm)</td></tr>
<tr><td>'.mi18n("Zeit (Ende)").' </td><td><input name="te_end_zeit" type="text" value="'.$termin[3].'" size="20"> (Format: hh:mm)</td></tr>
<tr><td>'.mi18n("Zeit Kommentar (optional)").' </td><td><input name="te_uhrzeit_text" value="'.urldecode(stripslashes($termin[13])).'" type="text" size="40"></td></tr>
<tr><td>'.mi18n("Veranstaltungsort").' </td><td><select name="st_veranstaltungsort" value="'.$termin[4].'" size="1">';
$sql = "SELECT st_veranstaltungsort FROM ".$cfg["tab"]["veranstaltungsort"]."";
$db2->query($sql);
while ($db2->next_record())
{
echo "<option>".$db2->f("st_veranstaltungsort")."</option>";
}
echo '</select></td></tr>
<tr><td>Anmeldung </td><td><select name="an_ansprechpartner" value="'.$termin[5].'" size="1">';
$sql = "SELECT an_ansprechpartner FROM ".$cfg["tab"]["anmeldung"]."";
$db3->query($sql);
while ($db3->next_record())
{
echo "<option>".$db3->f("an_ansprechpartner")."</option>";
}
echo '</select></td></tr>
<tr><td>Referent 1 </td><td><select name="re_referent1" value="'.$termin[7].'" size="1">';
$sql = "SELECT re_referent FROM ".$cfg["tab"]["referent"]."";
$db4->query($sql);
while ($db4->next_record())
{
echo "<option>".$db4->f("re_referent")."</option>";
}
echo '</select></td></tr>
<tr><td>Referent 2 </td><td><select name="re_referent2" value="'.$termin[8].'" size="1">
<option>Bitte wählen</option>';
$sql = "SELECT re_referent FROM ".$cfg["tab"]["referent"]."";
$db5->query($sql);
while ($db5->next_record())
{
echo "<option>".$db5->f("re_referent")."</option>";
}
echo '</select></td></tr>
<tr><td> </td><td><input type="submit" value="'.mi18n("Absenden").'" class=InputButton> <input type="hidden" name="senden" value=1><input type="reset" value="'.mi18n("Zuruecksetzen").'" class=InputButton></td>
</tr></table></form>';
echo "<p>".mi18n("Link zum Referenten/Anbieter: ")."<a href=\"CMS_LINK[15]\">CMS_LINKDESCR[15]</a></p>";
echo '<script language="JavaScript">
var startcal = new calendar1(document.forms[\'formulareintrag\'].elements[\'te_beginn_datum\']);
startcal.year_scroll = true;
startcal.time_comp = false;
var endcal = new calendar1(document.forms[\'formulareintrag\'].elements[\'te_end_datum\']);
endcal.year_scroll = true;
endcal.time_comp = false;
</script>';
}
else // show date (frontend)
{
$sql = "SELECT * FROM ".$cfg["tab"]["veranstaltung"]." where te_id='$te_id'";
$db1->query($sql);
$db1->next_record();
$beginn = $db->f("te_beginn_datum");
$ende = $db->f("te_end_datum");
$start = $db->f("te_beginn_zeit");
$stop = $db->f("te_end_zeit");
$object_zeit = new Termine;
if($ende == "0000-00-00")
{
$datum = $object_zeit->dateconvert1($beginn);
}else{
$datum = $object_zeit->dateconvert1($beginn)." - ". $object_zeit->dateconvert2($ende);
}
$referent = $db->f("re_referent1");
if($db->f("re_referent2") and $db->f("re_referent2") !== "Bitte wählen")
{
$referent = $referent." und ".$db->f("re_referent2");
}
if($stop == "00:00:00")
{
$zeit = "<br>Zeit: ".$object_zeit->timeconvert1($start)." Uhr";
}else{
$zeit = "<br>Zeit: ".$object_zeit->timeconvert1($start)." bis ".$object_zeit->timeconvert2($stop)." Uhr";
}
if($start == "00:00:00")
{
$zeit = "";
}
$tpl->set('d', 'VERANSTALTUNG', $db->f("te_titel"));
$tpl->set('d', 'KURZTEXT', $db->f("te_kurz_text"));
$tpl->set('d', 'LANGTEXT', $db->f("te_lang_text"));
$tpl->set('d', 'KOSTEN', $db->f("te_kosten"));
$tpl->set('d', 'KOSTEN_KOMMENTAR', $db->f("te_kosten_kommentar"));
$tpl->set('d', 'DATUM', $datum);
$tpl->set('d', 'ZEIT', $zeit);
$tpl->set('d', 'STRASSE', $strasse);
$tpl->set('d', 'NUMMER', $nummer);
$tpl->set('d', 'PLZ', $plz);
$tpl->set('d', 'ORT', $ort);
$tpl->set('d', 'KONTAKT', $kontakt);
$tpl->next();
$tpl->generate('templates/'.$template);
} // end else (show date)
?>
gruss, V.