@homtata: In der Tat fehlt mir da ein paar wesentliche Fachkenntnisse.
Code: Alles auswählen
[/ <?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Termineingabe/anzeige universal
* Version : 3.0
* Author : schlaucher (Original 4.8 version)
* 4.9 Adaptation : Viktor Lehmann, TONE2TONE
* Created : 12-07-2006 (schlaucher)
* Modified : 20.08.2015 (T2T)
************************************************/
/***********************************************
* Formularfelder:
*
* $MOD_TE_termin[0] = Startdatum
* $MOD_TE_termin[1] = Startzeit
* $MOD_TE_termin[2] = Enddatum
* $MOD_TE_termin[3] = Endzeit
* $MOD_TE_termin[4] = Ziel
* $MOD_TE_termin[5] = Geld
* $MOD_TE_termin[6] = Titel
* $MOD_TE-termin[7] = Check für Teaser
* $MOD_TE_termin[8] = Text
* $MOD_TE_termin[9] = Link CMS_LINK[9]
* $MOD_TE_termin[10] = Termin Zyklus
* $MOD_TE_termin[11] = Termin Zyklus Wochentage
* $MOD_TE_termin[12] = jeden 1.,2.,3.,4.,5. Wochentag
* $MOD_TE_termin[13] = Kategorien A
* $MOD_TE_termin[14] = Image
* $MOD_TE_termin[15] = Status
* $MOD_TE_termin[16] = Termin Zyklus jeden x-ten Tag
* $MOD_TE_termin[17] = Termin Zyklus Ausschlussliste
* $MOD_TE_termin[18] = Beschreibung
* $MOD_TE_termin[19] = Termin Zyklus Anzeigemodus2(Anzahl)
* $MOD_TE_termin[20] = Termin in der Terminliste hervorheben
* $MOD_TE_termin[21] = Kategorien B
* $MOD_TE_termin[22] = zusätzliche Termine
* $MOD_TE_termin[23] = Projekt Nr
* $MOD_TE_termin[24] = Einrichtung
* $MOD_TE_termin[25] = Kostenstelle
* $MOD_TE_termin[26] = Strasse
* $MOD_TE_termin[27] = PLZ
* $MOD_TE_termin[28] = Ort-Details
* $MOD_TE_termin[29] = Telefon
* $MOD_TE_termin[30] = E-Mail
* $MOD_TE_termin[31] = Ansprechpartner
* $MOD_TE_termin[32] = Aufwandsentschädigung
* $MOD_TE_termin[33] = Werbung
* $MOD_TE_termin[34] = Alter FW
* $MOD_TE_termin[35] = Geschlecht FW
* $MOD_TE_termin[36] = Fähigkeiten FW
* $MOD_TE_termin[37] = Dauer
* $MOD_TE_termin[38] = Mo
* $MOD_TE_termin[39] = Di
* $MOD_TE_termin[40] = Mi
* $MOD_TE_termin[41] = Do
* $MOD_TE_termin[42] = Fr
* $MOD_TE_termin[43] = Sa
* $MOD_TE_termin[44] = So
* $MOD_TE_termin[45] = vormittags
* $MOD_TE_termin[46] = nachmittags
* $MOD_TE_termin[47] = abends
************************************************/
// To Do:
// Re-Introduce Kategorie Output to FEU version
// Re-Introduce Status
// Re-Introduce Time Settings
// Re-Introduce Cycle Settings
// Re-Introduce Image. Deleted here, code is too oldfashioned.
// Includes
cInclude("module", "functions.terminliste.php");
cInclude("frontend", "includes/functions.t2t.php");
// Client Settings
$categories[1] = getEffectiveSetting('projektliste', 'schwerpunkte', '');
$adressat[1] = getEffectiveSetting('projektliste', 'adressat', '');
$highlightlist = getEffectiveSetting('terminliste', 'css_classes', '');
$highlightlist = ( $highlightlist != "" ) ? explode(";", "--;".$highlightlist) : "";
// Definition benötigter Variablen $MOD_TE_[Name]
// Variablen aus Input Bereich
// Anzeige des Images in der Vorschau
$MOD_TE_img_show = ("CMS_VALUE[11]" == 'yes') ? true : false;
$MOD_TE_imgw = "CMS_VALUE[12]"; // Maximale Bildbreite
$MOD_TE_imgh = "CMS_VALUE[13]"; // Maximale Bildhöhe
$MOD_TE_imgar = "CMS_VALUE[14]"; // Bild Ausrichtung
$MOD_TE_imgva= "CMS_VALUE[15]"; // Vertikaler Raum
$MOD_TE_imgha = "CMS_VALUE[16]"; // Horizontaler Raum
$MOD_TE_ortsliste_array = ( "CMS_VALUE[17]" != "" ) ? explode(';',"CMS_VALUE[17]") : ""; // Ortsauswahlliste
$tpl_editor = ( "CMS_VALUE[24]" != "" ) ? "CMS_VALUE[24]" : "frontendeditor.tpl";
$tpl_fedisplay = ( "CMS_VALUE[25]" != "" ) ? "CMS_VALUE[25]" : "frontenddisplay.tpl";
// SQL Abfrage über den aktuellen Artikel
$MOD_TE_sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid, CONTENT.idtype, ARTLANG.idartlang ";
$MOD_TE_sql .= "FROM ".$cfg["tab"]["cat_art"]." AS CATART,";
$MOD_TE_sql .= " ".$cfg["tab"]["art_lang"]." AS ARTLANG,";
$MOD_TE_sql .= " ".$cfg["tab"]["cat"]." AS CAT,";
$MOD_TE_sql .= " ".$cfg["tab"]["content"]." AS CONTENT,";
$MOD_TE_sql .= " ".$cfg["tab"]["cat_lang"]." AS CATLANG ";
$MOD_TE_sql .= "WHERE ARTLANG.idart = CATART.idart ";
$MOD_TE_sql .= "AND CATART.idcat = CAT.idcat ";
$MOD_TE_sql .= "AND ARTLANG.idartlang = CONTENT.idartlang ";
$MOD_TE_sql .= "AND ARTLANG.idlang = '".$lang."' ";
$MOD_TE_sql .= "AND ARTLANG.idart = '".$idart."' ";
$MOD_TE_sql .= "AND CAT.idclient = '".$client."' ";
$MOD_TE_sql .= "AND CATART.idcat = CATLANG.idcat ";
$db->query($MOD_TE_sql); // Artikelangaben einlesen
// überprüfen, ob im Editiermodus aufgerufen
if ($db->numRows()> 0) // Datenfelder durchlaufen und alle CMS_TEXT Elemente in Array schreiben
{
$MOD_TE_termin = array(); // Array für die Termininhalte
$MOD_TE_exists = array(); // Array für Prüfung, ob Datensatz bereits existiert
$db->nextRecord();
$idartlang = $db->f("idartlang");
for ($MOD_TE_zaehler = 0; $MOD_TE_zaehler<$db->numRows(); $MOD_TE_zaehler++)
{
if ( $db->f("idtype") == 3 ) // = CMS_TEXT
{
$MOD_TE_typeid = $db->f("typeid");
$MOD_TE_termin[$MOD_TE_typeid] = $db->f("value");
$MOD_TE_exists[$MOD_TE_typeid] = 1;
}
if ( $db->f("idtype") == "19" ) // = CMS_DATE
{
$dom = new domDocument;
$dom->loadXML($db->f("value"));
$xml = simplexml_import_dom($dom);
$date_Ymd = date('Y-m-d', (int)$xml->timestamp);
$date_His = date('H:i:s', (int)$xml->timestamp);
$MOD_TE_typeid = $db->f("typeid");
$MOD_TE_termin[$MOD_TE_typeid."date"] = ($date_Ymd == "0000-00-00" ) ? "0000-00-00" : $date_Ymd;
$MOD_TE_termin[$MOD_TE_typeid."time"] = $date_His;
}
$db->nextRecord();
}
}
if(!$MOD_TE_termin[6]) // falls noch kein Titel eingetragen, Seitentitel einlesen
{
$MOD_TE_sql = "SELECT ARTLANG.title ";
$MOD_TE_sql .= "FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG ";
$MOD_TE_sql .= "WHERE ARTLANG.idart = '".$idart."' ";
$db->query($MOD_TE_sql);
$db->nextRecord();
$MOD_TE_termin[6] = $db->f("title");
}
// Presets
//if(!$MOD_TE_termin[0]) $MOD_TE_termin[0] = $MOD_TE_today;
if(!$MOD_TE_termin[10]) $MOD_TE_termin[10] = 'no';
if(!$MOD_TE_termin[11]) $MOD_TE_termin[11] = '';
if(!$MOD_TE_termin[12]) $MOD_TE_termin[12] = '';
if(!$MOD_TE_termin[13]) $MOD_TE_termin[13] = '';
if(!$MOD_TE_termin[21]) $MOD_TE_termin[21] = '';
if(!$MOD_TE_termin[15]) $MOD_TE_termin[15] = '0';
if(!$MOD_TE_termin[16]) $MOD_TE_termin[16] = '0';
if(!$MOD_TE_termin[17]) $MOD_TE_termin[17] = '';
if(!$MOD_TE_termin[18]) $MOD_TE_termin[18] = ' ';
if(!$MOD_TE_termin[19]) $MOD_TE_termin[19] = '-1';
$MOD_TE_termin[20] = ( $MOD_TE_termin[20] = '') ? "--" : $MOD_TE_termin[20];
if(!$MOD_TE_termin[22]) $MOD_TE_termin[22] = '';
if($_POST["MOD_TE_senden"] == "1") // falls das Terminformular abgeschickt wurde, Daten in Datenbank schreiben
{
$MOD_TE_senden = false;
$MOD_TE_termin[4] = ($MOD_TE_ortsliste == "") ? $MOD_TE_ort : $MOD_TE_ortsliste;
$MOD_TE_termin[5] = $MOD_TE_strasse;
$MOD_TE_termin[6] = $MOD_TE_titel;
$MOD_TE_termin[7] = $MOD_TE_teaser;
$MOD_TE_termin[8] = $MOD_TE_text;
$MOD_TE_termin[18] = $MOD_TE_details;
$MOD_TE_termin[23] = $MOD_TE_projektnr;
$MOD_TE_termin[24] = $MOD_TE_einrichtung;
$MOD_TE_termin[25] = $MOD_TE_kostenstelle;
$MOD_TE_termin[26] = $MOD_TE_strasse;
$MOD_TE_termin[27] = $MOD_TE_plz;
$MOD_TE_termin[28] = $MOD_TE_ortdetails;
$MOD_TE_termin[29] = $MOD_TE_telefon;
$MOD_TE_termin[30] = $MOD_TE_email;
$MOD_TE_termin[31] = $MOD_TE_ansprechpartner;
$MOD_TE_termin[32] = $MOD_TE_aufwand;
$MOD_TE_termin[33] = $MOD_TE_werbung;
$MOD_TE_termin[34] = $MOD_TE_alter;
$MOD_TE_termin[35] = $MOD_TE_geschlecht;
$MOD_TE_termin[36] = $MOD_TE_faehigkeiten;
$MOD_TE_termin[37] = $MOD_TE_dauer;
$MOD_TE_termin[38] = $MOD_TE_mo;
$MOD_TE_termin[39] = $MOD_TE_di;
$MOD_TE_termin[40] = $MOD_TE_mi;
$MOD_TE_termin[41] = $MOD_TE_do;
$MOD_TE_termin[42] = $MOD_TE_fr;
$MOD_TE_termin[43] = $MOD_TE_sa;
$MOD_TE_termin[44] = $MOD_TE_so;
$MOD_TE_termin[45] = $MOD_TE_vormittags;
$MOD_TE_termin[46] = $MOD_TE_nachmittags;
$MOD_TE_termin[47] = $MOD_TE_abends;
// Erweiterte Felder für Terminzyklen und Kategorien
$MOD_TE_termin[10] = $MOD_TE_cycle;
// 9 = Filelink, already dealt with through own CMS type. We need its contents separate though for FEU display
$dom = new domDocument;
$dom->loadXML($MOD_TE_termin[9]);
$xml = simplexml_import_dom($dom);
$MOD_TE_termin["link"] = $xml->externallink;
$MOD_TE_termin["linkframe"] = $xml->newwindow;
$MOD_TE_termin["linkdesc"] = $xml->title;
$MOD_TE_termin[21] = "";
foreach ($_POST as $key => $value) {
if ( substr($key, 0, 10) == 'categories') {
$MOD_TE_termin[21] .= $value.";";
}
}
if ( $MOD_TE_termin[21] != "" ) { $MOD_TE_termin[21] = substr($MOD_TE_termin[21] , 0, -1); }
$MOD_TE_termin[13] = "";
foreach ($_POST as $key => $value) {
if ( substr($key, 0, 10) == 'categories') {
$MOD_TE_termin[13] .= $value.";";
}
}
if ( $MOD_TE_termin[13] != "" ) { $MOD_TE_termin[13] = substr($MOD_TE_termin[13] , 0, -1); }
// check all additional dates - eliminate if not correct, as it forces script errors.
if ( $MOD_TE_zutermine != "" ) {
$checkzutermine = explode(",",$MOD_TE_zutermine);
foreach ($checkzutermine as $key=>$checktermin ) {
$unixdate = strtotime($checktermin);
$recheck = date("Y-m-d", $unixdate);
if ($recheck != $checktermin) {
unset($checkzutermine[$key]);
$errors[] = mi18n("error_dates_additional_couldnotallbesaved");
}
}
}
$MOD_TE_termin[22] = implode (",",$checkzutermine);
for ($MOD_TE_zaehler=4; $MOD_TE_zaehler<=49; $MOD_TE_zaehler++)
{
// Nothing to save in case of #8 and #9, will be done at a later stage
{
if($MOD_TE_exists[$MOD_TE_zaehler]==1)
{
$MOD_TE_sql = "UPDATE ".$cfg["tab"]["content"]." ";
$MOD_TE_sql .= "SET value='".$MOD_TE_termin[$MOD_TE_zaehler]."', lastmodified='".$MOD_TE_date."' ";
$MOD_TE_sql .= "WHERE idartlang = '".$idartlang."' ";
$MOD_TE_sql .= "AND idtype='3' ";
$MOD_TE_sql .= "AND typeid='".$MOD_TE_zaehler."' ";
$db->query($MOD_TE_sql);
}
else
{
$MOD_TE_sql = "INSERT INTO ".$cfg["tab"]["content"]." ";
$MOD_TE_sql .= "(idartlang, idtype, typeid, value, author, created, lastmodified) ";
$MOD_TE_sql .= "VALUES('".$idartlang."', '3', '".$MOD_TE_zaehler."', '".$MOD_TE_termin[$MOD_TE_zaehler]."', '".$MOD_TE_author."', '".$MOD_TE_date."', '".$MOD_TE_date."')";
$db->query($MOD_TE_sql);
}
}
}
}
$MOD_TE_highlight_check = ("$MOD_TE_termin[20]" == '1') ? "checked" : "";
$MOD_TE_disabled = ($MOD_TE_ortsliste_array[0] != "") ? "disabled" : "";
$MOD_TE_teaser_check = ("$MOD_TE_termin[7]" == 'yes') ? "checked" : "";
$MOD_TE_aufwand = ("$MOD_TE_termin[32]" == 'yes') ? "checked" : "";
$MOD_TE_werbung = ("$MOD_TE_termin[33]" == 'yes') ? "checked" : "";
$MOD_TE_mo = ("$MOD_TE_termin[38]" == 'yes') ? "checked" : "";
$MOD_TE_di = ("$MOD_TE_termin[39]" == 'yes') ? "checked" : "";
$MOD_TE_mi = ("$MOD_TE_termin[40]" == 'yes') ? "checked" : "";
$MOD_TE_do = ("$MOD_TE_termin[41]" == 'yes') ? "checked" : "";
$MOD_TE_fr = ("$MOD_TE_termin[42]" == 'yes') ? "checked" : "";
$MOD_TE_sa = ("$MOD_TE_termin[43]" == 'yes') ? "checked" : "";
$MOD_TE_so = ("$MOD_TE_termin[44]" == 'yes') ? "checked" : "";
$MOD_TE_vormittags = ("$MOD_TE_termin[45]" == 'yes') ? "checked" : "";
$MOD_TE_nachmittags = ("$MOD_TE_termin[46]" == 'yes') ? "checked" : "";
$MOD_TE_abends = ("$MOD_TE_termin[47]" == 'yes') ? "checked" : "";
// ab hier das Formular für die Editieransicht
$MOD_TE_termin[startdate] = "CMS_DATE[1]";
$MOD_TE_termin[enddate] = "CMS_DATE[2]";
$MOD_TE_termin[linkstd] = "CMS_LINK[9]";
$MOD_TE_termin[linkdesc] = "CMS_LINKEDITOR[9]";
$MOD_TE_termin[cycle] = ($MOD_TE_termin[10] == "no" ) ? false : true;
$MOD_TE_termin[imagesrc] = "CMS_IMG[14]";
$MOD_TE_termin[imageeditor] = "CMS_IMGEDITOR[14]";
$tpl = cSmartyFrontend::getInstance();
//$tpl->assign('actionlink', "front_content.php?idcat=$idcat&idart=$idart&lang=$lang&client=$client&contenido=$contenido");
$tpl->assign('errors', $errors);
$tpl->assign('actionlink', "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
$tpl->assign('highlight_check', $MOD_TE_highlight_check);
$tpl->assign('teaser_check', $MOD_TE_teaser_check);
$tpl->assign('aufwand', $MOD_TE_aufwand);
$tpl->assign('werbung', $MOD_TE_werbung);
$tpl->assign('montag', $MOD_TE_mo);
$tpl->assign('dienstag', $MOD_TE_di);
$tpl->assign('mittwoch', $MOD_TE_mi);
$tpl->assign('donnerstag', $MOD_TE_do);
$tpl->assign('freitag', $MOD_TE_fr);
$tpl->assign('samstag', $MOD_TE_sa);
$tpl->assign('sonntag', $MOD_TE_so);
$tpl->assign('vormittags', $MOD_TE_vormittags);
$tpl->assign('nachmittags', $MOD_TE_nachmittags);
$tpl->assign('abends', $MOD_TE_abends);
$tpl->assign('adressat', $MOD_TE_adressat);
$tpl->assign('venuetype', $MOD_TE_disabled);
$tpl->assign('fieldset_main', mi18n("fieldset_main"));
$tpl->assign('fieldset_details', mi18n("fieldset_details"));
$tpl->assign('fieldset_cycle', mi18n("fieldset_cycle"));
$tpl->assign('label_title', mi18n("Titel"));
$tpl->assign('label_projektnr', mi18n("Projekt Nr"));
$tpl->assign('label_einrichtung', mi18n("Einrichtung"));
$tpl->assign('label_faehigkeiten', mi18n("gewünschte Fähigkeiten FW"));
$tpl->assign('label_alter', mi18n("Alter FW"));
$tpl->assign('label_dauer', mi18n("Dauer der Tätigkeit (pro Woche/Monat in Std.)"));
$tpl->assign('label_geschlecht', mi18n("Geschlecht FW"));
$tpl->assign('label_mo', mi18n("Montag"));
$tpl->assign('label_di', mi18n("Dienstag"));
$tpl->assign('label_mi', mi18n("Mittwoch"));
$tpl->assign('label_do', mi18n("Donnerstag"));
$tpl->assign('label_fr', mi18n("Freitag"));
$tpl->assign('label_sa', mi18n("Samstag"));
$tpl->assign('label_so', mi18n("Sonntag"));
$tpl->assign('label_vormittags', mi18n("Vormittags"));
$tpl->assign('label_nachmittags', mi18n("Nachmittags"));
$tpl->assign('label_abends', mi18n("Abends"));
$tpl->assign('label_kostenstelle', mi18n("Kostenstelle"));
$tpl->assign('label_startdate', mi18n("Startdatum"));
$tpl->assign('label_enddate', mi18n("Enddatum"));
$tpl->assign('label_venue', mi18n("Ort"));
$tpl->assign('label_strasse', mi18n("Strasse"));
$tpl->assign('label_aufwand', mi18n("Aufwandsentschäfigung"));
$tpl->assign('label_werbung', mi18n("Werbung"));
$tpl->assign('label_plz', mi18n("Postleitzahl"));
$tpl->assign('label_ortdetails', mi18n("Ort-Details"));
$tpl->assign('label_telefon', mi18n("Telefon"));
$tpl->assign('label_email', mi18n("E-Mail"));
$tpl->assign('label_ansprechpartner', mi18n("Ansprechpartner*in"));
$tpl->assign('label_details', mi18n("Beschreibung"));
$tpl->assign('label_teaser', mi18n("Im Teaser anzeigen?"));
$tpl->assign('label_highlight', mi18n("In Terminliste hervorheben?"));
$tpl->assign('label_category', mi18n("Kategorien auswählen"));
$tpl->assign('label_cycle', mi18n("Termin Zyklus ab Startdatum"));
$tpl->assign('label_everyXdays', mi18n("Falls x-ter Tag: Definiere Anzahl Tage"));
$tpl->assign('label_everyXweekdays', mi18n("Zyklus Woche: jeden..."));
$tpl->assign('label_everyXweeknums', mi18n("Zyklus Woche: jeden..."));
$tpl->assign('label_adddates', mi18n("Zusätzliche Termine, kommagetrennt"));
$tpl->assign('label_removedates', mi18n("Termine ausschließen, kommagetrennt"));
$tpl->assign('label_formatyyyymmdd', mi18n("formatyyyymmdd"));
$tpl->assign('label_save', mi18n("Speichern"));
$tpl->assign('label_adressat', mi18n("Adressat"));
$tpl->assign('label_text', mi18n("Einstigstext: "));
$tpl->assign('label_link', mi18n("Link setzen: "));
$tpl->assign('label_image', mi18n("Bild wählen: "));
$tpl->assign('label_zielgruppe', mi18n("Zielgruppe: "));
$tpl->assign('info_misc', mi18n("infotext_misc"));
$tpl->assign('categoryselect', createCheckbox($categories, $MOD_TE_termin[13], "categories", $lang, 200 ));
$tpl->assign('adressatselect', createCheckbox($adressat, $MOD_TE_termin[21], "adressat", $lang, 200 ));
$tpl->assign('cycle_weekdayselect', createCheckbox3($cycleweekdays, explode("," , $MOD_TE_termin[11]), "cycleweekdays", $lang, 105 ));
$tpl->assign('cycle_weeknumselect', createCheckbox3($cycleweeknums, explode("," , $MOD_TE_termin[12]), "cycleweeknums", $lang, 50 ));
$tpl->assign('termin', $MOD_TE_termin);
$tpl->assign('cyclelist', $cycles);
$tpl->assign('highlightlist', $highlightlist);
$tpl->assign('venuelist', $MOD_TE_ortsliste_array);
// elements needed for FEU display
$tpl->assign('label_back', mi18n("Zurück zur Übersicht"));
$tpl->assign('label_timeformat', mi18n("Uhr"));
$tpl->assign('label_status', mi18n("Status"));
if ($contenido) {
$tpl->display($tpl_editor );
} else {
$tpl->display($tpl_fedisplay );
}
?>
Wobei ich es noch nicht geschafft habe die Zielgruppe in der DB gespeichert wird.
Schreibt er dann unter con_content ein Feld "value" den jeweiligen Schwerpunkt.
An sich genau wie bei der Terminliste.
Ich brauche ein Modul wo ich die drei Abfragen habe und er die Daten aus der DB filtert.
Ich habe nun auch ein kleines Budget bekommen, um jemanden zu bezahlen - also ich bin gerne bereit auch die Arbeit in einem gewissen maß zu entlohnen. Also das Budget beträgt einen kleine 3 Stellige summe.