Leitgedanken/historie.php
2022-11-21 09:47:28 +01:00

285 lines
8.9 KiB
PHP

<?php
/*
# Fuer debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);
#echo __LINE__."<br>";
*/
session_start();
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";
// Rechteüberprüfung
$db = dbconnect();
if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
if(!rore($user_admin,'r_historie','RE')){require("lib/rechte.php");exit;}
// Rechteüberprüfung ende
if(isset($_GET['user'])){
$user = $_GET['user'];
}else{
$user = $user_vaid;
}
if($user_vaid == $user){
$eigen = 1;
}else{
$eigen = 0;
}
$smarty->assign('historie_user', "$user");
// Datendefinition für die Clientausgabe
$start = (isset($_GET['start'])) ? abs((int)$_GET['start']) : 0;
$limit = 30; // Datensätze pro Ausgabeseite
// Feststellen der Anzahl der verfügbaren Datensätze.
$query = "SELECT max(datum) as datorder, max(DATE_Format(datum, '%d.%m.%Y'))as datum, max(DATE_Format(datum, '%H:%i:%s')) AS zeit,art, art_id,'S' session
FROM historie
WHERE vaid='$user'
AND session_id='$sid'
AND art IN ('L','E','K')
GROUP BY session_id, art_id
UNION
SELECT max(datum) as datorder, max(DATE_Format(datum, '%d.%m.%Y')) as datum, max(DATE_Format(datum, '%H:%i:%s')) AS zeit,art, art_id,'H' session
FROM historie
WHERE vaid='$user'
AND session_id!='$sid'
AND art IN ('L','E','K')
GROUP BY session_id, art_id
ORDER BY datorder DESC";
$resultID = $db->query( $query);
$total = $resultID->num_rows;
// Feststellen von Name und Vorname
$query_name = "SELECT vorname, nachname
FROM admin
WHERE vaid=$user";
$result_name = $db->query( $query_name);
$row_name = $result_name->fetch_array();
$smarty->assign('historie_name', "$row_name[vorname] $row_name[nachname]");
// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
if(isset($_GET['start'])){
$start = ($_GET['start'] >= $total) ? $total - $limit : $start;
}else{
$start = 0;
}
function kurzer_text($string,$laenge){
$origin=strlen($string);
$stri_arr=explode(" ",$string);
$anzzahl=count($stri_arr);
$gekuerzt=0;
$string="";
while($gekuerzt<$anzzahl){
$string_alt=$string;
$string=$string." ".$stri_arr[$gekuerzt];
$gekuerzt++;
if(strlen($string)>$laenge){
$gekuerzt=$anzzahl;
$string=$string_alt;
}
}
if($laenge<$origin){
$string=$string."<nobr>&nbsp;<b>...</b></nobr>";
}
return $string;
}
$sid = session_id();
$result_c1 = $db->query( "SELECT count(*) anz
FROM historie
WHERE vaid='$user'
AND session_id='$sid'
AND art IN ('L','E','K')
GROUP BY session_id, art_id");
$row_c1 = $result_c1->fetch_array();
// Datenbankabfrage ausführen.
$query = "SELECT max(datum) as datorder, max(DATE_Format(datum, '%d.%m.%Y'))as datum, art, art_id,'S' session
FROM historie
WHERE vaid='$user'
AND session_id='$sid'
AND art IN ('L','E','K','KFA')
GROUP BY session_id, art_id
UNION
SELECT max(datum) as datorder, max(DATE_Format(datum, '%d.%m.%Y')) as datum, art, art_id,'H' session
FROM historie
WHERE vaid='$user'
AND session_id!='$sid'
AND art IN ('L','E','K','KFA')
GROUP BY session_id, art_id
ORDER BY datorder DESC
LIMIT ".$start.",".$limit;
$resultID = $db->query( $query);
// Ergebnisse lesen und an den Client ausgeben
while ($data = $resultID->fetch_array()){
if($data['session'] =='S' and $session_count_s == 0){
$session_titel_s = 1;
$session_count_s =1;
}else{
$session_titel_s = 0;
}
if($data['session'] =='H' and $session_count_h == 0){
$session_titel_h = 1;
$session_count_h =1;
}else{
$session_titel_h = 0;
}
if($data['art'] =='L'){
$result_l1 = $db->query( "SELECT lid, textstelle, ueberschrift, kid, ukid, inhalt,DATE_Format(datum, '%d.%m.%Y %h:%i:%s') datum, DATE_Format(datum, '%d') tag, DATE_Format(datum, '%m') monat, DATE_Format(datum, '%Y') jahr
FROM quelle
WHERE lid = '$data[art_id]'");
$row_l1 = $result_l1->fetch_array();
$wochentag = date("l", mktime(0,0,0,$row_l1['monat'],$row_l1['tag'],$row_l1['jahr']));
switch($wochentag)
{
case 'Sunday':
$wochentag = "So.";
break;
case 'Monday':
$wochentag = "Mo.";
break;
case 'Tuesday':
$wochentag = "Di.";
break;
case 'Wednesday':
$wochentag = "Mi.";
break;
case 'Thursday':
$wochentag = "Do.";
break;
case 'Friday':
$wochentag = "Fr.";
break;
case 'Saturday':
$wochentag = "Sa.";
break;
}
$result_l2 = $db->query( "SELECT bezeichnung FROM kategorie WHERE kid='$row_l1[kid]'");
$row_l2 = $result_l2->fetch_array();
$result_l3 = $db->query( "SELECT bezeichnung FROM unterkategorie WHERE ukid='$row_l1[ukid]'");
$row_l3 = $result_l3->fetch_array();
$ueberschrift = $row_l1['ueberschrift'];
$preview = kurzer_text(strip_tags($row_l1['inhalt']),100);
$art = 'Leitgedanken';
$link = 'ausgabe.php?lid='.$data['art_id'];
}
if($data['art'] =='E'){
$result_e1 = $db->query( "SELECT eid, thema, ausfuehrung
FROM lue_quelle
WHERE eid = '$data[art_id]'");
$row_e1 = $result_e1->fetch_array();
$ueberschrift = $row_e1['thema'];
$preview = kurzer_text(strip_tags($row_e1['ausfuehrung']),100);
$art = 'Publikationen';
$link = 'lue_ansicht.php?eid='.$data['art_id'];
}
if($data['art'] =='K'){
$result_e1 = $db->query( "SELECT knk, ueberschrift, text
FROM knk
WHERE knkid= '$data[art_id]'");
$row_e1 = $result_e1->fetch_array();
$ueberschrift = $row_e1['ueberschrift'];
$preview = kurzer_text(strip_tags($row_e1['text']),100);
$kapitel = explode('.', $row_e1['knk']);
$kap=$kapitel[0];
$art = 'Katechismus';
$link = "katechismus.php?katechismus_knk=$kap&katechismus_kapitel=$row_e1[knk]";
}
if($data['art'] =='KFA'){
$result_e1 = $db->query( "SELECT number, question, answer, headline
FROM knk_fa
WHERE number= '$data[art_id]'");
$row_e1 = $result_e1->fetch_array();
$ueberschrift = $row_e1['number']." - ".$row_e1['question'];
$preview = kurzer_text(strip_tags($row_e1['answer']),100);
$art = 'Katechismus F&A';
$link = "katechismus_fa.php?katechismus_knk=$row_e1[headline]&katechismus_kapitel=$row_e1[number]";
}
$data['zeit'] = substr($data['datorder'],11,8);
$data['eigen'] = $eigen;
$data['session_titel_s'] = $session_titel_s;
$data['session_titel_h'] = $session_titel_h;
$data['wochentag'] = $wochentag;
$data['ueberschrift'] = $ueberschrift;
$data['kategorie'] = $row_l2['bezeichnung'];
$data['unterkategorie'] = $row_l3['bezeichnung'];
$data['tag'] = $row_l1['tag'];
$data['monat'] = $row_l1['monat'];
$data['jahr'] = $row_l1['jahr'];
$data['preview'] = $preview;
$data['anz_cur'] = $row_c1['anz'];
$data['art'] = $art;
$data['link'] = $link;
$value[] = $data;
}
// Assign this array to smarty...
$smarty->assign('table_data', $value);
$show = ceil($total/$limit); //Seitenzahlen aufrunden
$last = floor($total/$limit)*$limit; //Sprungziel zur letzten Seite BSP abrunden(1954/13)*13 ==> 150*13=1950 Sprungmarke auf Zeile 1950, 4 DS werden angezeigt
$akt = round((($start-$limit)/$limit+2),0);
$smarty->assign('login_log_currpage', "$akt");
$smarty->assign('login_log_pagecount', "$show");
// Zurück- und Vorblättern
if ($start > 0){
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit); // wenn $start-$limit kleiner 0 dann $newstart=0 sonst $start-$limit
$smarty->assign('login_log_start0', "1");
$smarty->assign('login_log_start_newstart', "$newStart");
}else{
$smarty->assign('login_log_start0', "2");
}
if ($start + $limit < $total){
$newStart = $start + $limit;
$smarty->assign('login_log_end0', "1");
$smarty->assign('login_log_end_newstart', "$newStart");
$smarty->assign('login_log_end_last', "$last");
}else{
$smarty->assign('login_log_end0', "2");
}
$smarty->display("$template/$templatename");
?>