271 lines
11 KiB
PHP
271 lines
11 KiB
PHP
<?php
|
|
#require("config/datenbankanbindung.php");
|
|
|
|
|
|
function verweise($lid, $user_admin, $template){
|
|
|
|
include_once 'classes/lg-on_Smarty.class.php';
|
|
$smarty = new lgon_Smarty();
|
|
require_once("config.inc.php");
|
|
require_once("func_rollenrechte.php");
|
|
$templatename = "verweise.html"; # bei dynamischem Inhalt nimmt er ansicht.html
|
|
|
|
require_once "language/german.inc.php";
|
|
|
|
$db = dbconnect();
|
|
|
|
$result_te_cache = $db->query("SELECT count(*) Anz
|
|
FROM quelle_verweise_cache
|
|
WHERE erg_lid = $lid");
|
|
$row_cache = $result_te_cache->fetch_array();
|
|
|
|
|
|
## Es ist wichtig, dass alle 3 Kategorien in den Cache geschrieben werden, da die Eintragungen dort maßgeblich sind,
|
|
## ob das Fenster Querverweise eingeblendet wird.
|
|
## Benutzt wird der Cache der Querverweise nur für Kategorie 3 da die WhereBedingungen mit REGEXP sonst zu lange dauern würden
|
|
|
|
|
|
|
|
$result_qv = $db->query( "SELECT lid, txt_anz_buch, txt_buch, txt_kapitel, txt_vers, Ueberschrift, thema, unterthema, textstelle, replace(replace(replace(textstelle, ' aus ', ''), 'vgl',''), ' ','') textstelle2, botschaft, textwort, inhalt, zusammenfassung, kontext, DATE_Format(datum, '%d.%m.%Y') as datum, kid, ukid, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr, ukid, DATE_Format(datum, '%Y-%m-%d')AS datum_berechnung, stapgd
|
|
FROM quelle
|
|
WHERE lid='$lid'" );
|
|
$row_qv = $result_qv->fetch_array();
|
|
|
|
if(rore($user_admin,'a_erwaehnt','RE')){
|
|
$smarty->assign('verweise_right_otherlg', "1");
|
|
}
|
|
|
|
|
|
|
|
$query2_qv = "SELECT lid, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr, DATE_Format(datum, '%Y%m%d') datum_format, kid, ukid
|
|
FROM quelle
|
|
WHERE replace(replace(replace(textstelle, ' aus ', ''), 'vgl',''), ' ', '') LIKE '$row_qv[textstelle2]'
|
|
ORDER BY datum_format DESC";
|
|
$result_qv = $db->query( $query2_qv)
|
|
or die ("Cannot execute query1");
|
|
|
|
$lid_verw = "";
|
|
|
|
// For each result that we got from the Database
|
|
while ($row2_qv = $result_qv->fetch_array()){
|
|
|
|
$lid_verw .= "$row2_qv[lid],"; // LID merken, damit sie nicht bei "Siehe auch..." ausgegeben werden
|
|
$wochentag = date("l", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag'],$row2_qv['jahr']));
|
|
|
|
$result_gd = $db->query( "SELECT wgd FROM profil WHERE user = '$user_admin'" );
|
|
$row_gd = $result_gd->fetch_array();
|
|
|
|
|
|
if($wochentag == 'Wednesday' AND $row_gd['wgd'] != '0' AND ($row2_qv['ukid'] == '1')){ // Hintergrund kommt aus der wort_wahl.php. Es gibt einige Gottesdienste, die auf einen Mittwoch fallen (1. vom Monat) aber kein Tag addiert werden darf, daher: Wann muss ein Tag (faktor) addiert werden, generell, wenn Wochengottesdienst, wenn Faktor im Profil != 0 und wenn unterkategorie 1 (GD normal) ist. Bei allen anderen Gottesdiensten bleibt der Mittwoch erhalten. (Buß und Bettag ist Mittwoch, Erntedank bleibt auch am 1. des Monats)
|
|
$datum = date("d.m.Y", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag']+$row_gd['wgd'],$row2_qv['jahr']));
|
|
}else{
|
|
$datum = date("d.m.Y", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag'],$row2_qv['jahr']));
|
|
}
|
|
|
|
if($row_qv['lid'] != $row2_qv['lid']){ // auf aktuelles Wort soll nicht verwiesen werden
|
|
if($row_qv['textstelle'] != ''){
|
|
if($row_cache['Anz'] == 0){
|
|
$sql1 = $db->query( "INSERT INTO quelle_verweise_cache ( erg_lid, lid, tag, monat, jahr, datum_format, kid, ukid, art)
|
|
VALUES ($lid, $row2_qv[lid], '$row2_qv[tag]', '$row2_qv[monat]', '$row2_qv[jahr]', '$row2_qv[datum_format]', $row2_qv[kid], $row2_qv[ukid], 'IGT')");
|
|
}
|
|
if($row2_qv['kid'] == 1 AND $row2_qv['ukid'] == 37){
|
|
$gdbericht = "(GD-Bericht)";
|
|
}else{
|
|
$gdbericht = "";
|
|
}
|
|
|
|
$row2_qv['link'] = "<a target=\"kurshaupt\" href=ausgabe.php?lid=$row2_qv[lid]>Wort vom $datum $gdbericht</a>";
|
|
$value[] = $row2_qv;
|
|
|
|
}
|
|
}
|
|
}
|
|
// Assign this array to smarty...
|
|
$smarty->assign('table_data', $value);
|
|
// Inhaltsgleiche Textstellen: ..." Ende
|
|
|
|
|
|
// " Textstellenenthaltungen:..."
|
|
$lid_verw = substr($lid_verw, 0, -1); //letztes Komma entfernen
|
|
|
|
$verse = explode("|", $row_qv['txt_vers']);
|
|
$query2 = "";
|
|
|
|
for($i=0; $i<count($verse)-1; $i++){ // -1 | hinten
|
|
|
|
// Select zusammenbauen
|
|
if($i==1){
|
|
$query2 = "SELECT distinct lid, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr, DATE_Format(datum, '%Y%m%d') datum_format, kid, ukid
|
|
FROM quelle
|
|
WHERE txt_anz_buch = '$row_qv[txt_anz_buch]'
|
|
AND txt_buch = '$row_qv[txt_buch]'
|
|
AND txt_kapitel = '$row_qv[txt_kapitel]'
|
|
AND (txt_vers LIKE '%|$verse[$i]|%'";
|
|
}else{
|
|
$query2 .= "or txt_vers LIKE '%|$verse[$i]|%'";
|
|
|
|
}
|
|
|
|
if($i==count($verse)-2){
|
|
$query2 .= ")
|
|
AND LID NOT IN($lid_verw)
|
|
ORDER BY datum_format DESC";
|
|
|
|
}
|
|
|
|
}
|
|
if($query2 != ''){
|
|
$result = $db->query( $query2)
|
|
or die ("Cannot execute query2b");
|
|
|
|
while ($row2_qv = $result->fetch_array()){
|
|
|
|
$wochentag = date("l", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag'],$row2_qv['jahr']));
|
|
$result_gd = $db->query("SELECT wgd FROM profil WHERE user = '$user_admin'");
|
|
$row_gd = $result_gd->fetch_array();
|
|
|
|
if($wochentag == 'Wednesday' AND $row_gd['wgd'] != '0' AND ($row2_qv['ukid'] == '1')){ // Hintergrund kommt aus der wort_wahl.php. Es gibt einige Gottesdienste, die auf einen Mittwoch fallen (1. vom Monat) aber kein Tag addiert werden darf, daher: Wann muss ein Tag (faktor) addiert werden, generell, wenn Wochengottesdienst, wenn Faktor im Profil != 0 und wenn unterkategorie 1 (GD normal) ist. Bei allen anderen Gottesdiensten bleibt der Mittwoch erhalten. (Buß und Bettag ist Mittwoch, Erntedank bleibt auch am 1. des Monats)
|
|
$datum = date("d.m.Y", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag']+$row_gd['wgd'],$row2_qv['jahr']));
|
|
}else{
|
|
$datum = date("d.m.Y", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag'],$row2_qv['jahr']));
|
|
}
|
|
|
|
if($row_qv['lid'] != $row2_qv['lid']){ // auf aktuelles Wort soll nicht verwiesen werden
|
|
if($row_qv['textstelle'] != ''){
|
|
if($row_cache['Anz'] == 0){
|
|
$sql1 = $db->query( "INSERT INTO quelle_verweise_cache ( erg_lid, lid, tag, monat, jahr, datum_format, kid, ukid, art)
|
|
VALUES ($lid, $row2_qv[lid], '$row2_qv[tag]', '$row2_qv[monat]', '$row2_qv[jahr]', '$row2_qv[datum_format]', $row2_qv[kid], $row2_qv[ukid], 'TEN')");
|
|
}
|
|
if($row2_qv['kid'] == 1 AND $row2_qv['ukid'] == 37){
|
|
$gdbericht = "(GD-Bericht)";
|
|
}else{
|
|
$gdbericht = "";
|
|
}
|
|
|
|
$row2_qv['link'] = "<a target=\"kurshaupt\" href=ausgabe.php?lid=$row2_qv[lid]>Wort vom $datum $gdbericht</a>";
|
|
$value1[] = $row2_qv;
|
|
}
|
|
}
|
|
}
|
|
} // Ende if query2 !=""
|
|
$smarty->assign('table_data1', $value1);
|
|
|
|
// "Textstellenenthaltungen ..." Ende
|
|
|
|
|
|
|
|
// "Textworterwähnung..."
|
|
if(rore($user_admin,'a_erwaehnt','RE')){
|
|
$verse = explode("|", $row_qv['txt_vers']);
|
|
$query3 = "";
|
|
for($i=0; $i<count($verse)-1; $i++){ // -1 | hinten
|
|
|
|
if($row_qv['txt_anz_buch'] != ''){
|
|
$suche="$row_qv[txt_anz_buch]. $row_qv[txt_buch] $row_qv[txt_kapitel],$verse[$i]";
|
|
}else{
|
|
$suche="$row_qv[txt_buch] $row_qv[txt_kapitel],$verse[$i]";
|
|
}
|
|
$verweis_akt = urlencode(serialize($suche));
|
|
|
|
if($row_cache['Anz'] == 0){
|
|
|
|
// Select zusammenbauen
|
|
if($i==1){
|
|
$query3 = "SELECT distinct lid, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr, DATE_Format(datum, '%Y%m%d') datum_format, kid, ukid
|
|
FROM quelle
|
|
WHERE (Inhalt REGEXP '[[:<:]]".$suche."[[:>:]]'";
|
|
}else{
|
|
$query3 .= "or Inhalt REGEXP '[[:<:]]".$suche."[[:>:]]'";
|
|
|
|
}
|
|
|
|
if($i==count($verse)-2){
|
|
$query3 .= ")
|
|
AND LID NOT IN($lid_verw)
|
|
ORDER BY datum_format DESC";
|
|
}
|
|
}
|
|
}
|
|
|
|
#echo "$query3<br><br>";
|
|
if($row_cache['Anz'] > 0){
|
|
$result = $db->query("SELECT lid, tag, monat, jahr, datum_format, kid, ukid
|
|
FROM quelle_verweise_cache
|
|
WHERE erg_lid = $lid
|
|
AND art = 'TER'");
|
|
|
|
$result2 = $db->query("SELECT lid, tag, monat, jahr, datum_format, kid, ukid
|
|
FROM quelle_verweise_cache
|
|
WHERE erg_lid = $lid
|
|
AND art = 'TER'");
|
|
|
|
}else{
|
|
if($query3 != ''){
|
|
$result = $db->query($query3)
|
|
or die ("Cannot execute query3");
|
|
|
|
$result2 = $db->query($query3)
|
|
or die ("Cannot execute query4");
|
|
}
|
|
}
|
|
|
|
if($query3 != ''){
|
|
$row_vorh = $result2->fetch_array();
|
|
|
|
|
|
while ($row2_qv = $result->fetch_array()){
|
|
if($row_vorh['lid'] !=''){
|
|
|
|
$wochentag = date("l", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag'],$row2_qv['jahr']));
|
|
|
|
$result_gd = $db->query("SELECT wgd FROM profil WHERE user = '$user_admin'");
|
|
$row_gd = $result_gd->fetch_array();
|
|
|
|
|
|
if($wochentag == 'Wednesday' AND $row_gd['wgd'] != '0' AND ($row2_qv['ukid'] == '1')){ // Hintergrund kommt aus der wort_wahl.php. Es gibt einige Gottesdienste, die auf einen Mittwoch fallen (1. vom Monat) aber kein Tag addiert werden darf, daher: Wann muss ein Tag (faktor) addiert werden, generell, wenn Wochengottesdienst, wenn Faktor im Profil != 0 und wenn unterkategorie 1 (GD normal) ist. Bei allen anderen Gottesdiensten bleibt der Mittwoch erhalten. (Buß und Bettag ist Mittwoch, Erntedank bleibt auch am 1. des Monats)
|
|
$datum = date("d.m.Y", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag']+$row_gd['wgd'],$row2_qv['jahr']));
|
|
}else{
|
|
$datum = date("d.m.Y", mktime(0,0,0,$row2_qv['monat'],$row2_qv['tag'],$row2_qv['jahr']));
|
|
}
|
|
|
|
if($row_qv['lid'] != $row2_qv['lid']){ // auf aktuelles Wort soll nicht verwiesen werden
|
|
if($row_qv['textstelle'] != ''){
|
|
if($row_cache['Anz'] == 0){
|
|
$sql1 = $db->query( "INSERT INTO quelle_verweise_cache ( erg_lid, lid, tag, monat, jahr, datum_format, kid, ukid, art)
|
|
VALUES ($lid, $row2_qv[lid], '$row2_qv[tag]', '$row2_qv[monat]', '$row2_qv[jahr]', '$row2_qv[datum_format]', $row2_qv[kid], $row2_qv[ukid], 'TER')");
|
|
|
|
}
|
|
|
|
|
|
if($row2_qv['kid'] == 1 AND $row2_qv['ukid'] == 37){
|
|
$gdbericht = "(GD-Bericht)";
|
|
}else{
|
|
$gdbericht = "";
|
|
}
|
|
|
|
$row2_qv['link'] = "<a target=\"kurshaupt\" href=ausgabe.php?lid=$row2_qv[lid]>Wort vom $datum $gdbericht</a>";
|
|
$value2[] = $row2_qv;
|
|
|
|
}
|
|
}
|
|
}
|
|
$smarty->assign('table_data2', $value2);
|
|
|
|
} //End if ein/ausblenden angezeigt werden muss
|
|
// "Textworterwähnung ..." Ende
|
|
|
|
} // if($query3 != ''){
|
|
|
|
|
|
} // Ende Rechteüberprüfung
|
|
|
|
|
|
return $smarty->fetch("$template/$templatename");
|
|
|
|
|
|
}
|
|
#$lid = 4272;
|
|
#$user_admin = 'schwaral';
|
|
#$template = 'standard';
|
|
#echo verweise($lid, $user_admin, $template);
|
|
?>
|