"; */ include_once 'classes/lg-on_Smarty.class.php'; $smarty = new lgon_Smarty(); require_once("config.inc.php"); require_once("func_rollenrechte.php"); $templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html"; require_once "language/german.inc.php"; require_once("func_htmlclean.php"); // Rechteüberprüfung if ($user_admin == "") { require("index.php"); exit; } //Wenn man nicht angemeldet ist, darf man nicht auf die Seite if (!rore($user_admin, 'a_wortbear', 'RE')) { require("lib/rechte.php"); exit; } // Rechteüberprüfung ende if (isset($_GET['action'])) { $action = $_GET['action']; } else { $action = ''; } if ($action == '') { $db = dbconnect(); $result_gd = $db->query("SELECT wgd FROM profil WHERE user = '$user_admin'"); $row_gd = $result_gd->fetch_array(); $query = "SELECT DISTINCT lid, DATE_Format(datum, '%d.%m.%Y')AS datum, DATE_Format(datum, '%Y%m%d')AS datum_sort, ueberschrift, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr, kid, ukid FROM quelle ORDER BY datum_sort DESC "; $result = $db->query($query); while ($row = $result->fetch_array()) { $wochentag = date("l", mktime(0, 0, 0, $row['monat'], $row['tag'], $row['jahr'])); if ($wochentag == 'Wednesday' AND $row_gd['wgd'] != '0' AND ($row['ukid'] != "25" AND $row['ukid'] != "26" AND $row['ukid'] != "22")) { $datum = date("d.m.Y", mktime(0, 0, 0, $row['monat'], $row['tag'] + $row_gd['wgd'], $row['jahr'])); } else { $datum = date("d.m.Y", mktime(0, 0, 0, $row['monat'], $row['tag'], $row['jahr'])); } $row['datum'] = $datum; $value[] = $row; } $smarty->assign('table_data', $value); } if ($action == 'bearbeiten1') { if (isset($_POST['wort'])) { //wird die Seite von externer Datei aufgerufen (ansicht.php)? $lid = $_POST['wort']; setcookie("ck_back", "0"); // prüft später, ob man wieder zur Ansicht.php zurückspringen muss oder ob es eien normale Wortbearbeitung war } else { $lid = $_GET['wort']; setcookie("ck_back", "1"); // prüft später, ob man wieder zur Ansicht.php zurückspringen muss oder ob es eien normale Wortbearbeitung war } setcookie("ck_lid", ""); setcookie("ck_lid", "$lid"); $query = "SELECT bezeichnung FROM thema GROUP BY bezeichnung ORDER BY tid DESC"; $result = $db->query($query) or die("Cannot execute query"); while ($row = $result->fetch_array()) { $value[] = $row; } $smarty->assign('table_data', $value); $result = $db->query("SELECT ueberschrift, thema, unterthema, textstelle, vorwort, botschaft, textwort, inhalt, zusammenfassung, kontext, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr, kid, ukid, stapgd, DATE_Format(datum, '%Y-%m-%d')AS datum_berechnung FROM quelle WHERE lid = '$lid'"); $row = $result->fetch_array(); setcookie("ck_ukid", $row['ukid']); $date_nlg = mktime(0, 0, 0, 12, 1, 2007); // Datum ab dem neue LGs gelten $date_nlg_format = date("Y-m-d", $date_nlg); // ISO-8601 Format wie in der Datenbank: Formatierung für Vergleiche erforderlich $switch_date = strtotime($date_nlg_format); //Umrechnung des Fristgrenztages in eine Zahl $lg_datum = strtotime($row['datum_berechnung']); // Umrechnung des Enddatums in eine Zahl $result3 = $db->query("SELECT bezeichnung FROM thema WHERE tid='$row[thema]'"); $row3 = $result3->fetch_array(); $result4 = $db->query("SELECT bezeichnung FROM unterthema WHERE tid='$row[thema]' AND utid='$row[unterthema]'"); $row4 = $result4->fetch_array(); $smarty->assign('wort_bearbeiten_thema', "$row3[bezeichnung]"); $smarty->assign('wort_bearbeiten_subthema', "$row4[bezeichnung]"); $smarty->assign('wort_bearbeiten_stapgd', "$row[stapgd]"); $smarty->assign('wort_bearbeiten_headline', "$row[ueberschrift]"); $smarty->assign('wort_bearbeiten_textstelle', "$row[textstelle]"); $smarty->assign('wort_bearbeiten_textwort', "$row[textwort]"); $smarty->assign('wort_bearbeiten_vorwort', "$row[vorwort]"); $smarty->assign('wort_bearbeiten_botschaft', "$row[botschaft]"); $smarty->assign('wort_bearbeiten_inhalt', "$row[inhalt]"); $smarty->assign('wort_bearbeiten_zusammenfassung', "$row[zusammenfassung]"); $smarty->assign('wort_bearbeiten_kontext', "$row[kontext]"); $smarty->assign('wort_bearbeiten_tag', "$row[tag]"); $smarty->assign('wort_bearbeiten_monat', "$row[monat]"); $smarty->assign('wort_bearbeiten_jahr', "$row[jahr]"); $db = dbconnect(); $query1 = "SELECT kid, bezeichnung FROM kategorie ORDER BY bezeichnung ASC"; $result1 = $db->query($query1) or die("Cannot execute query1"); while ($row1 = $result1->fetch_array()) { if ($row1['kid'] == $row['kid']) { $select = 'Y'; } else { $select = 'N'; } $row1['select'] = $select; $value1[] = $row1; } $smarty->assign('table_data1', $value1); } if ($action == 'bearbeiten2') { $db = dbconnect(); $datum = "$_POST[beg_jahr]-$_POST[beg_mon]-$_POST[beg_tag]"; $vorwort = htmlclean($_POST['vorwort'], $db); $wort = htmlclean($_POST['wort'], $db); $botschaft = htmlclean($_POST['botschaft'], $db); $inhalt = htmlclean($_POST['inhalt'], $db); $zusammenfassung = htmlclean($_POST['zusammenfassung'], $db); $kontext = htmlclean($_POST['kontext'], $db); $textstelle = $_POST['textstelle']; if (@checkdate($_POST['beg_mon'], $_POST['beg_tag'], $_POST['beg_jahr']) == 0) { // checkdate liefert 0 & 1 zurück: 0 wenn Datum falsch, 1 wenn Datum richtig $smarty->assign('wort_bearbeiten_checkdate_err', "1"); $fehler = TRUE; } elseif (( // Pregs auf vollständige Bibelbücher überprüft // Bücher mit mehreren Bücher 1. Johannes... preg_match("/^([1-9])\.\s* (Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus)\s*[0-9]{1,2}(\,)?\s*(aus)?\s*[0-9]{1,3}(\.|-)?([0-9]{1,3})?(\.)?([0-9]{1,3})?$/im", $textstelle) or // Bücher mit nur einem Buch Rut 3,5-7 preg_match("/^(Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Johannes|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung)\s*[0-9]{1,3}(\,)?\s*(aus)?\s*[0-9]{1,3}(\.|-)?([0-9]{1,3})?(\.)?([0-9]{1,3})?$/im", $textstelle) or // Bücher ohne Kapitel preg_match("/^(Philemon|Judas)\s*(aus)?\s*[0-9]{1,3}(\.|-)?([0-9]{1,3})?(\.)?([0-9]{1,3})?$/im", $textstelle)) AND $textstelle != "") { function refill($start, $ende) { for ($i = $start; $i < $ende; $i++) { $j .= "|$i"; } $j .= "|" . $i . "|"; return $j; } function refillpunkt($zahl1, $zahl2, $zahl3) { $j = "|$zahl1|$zahl2|"; if ($zahl3 != '') { $j .= "$zahl3|"; } return $j; } function makeLink($a, $b, $c, $d, $e, $f, $g, $h, $lid) { settype($f, "integer"); if ($e == '-') { $d = refill($d, $f); $e = ""; $f = ""; } elseif ($e == '.') { $d = refillpunkt($d, $f, $h); $e = ""; $f = ""; $g = ""; $h = ""; } else { $d = "|$d|"; } $db = dbconnect(); $sql = $db->query("UPDATE quelle SET txt_anz_buch=trim('$a') , txt_buch=trim('$b') , txt_kapitel=trim('$c') , txt_vers =trim('$d') WHERE lid='$lid'"); } // Wenn Wörter dem richtigen Aufbau entsprechen, dann weiter if (isset($_POST['stapgd'])) { if ($_POST['stapgd'] == 'Y') { $stapgd = 'Y'; } else { $stapgd = 'N'; } } else { $stapgd = 'N'; } $lid = $_COOKIE["ck_lid"]; # benütigt man altes update, oder update für neue LG $result = $db->query("SELECT DATE_Format(datum, '%Y-%m-%d')AS datum_berechnung FROM quelle WHERE lid = '$lid'"); $row = $result->fetch_array(); $date_nlg = mktime(0, 0, 0, 12, 1, 2007); // Datum ab dem neue LGs gelten $date_nlg_format = date("Y-m-d", $date_nlg); // ISO-8601 Format wie in der Datenbank: Formatierung für Vergleiche erforderlich $switch_date = strtotime($date_nlg_format); //Umrechnung des Fristgrenztages in eine Zahl $lg_datum = strtotime($row['datum_berechnung']); // Umrechnung des Enddatums in eine Zahl if ($_POST['ukid'] == NULL) { $ukid = 'NULL'; } else { $ukid = $_POST['ukid']; } if ($lg_datum < $switch_date) { # alte LG? $sql1 = $db->query("UPDATE quelle SET Textstelle = '$_POST[textstelle]' ,Ueberschrift = '$_POST[uberschrift]' ,Textwort = '$wort' ,Inhalt = '$inhalt' ,Datum = '$datum' ,stapgd = '$stapgd' ,kid='$_POST[kid]' ,ukid=$ukid WHERE lid = '$lid' "); $textstelle = "$_POST[textstelle]"; $textstelle = preg_replace_callback("/^([1-9]\.)*\s*" . //1 a "(Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus|Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Judith|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Ijob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Ezechiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung|Philemon|Judas)\s*" . //2 "([0-9]{1,3})" . //3 c "(\,)?\s*" . //4 "(aus)?\s*" . //5 "([0-9]{0,3})" . //6 d "(\.|-)?" . //7 e "([0-9]{0,3})?" . //8 f "(\.|-)?" . //9 g "(\s)?" . //10 g "([0-9]{0,3})" . //11 h "$/", function($m) use (&$lid) { return makeLink($m[1], $m[2], $m[3], $m[6], $m[7], $m[8], $m[9], $m[11], $lid); }, $textstelle); } else { /* Vorgehensweise: Prüfung, ob bearbeitetes Thema schon in der DB gibt Wenn nicht, dann wird das Thema eingetragen Abfrage der ThemenID für den Update Prüfung, ob bearbeitetes Unterthema schon in der DB gibt wenn nicht, dann Unterthema eintragen Abfrage des UnterThemaIDs für den Update Update durchführen Evtle unbenutzten Themen bzw Unterthemen löschen */ $result = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row = $result->fetch_array(); ## wenn nicht, dann eintragen if ($row['tid'] == '') { $sql1 = $db->query("INSERT INTO thema ( bezeichnung) VALUES ('$_POST[thema]') "); } ## ThemaID (tid) abfragen $result1 = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row1 = $result1->fetch_array(); $result2 = $db->query("SELECT utid FROM unterthema WHERE bezeichnung = '$_POST[unterthema]' AND tid='$row1[tid]'"); $row2 = $result2->fetch_array(); ## Unterhema eintragen if ($row2['utid'] == '') { $sql1 = $db->query("INSERT INTO unterthema ( tid, bezeichnung) VALUES ('$row1[tid]', '$_POST[unterthema]') "); } ## UnterThemaID (utid) abfragen $result3 = $db->query("SELECT utid FROM unterthema WHERE bezeichnung = '$_POST[unterthema]' AND tid='$row1[tid]' "); $row3 = $result3->fetch_array(); $sql1 = $db->query("UPDATE quelle SET thema = '$row1[tid]' ,unterthema = '$row3[utid]' ,botschaft = '$botschaft' ,Textstelle = '$_POST[textstelle]' ,Ueberschrift = '$_POST[uberschrift]' ,vorwort = '$vorwort' ,Textwort = '$wort' ,Inhalt = '$inhalt' ,zusammenfassung = '$zusammenfassung' ,kontext = '$kontext' ,Datum = '$datum' ,stapgd = '$stapgd' ,kid='$_POST[kid]' ,ukid=$ukid WHERE lid = '$lid' "); $textstelle = "$_POST[textstelle]"; $textstelle = preg_replace_callback("/^([1-9]\.)*\s*" . //1 a "(Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus|Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Judith|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Ijob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Ezechiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung|Philemon|Judas)\s*" . //2 "([0-9]{1,3})" . //3 c "(\,)?\s*" . //4 "(aus)?\s*" . //5 "([0-9]{0,3})" . //6 d "(\.|-)?" . //7 e "([0-9]{0,3})?" . //8 f "(\.|-)?" . //9 g "(\s)?" . //10 g "([0-9]{0,3})" . //11 h "$/", function($m) use (&$lid) { return makeLink($m[1], $m[2], $m[3], $m[6], $m[7], $m[8], $m[9], $m[11], $lid); }, $textstelle); } ## unverwendete Themen löschen $sql2 = $db->query("DELETE FROM thema WHERE tid not in (select thema from quelle)"); $sql2 = $db->query("DELETE FROM unterthema WHERE utid not in (select unterthema from quelle)"); # Cache löschen $sql2 = $db->query("DELETE FROM quelle_verweise_cache WHERE erg_lid='$lid'"); $sql2 = $db->query("DELETE FROM quelle_cache WHERE lid='$lid'"); if (!$sql1) { $smarty->assign('wort_bearbeiten_sql_err1', "1"); $fehler = TRUE; } } elseif ($textstelle == "") { if (isset($_POST['stapgd']) AND $_POST['stapgd'] == 'Y') { $stapgd = 'Y'; } else { $stapgd = 'N'; } $lid = $_COOKIE["ck_lid"]; # benütigt man altes update, oder update für neue LG $result = $db->query("SELECT DATE_Format(datum, '%Y-%m-%d')AS datum_berechnung FROM quelle WHERE lid = '$lid'"); $row = $result->fetch_array(); $date_nlg = mktime(0, 0, 0, 12, 1, 2007); // Datum ab dem neue LGs gelten $date_nlg_format = date("Y-m-d", $date_nlg); // ISO-8601 Format wie in der Datenbank: Formatierung für Vergleiche erforderlich $switch_date = strtotime($date_nlg_format); //Umrechnung des Fristgrenztages in eine Zahl $lg_datum = strtotime($row['datum_berechnung']); // Umrechnung des Enddatums in eine Zahl if ($_POST['ukid'] == NULL) { $ukid = 'NULL'; } else { $ukid = $_POST['ukid']; } if ($lg_datum < $switch_date) { # alte LG? $sql1 = $db->query("UPDATE quelle SET Textstelle = '$_POST[textstelle]' ,Ueberschrift = '$_POST[uberschrift]' ,Textwort = '$wort' ,Inhalt = '$inhalt' ,Datum = '$datum' ,stapgd = '$stapgd' ,kid='$_POST[kid]' ,ukid=$ukid WHERE lid = '$lid' "); $textstelle = "$_POST[textstelle]"; $textstelle = preg_replace_callback("/^([1-9]\.)*\s*" . //1 a "(Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus|Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Judith|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Ijob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Ezechiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung|Philemon|Judas)\s*" . //2 "([0-9]{1,3})" . //3 c "(\,)?\s*" . //4 "(aus)?\s*" . //5 "([0-9]{0,3})" . //6 d "(\.|-)?" . //7 e "([0-9]{0,3})?" . //8 f "(\.|-)?" . //9 g "(\s)?" . //10 g "([0-9]{0,3})" . //11 h "$/", function($m) use (&$lid) { return makeLink($m[1], $m[2], $m[3], $m[6], $m[7], $m[8], $m[9], $m[11], $lid); }, $textstelle); } else { /* Vorgehensweise: Prüfung, ob bearbeitetes Thema schon in der DB gibt Wenn nicht, dann wird das Thema eingetragen Abfrage der ThemenID für den Update Prüfung, ob bearbeitetes Unterthema schon in der DB gibt wenn nicht, dann Unterthema eintragen Abfrage des UnterThemaIDs für den Update Update durchführen Evtle unbenutzten Themen bzw Unterthemen löschen */ $result = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row = $result->fetch_array(); ## wenn nicht, dann eintragen if ($row['tid'] == '') { $sql1 = $db->query("INSERT INTO thema ( bezeichnung) VALUES ('$_POST[thema]') "); } ## ThemaID (tid) abfragen $result1 = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row1 = $result1->fetch_array(); $result2 = $db->query("SELECT utid FROM unterthema WHERE bezeichnung = '$_POST[unterthema]' AND tid='$row1[tid]'"); $row2 = $result2->fetch_array(); ## Unterhema eintragen if ($row2['utid'] == '') { $sql1 = $db->query("INSERT INTO unterthema ( tid, bezeichnung) VALUES ('$row1[tid]', '$_POST[unterthema]') "); } ## UnterThemaID (utid) abfragen $result3 = $db->query("SELECT utid FROM unterthema WHERE bezeichnung = '$_POST[unterthema]' AND tid='$row1[tid]' "); $row3 = $result3->fetch_array(); $sql1 = $db->query("UPDATE quelle SET thema = '$row1[tid]' ,unterthema = '$row3[utid]' ,botschaft = '$botschaft' ,Textstelle = '$_POST[textstelle]' ,Ueberschrift = '$_POST[uberschrift]' ,vorwort = '$vorwort' ,Textwort = '$wort' ,Inhalt = '$inhalt' ,zusammenfassung = '$zusammenfassung' ,kontext = '$kontext' ,Datum = '$datum' ,stapgd = '$stapgd' ,kid='$_POST[kid]' ,ukid=$ukid WHERE lid = '$lid' "); $textstelle = "$_POST[textstelle]"; $textstelle = preg_replace_callback("/^([1-9]\.)*\s*" . //1 a "(Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus|Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Judith|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Ijob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Ezechiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung|Philemon|Judas)\s*" . //2 "([0-9]{1,3})" . //3 c "(\,)?\s*" . //4 "(aus)?\s*" . //5 "([0-9]{0,3})" . //6 d "(\.|-)?" . //7 e "([0-9]{0,3})?" . //8 f "(\.|-)?" . //9 g "(\s)?" . //10 g "([0-9]{0,3})" . //11 h "$/", function($m) use (&$lid) { return makeLink($m[1], $m[2], $m[3], $m[6], $m[7], $m[8], $m[9], $m[11], $lid); }, $textstelle); } ## unverwendete Themen löschen $sql2 = $db->query("DELETE FROM thema WHERE tid not in (select thema from quelle)"); $sql2 = $db->query("DELETE FROM unterthema WHERE utid not in (select unterthema from quelle)"); # Cache löschen $sql2 = $db->query("DELETE FROM quelle_verweise_cache WHERE erg_lid='$lid'"); $sql2 = $db->query("DELETE FROM quelle_cache WHERE lid='$lid'"); if (!$sql1) { $smarty->assign('wort_bearbeiten_sql_err1', "1"); $fehler = TRUE; } } else { $smarty->assign('wort_bearbeiten_sql_err2', "1"); $fehler = TRUE; } if (!isset($fehler)) { setcookie("ck_lid", ""); $back = $_COOKIE["ck_back"]; if ($back == 0) { $smarty->assign('wort_bearbeiten_success', "1"); } else { $smarty->assign('wort_bearbeiten_success', "2"); $smarty->assign('wort_bearbeiten_lid', "$lid"); } } } $smarty->assign('action', "$action"); $smarty->display("$template/$templatename"); ?>