* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ session_start(); require_once('../../config/cis.config.inc.php'); require_once('../../include/wochenplan.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/betriebsmittel.class.php'); require_once('../../include/betriebsmittelperson.class.php'); require_once('../../include/betriebsmitteltyp.class.php'); require_once('../../include/mail.class.php'); require_once('../../include/news.class.php'); require_once('../../include/content.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/konto.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/authentication.class.php'); require_once('../../include/addon.class.php'); require_once('../../include/'.EXT_FKT_PATH.'/serviceterminal.inc.php'); // 2025-02-05 ma0080 add query parameter to force login e.g. when used in iframe in CIS4.0 begin if( isset($_GET['forcelogin']) && !isset($_SERVER['PHP_AUTH_USER']) ) { header('WWW-Authenticate: Basic Realm="' . AUTH_NAME . '"'); http_response_code(401); die(); } // 2025-02-05 ma0080 add query parameter to force login e.g. when used in iframe in CIS4.0 end if (!$db = new basis_db()) $db=false; // Initialisieren des Fehlertextes $error=''; $news=''; // ------------------------------------------------------------------------------------------ // Konstante // ------------------------------------------------------------------------------------------ // Session Bereich if (!defined('constSESSIONNAME')) define('constSESSIONNAME',"infoterminal" ); // Datum - Format if (!defined('constHeaderDatumZeit')) define('constHeaderDatumZeit','%A, %d %B %G %R' ); if (!defined('constRaumDatumZeit')) define('constRaumDatumZeit','%a, %d.%m.%Y' ); if (!defined('constHeaderStundenplan')) define('constHeaderStundenplan','KW %W, %B %G' ); if (!defined('constHeaderStundenplanTag')) define('constHeaderStundenplanTag','%A
%d.%m.%y' ); if (!defined('constAktuelleZeitHHMi')) define('constAktuelleZeitHHMi', date("Hi", time())); if (!defined('constAktuelleZeitHH')) define('constAktuelleZeitHH', date("H", time())); // ------------------------------------------------------------------------------------------ // Request Parameter // ------------------------------------------------------------------------------------------ $timer=trim((isset($_REQUEST['timer']) ? $_REQUEST['timer']:0)); if(!isset($ServiceTerminalDefaultRaumtyp)) $ServiceTerminalDefaultRaumtyp='HS'; // Raumtyp $raumtyp_kurzbz=trim((isset($_REQUEST['raumtyp_kurzbz']) ? $_REQUEST['raumtyp_kurzbz']:$ServiceTerminalDefaultRaumtyp)); // Saal - Raum $ort_kurzbz=trim((isset($_REQUEST['ort_kurzbz']) ? $_REQUEST['ort_kurzbz']:'')); // Work $work=trim((isset($_REQUEST['work']) ? $_REQUEST['work']:'raumanzeigen')); // User $key_input=trim((isset($_REQUEST['key_input']) ? $_REQUEST['key_input']:'')); $uid=trim((isset($_REQUEST['uid']) ? $_REQUEST['uid']:'')); $pwd=trim((isset($_REQUEST['pwd']) ? $_REQUEST['pwd']:'')); $debug=trim((isset($_REQUEST['debug']) ? $_REQUEST['debug']:'')); $sdtools=trim((isset($_REQUEST['sdtools']) ? $_REQUEST['sdtools']:false)); $standort_id = (isset($_COOKIE['standort_id']) ? $_COOKIE['standort_id']:''); if ($sdtools) $work='login'; // ------------------------------------------------------------------------------------------ // Verarbeiten wenn Kennzeichen work = login oder logoff // ------------------------------------------------------------------------------------------ if (mb_strtolower($work)=='logoff') { if (isset($_SESSION[constSESSIONNAME])) unset($_SESSION[constSESSIONNAME]); $uid=''; $work='raumanzeigen'; $raumtyp_kurzbz=$ServiceTerminalDefaultRaumtyp; } // Es gibt eine Serverauth., aber es erfolgte noch kein Login fuer Persoenliche Daten - Login erzwingen if (isset($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_USER']) && (!isset($_SESSION[constSESSIONNAME]["uid"]) || empty($_SESSION[constSESSIONNAME]["uid"])) ) { $work="login"; $uid=trim((isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:'')); $pwd=trim((isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:'')); } // Login Prozedure wenn Anmeldung ueber einen Schluessel erfolgte // - Lesen der Betriebsmittel um Anwender zu ermitteln ( es wird hier kein Passwort benoetigt / LDAP ) $cardlogin=false; $cardnumber = ""; if ($db && !empty($key_input)) // Login { // Pruefen ob es sich um eine HEX Eingabe handelt $betriebsmittel = new betriebsmittel(); //$key_input = $betriebsmittel->transform_kartennummer($key_input); // führende nullen entfernen $key_input = preg_replace("/^0*/", "", $key_input); $uidStudent = getUidFromCardNumber($key_input); if($uidStudent != false) { $uid = $uidStudent; $work = "login"; $cardlogin = true; } else { $addon_externeAusweise = false; $addon = new addon(); $addon->loadAddons(); foreach($addon->result as $ad) { if($ad->kurzbz == "externeAusweise") { $addon_externeAusweise = true; } } if($addon_externeAusweise) { require_once (dirname(__FILE__).'/../../addons/externeAusweise/include/idCard.class.php'); $idCard = new idCard(); if($idCard->loadByCardnumber($key_input)) { $uid = ""; $cardnumber = $idCard->cardnumber; $work = "verlaengerung"; $cardlogin = true; $_SESSION[constSESSIONNAME]["uid"]=$cardnumber; } } } } if (mb_strtolower($work)=='login') { if (isset($_SESSION[constSESSIONNAME])) unset($_SESSION[constSESSIONNAME]); if (!empty($uid)) // Login { $ldapstatus=''; if ($cardlogin || !$ldapstatus=ldap_uid_check($uid,$pwd) ) { // Lesen der Userdaten if ($user_array=uid_read_mitarbeiter_oder_student($db,$uid)) { // Personendaten lesen wenn Mitarbeiter oder Student gefunden wurde $_SESSION[constSESSIONNAME]["uid"]=$uid; $_SESSION[constSESSIONNAME]["pwd"]=$pwd; $_SESSION[constSESSIONNAME]["dat"]=$user_array; } } // Wenn kein ldapstatus geliefert wurde ist alles OK, sonst ist im ldapstatus die Fehlermeldung $error.=$ldapstatus; // Login erfolgreich - Eigenenstundenplan anzeigen if (isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) $work='stundenplan'; } } // ------------------------------------------------------------------------------------------ // Lesen Newstickerzeilen // ------------------------------------------------------------------------------------------ $studiengang_kz="0"; $semester=""; if(isset($_SESSION[constSESSIONNAME]["dat"]) && isset($_SESSION[constSESSIONNAME]["dat"]->studiengang_kz) ) { $studiengang_kz=trim($_SESSION[constSESSIONNAME]["dat"]->studiengang_kz); $semester=trim($_SESSION[constSESSIONNAME]["dat"]->semester); } $fachbereich_kurzbz=""; if (strtolower($work)!=strtolower("meinedaten") || !isset($_SESSION[constSESSIONNAME])) $news=read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester); // ------------------------------------------------------------------------------------------ // Linkes Auswahlmenue fuer Raumtypen // ------------------------------------------------------------------------------------------ if(isset($ServiceTerminalRaumtypen) && !is_null($ServiceTerminalRaumtypen)) $row_ort = $ServiceTerminalRaumtypen; else { $row_ort=array( array("type"=>"EDV","beschreibung"=>" Freie 
 PC Räume ","img"=>""), array("type"=>"HS","beschreibung"=>" Freie 
 Hörsäle ","img"=>""), array("type"=>"SEM","beschreibung"=>" Freie 
 Seminarräume ","img"=>""), array("type"=>"Lab","beschreibung"=>" Freie 
 Laborräume ","img"=>""), ); } $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"])?10:(date('H')>22 || date('H')<5?12000:900))); ?> Info-Terminal '; // Ende Linkes Menue echo '
'; if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["pwd"])) { //Angemeldeter User - Stundenplan der Woche echo ' '; } else { echo ''; } // Tabelle der Raumtypen echo html_output_liste_raumtypen($row_ort); if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && empty($cardnumber)) { //Angemeldeter User - Stundenplan der Woche echo ' '; } else { // Lageplan if(defined('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN') && CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN) { echo ' '; } } echo ''; // Login // Wenn keine Server Userauth. vorhanden ist if (!isset($_SERVER['PHP_AUTH_USER']) || (isset($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_USER'])) ) { echo ' '; } echo '
'; echo ' Logo
Mein
LV-Plan
Persönliche
Daten
Lageplan
 
 
'; if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"])) echo 'Logout Logoff'; else echo 'Login Login'; echo '
 
'; if (!$db || mb_strtolower($work)==mb_strtolower('lageplan')) { echo '

Lageplan '.CAMPUS_NAME.'

'; $pfad_standort_lageplan = '../../skin/styles/'.DEFAULT_STYLE.'/lageplan_'.$standort_id.'.jpg'; // Wenn fuer den ausgewaehlten Standort ein eigener Lageplan verfuegbar ist, wird dieser angezeigt // ansonsten wird der normale Lageplan angezeigt. if($standort_id!='' && file_exists($pfad_standort_lageplan)) echo ''; else echo ''; } else if (mb_strtolower($work)==mb_strtolower("login")) { echo '

Login '.CAMPUS_NAME.'

'; include_once('keyboard.php'); } else if (strtolower($work)==strtolower("meinedaten") && isset($_SESSION[constSESSIONNAME])) { echo meine_uid_informationen($db,$_SESSION[constSESSIONNAME]["uid"],$_SESSION[constSESSIONNAME]["dat"]); } else if (strtolower($work)==strtolower("verlaengerung") && isset($_SESSION[constSESSIONNAME])) { karten_verlaengerung($_SESSION[constSESSIONNAME]["uid"],$cardnumber); } else if (mb_strtolower($work)==mb_strtolower("stundenplan") && isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) { echo alle_uid_stundenplan_informationen($db,$_SESSION[constSESSIONNAME]["uid"],$_SESSION[constSESSIONNAME]["dat"]); } else { echo alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id); } // Zusatzinformation wie Error,News und Warten echo ''.(isset($error)?$error:'').' 
Bitte warten

'.(isset($news)?$news:'').' 
'; /* * * @meine_uid_informationen Termine zur Auswahl Raumtype * * @param $db Aktuelle Datenbankverbindung * @param $uid Userkurzzeichen * @param $user_array Anwenderinformatinen in Tabellenform * * @return HTML Tablle des Anwenderkalenders * */ function meine_uid_informationen($db,$uid,$user="") { global $standort_id; $html_user_daten=''; $html_user_daten_detail=''; // Lesen der Gesamtinformation zu einer Person (ALle UIDs holen) $user_array=array(); if ($db) $user_array=personen_id_read_mitarbeiter_oder_student($db,$user->person_id); if (isset($user_array) && is_array($user_array) && count($user_array)>1) { $html_user_daten.=''; $html_user_daten.=''; reset($user_array); for ($i=0;$iuid=trim($user_array[$i]->uid); $html_user_daten.=''; } $html_user_daten.=''; $html_user_daten.='
'; if ($user_array[$i]->aktiv =='t' || ($user_array[$i]->aktiv !='f' && $user_array[$i]->aktiv)) { $html_user_daten.=''; $html_user_daten.='  '.($user_array[$i]->uid==$uid?'':''). trim($user_array[$i]->uid).($user_array[$i]->uid==$uid?'':'').' '; $html_user_daten.=''; } else { $html_user_daten.='  '.trim($user_array[$i]->uid).' '; } $html_user_daten.='
'; $html_user_daten_detail.='
'; reset($user_array); for ($i=0;$i0?'
':'').meine_uid_informationen_detail($db,$user_array[$i]->uid,$i); } else { $html_user_daten_detail.=meine_uid_informationen_detail($db,$uid,0); } $html_user_daten.=$html_user_daten_detail; $html_user_daten.='
'; return $html_user_daten; } #------------------------------------------------------------------------------------------- /* * Zeigt die Oberfläche zur Kartenverlängerung an * @param $uid Userkurzzeichen */ function karten_verlaengerung($uid, $cardnumber=NULL) { if(is_null($cardnumber)) { $studienbeitrag = false; // Mitarbeiter brauchen die Karte nicht verlängern $cardPerson = new benutzer(); if(!$cardPerson->load($uid)) { die('Konnte User nicht laden'); } $html_user_daten=''; $html_user_daten.='

Verlängerung Studienausweis

'; $html_user_daten.='
'.($cardPerson->titelpre?$cardPerson->titelpre.' ':'').$cardPerson->vorname.' '.$cardPerson->nachname.' '.($cardPerson->titelpost?$cardPerson->titelpost:'').' 
 
 
 
'; echo $html_user_daten; } // User zur Karte konnte nicht geladen werden $data = ServiceTerminalCheckVerlaengerung($uid, $cardnumber); if($data[0]===true) { echo $data[1]; echo '
Um Karte zu verlängern drücken Sie bitte folgenden Button:'; echo'
'; } else echo $data[1].'

'; } #------------------------------------------------------------------------------------------- /* * * @meine_uid_informationen_detail Detailanzeige Userprofil * * @param $db Aktuelle Datenbankverbindung * @param $uid Userkurzzeichen * @param $user_array Anwenderinformatinen in Tabellenform * * @return HTML Tablle des Anwenderkalenders * */ function meine_uid_informationen_detail($db,$uid,$count=0) { $html_user_daten=''; $stg = ''; $stg_obj = new studiengang(); $stg_obj->getAll('typ, kurzbz', false); $stg_arr = array(); foreach ($stg_obj->result as $row) $stg_arr[$row->studiengang_kz]=$row->kurzbzlang; if(!($erg=$db->db_query("SELECT * FROM campus.vw_benutzer WHERE uid=".$db->db_add_param($uid, FHC_STRING)))) die($db->db_last_error()); $num_rows=$db->db_num_rows($erg); if ($num_rows==1) { $person_id=$db->db_result($erg,0,"person_id"); $anrede=$db->db_result($erg,0,"anrede"); $vorname=$db->db_result($erg,0,"vorname"); $vornamen=$db->db_result($erg,0,"vornamen"); $nachname=$db->db_result($erg,0,"nachname"); $gebdatum=$db->db_result($erg,0,"gebdatum"); $gebort=$db->db_result($erg,0,"gebort"); $aktiv=$db->db_result($erg,0,"aktiv"); $titelpre=$db->db_result($erg,0,"titelpre"); $titelpost=$db->db_result($erg,0,"titelpost"); $email=$db->db_result($erg,0,"uid").'@'.DOMAIN; $email_alias=$db->db_result($erg,0,"alias"); if ($email_alias) $email_alias=$email_alias.'@'.DOMAIN; $hp=$db->db_result($erg,0,"homepage"); $aktiv=$db->db_result($erg,0,"aktiv"); $foto=$db->db_result($erg,0,"foto"); } if(!($erg_stud=$db->db_query("SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, typ::varchar(1) || kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE student_uid=".$db->db_add_param($uid, FHC_STRING)))) die($db->db_last_error()); $stud_num_rows=$db->db_num_rows($erg_stud); if ($stud_num_rows==1) { $stg=$db->db_result($erg_stud,0,"studiengang_kz"); $stgbez=$db->db_result($erg_stud,0,"stgbz"); $stgkz=$db->db_result($erg_stud,0,"stgkz"); $semester=$db->db_result($erg_stud,0,"semester"); $verband=$db->db_result($erg_stud,0,"verband"); $gruppe=$db->db_result($erg_stud,0,"gruppe"); $matrikelnr=$db->db_result($erg_stud,0,"matrikelnr"); } $ort=''; $kurzbz=''; $tel=''; $vorwahl=''; if(!($erg_lekt=$db->db_query("SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$db->db_add_param($uid, FHC_STRING)))) die($db->db_last_error()); $lekt_num_rows=$db->db_num_rows($erg_lekt); if ($lekt_num_rows==1) { $row=$db->db_fetch_object($erg_lekt,0); $kurzbz=$row->kurzbz; $tel=$row->telefonklappe; $ort=$row->ort_kurzbz; $vorwahl = ''; if($tel != "") { $vorwahl = '+43 1 333 40 77-'; if($row->standort_id!='') { $qry = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id=".$db->db_add_param($row->standort_id,FHC_INTEGER)." AND kontakttyp = 'telefon'"; if($result_tel = $db->db_query($qry)) if($row_tel = $db->db_fetch_object($result_tel)) $vorwahl = $row_tel->kontakt; } } } // Mail-Groups if(isset($semester)) $semester_qry = " and semester =".$db->db_add_param($semester, FHC_STRING); else $semester_qry = ''; if(!($erg_mg=$db->db_query("SELECT gruppe_kurzbz, beschreibung FROM campus.vw_persongruppe WHERE mailgrp and uid=".$db->db_add_param($uid, FHC_STRING)." ".$semester_qry." ORDER BY gruppe_kurzbz"))) die($db->db_last_error()); $nr_mg=$db->db_num_rows($erg_mg); if ($count==0) { $html_user_daten.='

Persönliche Daten

'; $html_user_daten.='

'.$anrede.' '.($titelpre?$titelpre.' ':'').$vorname.' '.$nachname.'

 
       
'; } if ($count==0) $html_user_daten.='
'; // HTML Header mit den Benutzerdaten $html_user_daten.=''; $html_user_daten.=''; if ($aktiv=='f' || !$aktiv) { $html_user_daten.=''; $html_user_daten.=''; $html_user_daten.=''; } else { $html_user_daten.=''; $html_user_daten.=''; $html_user_daten.=''; } $html_user_daten.='
Informationen zu BenutzerIn '.$uid.'
Account nicht mehr AKTIV !
Aktiv
'; $html_user_daten.=''; $html_user_daten.=''; $html_user_daten.=''; $html_user_daten.='
Email
Intern'.$email.'
Alias'.$email_alias.'
'; $html_user_daten.=' 
'; return $html_user_daten; } #------------------------------------------------------------------------------------------- /* * * @alle_uid_stundenplan_informationen Termine zur Auswahl Raumtype * * @param $db Aktuelle Datenbankverbindung * @param $uid Userkurzzeichen * @param $user_array Anwenderinformatinen in Tabellenform * * @return HTML Tablle des Anwenderkalenders * */ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") { $html_liste_raum=''; if ($db && (empty($user_array) || (!is_array($user_array) && !is_object($user_array))) ) { $user_array=uid_read_mitarbeiter_oder_student($db,$uid); } if (empty($user_array) || (!is_array($user_array) && !is_object($user_array)) ) { return $html_liste_raum; } // ------------------------------------------------------------------------------------------ // Alle Termine zum User lesen // ------------------------------------------------------------------------------------------ // Authentifizierung if (check_student($uid)) $type='student'; elseif (check_lektor($uid)) $type='lektor'; else { //die("Cannot set usertype!"); //GastAccountHack $type='student'; } // Stundenplan erstellen $stdplan=new wochenplan($type); // Benutzergruppe $stdplan->user=$type; // aktueller Benutzer $stdplan->user_uid=$uid; // Zusaetzliche Daten laden if (isset($user_array->studiengang_kz)) { // Student if (! $stdplan->load_data($type,$uid,NULL,trim($user_array->studiengang_kz),trim($user_array->semester),trim($user_array->verband),trim($user_array->gruppe)) ) { die($stdplan->errormsg); } } else { // Mitarbeiter if (! $stdplan->load_data($type,$uid) ) { die($stdplan->errormsg); } } $datum=time(); // Stundenplan einer Woche laden if (! $stdplan->load_week($datum)) { die($stdplan->errormsg); } $ersterTagMonat=date('m', $stdplan->datum); $ersterTag=date('d', $stdplan->datum); $year=date('Y', $stdplan->datum); $weekday=date('w'); // ------------------------------------------------------------------------------------------ // Stunden lesen // ------------------------------------------------------------------------------------------ $row_stunde=array(); $qry="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Stundentabelle '.$db->db_last_error()); $num_rows_stunde=$db->db_num_rows(); while($row_stunden = $db->db_fetch_object()) { $row_stunden->time_beginn=mktime(mb_substr($row_stunden->beginn, 0,2),mb_substr($row_stunden->beginn, 3,2)); $row_stunden->time_ende=mktime(mb_substr($row_stunden->ende, 0,2),mb_substr($row_stunden->ende, 3,2)); $row_stunden->beginn_show=mb_substr($row_stunden->beginn, 0,5); $row_stunden->ende_show=mb_substr($row_stunden->ende, 0,5); $row_stunde[]=$row_stunden; } // ------------------------------------------------------------------------------------------ // Tabelle alle Termine zum User anzeigen // ------------------------------------------------------------------------------------------ $html_liste_raum.='

Persönlicher LV-Plan von '.(isset($user_array->name)?$user_array->name:$uid).' ('.$uid.') '. strftime(constHeaderStundenplan,mktime(0, 0, 0, $ersterTagMonat,$ersterTag, $year)).'

'; $html_liste_raum.=''; // Datum-Header $html_liste_raum.=''; $html_liste_raum.=''; $lektor_max=0; // Datumszeile for ($ii=0;$ii'; } $html_liste_raum.=''; // ------------------------------------------------------------------------------------------ // Stundenplanaufbau // ------------------------------------------------------------------------------------------ reset($row_stunde); for ($i=0;$itime_beginn<=time() && $row_stunde[$i]->time_ende>=time()) $html_liste_raum.=''; else $html_liste_raum.=''; // ------------------------------------------------------------------------------------------------------------ // Pausenzeiten werden zur naechsten Std. gerechnet als Aktuellezeit // dh. Letztes Ende ist gleich Start aktueller Datensatz if ($i && $row_stunde[$i - 1]->time_ende && $row_stunde[$i]->time_beginn!=$row_stunde[$i - 1]->time_ende) { $row_stunde[$i]->time_beginn=$row_stunde[$i - 1]->time_ende; } // Je Tage die Stunden ausgeben for ($ii=0;$iitime_beginn<=time() && $row_stunde[$i]->time_ende>=time()) { $zeit_aktuell=true; } if ($zeit_aktuell) { $html_liste_raum.=''; $html_liste_orte.=''; } return $html_liste_orte; } #------------------------------------------------------------------------------------------- /* * * @alle_uid_stundenplan_informationen Termine zur Auswahl Raumtype * * @param $db Aktuelle Datenbankverbindung * @param $uid Userkurzzeichen * @param $pwd Password * * @return true wenn Fehler oder false wenn LDAP Inormationen zum User gefunden wurde * */ function ldap_uid_check($uid,$pwd="") { if($pwd=='') return "Es wurde kein Passwort eingetragen"; // eventuelle Daten vom Vorgaenger loeschen - sicherstellen das Initial ist if (isset($_SESSION[constSESSIONNAME])) unset($_SESSION[constSESSIONNAME]); // Check User vorhanden ist ( Password wenn Online eingabe ), ansonst zurueck if (empty($uid)) return "Benutzername fehlt!"; $auth = new authentication(); if($auth->checkpassword($uid, $pwd)) return false; else return "Login fehlgeschlagen ".$auth->errormsg; } #------------------------------------------------------------------------------------------- #------------------------------------------------------------------------------------------- /* * * @uid_read_mitarbeiter_oder_student Daten zum Mitarbeiter oder Studenten * * @param $db Aktuelle Datenbankverbindung * @param $uid Userkurzzeichen * * @return Array der User Inormationen wenn User gefunden wurde ansonst false * */ function uid_read_mitarbeiter_oder_student($db,$uid) { $rows=array(); // Plausib if (!$db) return $rows; // Pruefen ob Mitarbeiter $qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_mitarbeiter where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; "; if(!$results=$db->db_query($qry)) die('Probleme beim lesen der Mitarbeiter '.$db->db_last_error()); if ($num_rows_stunde=$db->db_num_rows($results)) { while($rows = $db->db_fetch_object($results)) { $rows->name=''; $rows->name.=(isset($rows->anrede)?trim($rows->anrede).' ':''); $rows->name.=(isset($rows->titelpre)?trim($rows->titelpre).' ':''); $rows->name.=(isset($rows->vorname)?trim($rows->vorname).' ':''); $rows->name.=(isset($rows->vornamen)?trim($rows->vornamen).' ':''); $rows->name.=(isset($rows->nachname)?trim($rows->nachname).' ':''); return $rows; } } // Wenn kein Mitarbeiter pruefen ob Student $qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_student where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; "; if(!$result=$db->db_query($qry)) die('Probleme beim Lesen der Studierenden '); if ($num_rows_stunde=$db->db_num_rows($result)) { while($rows = $db->db_fetch_object($result)) { $rows->name=''; $rows->name.=(isset($rows->anrede)?trim($rows->anrede).' ':''); $rows->name.=(isset($rows->titelpre)?trim($rows->titelpre).' ':''); $rows->name.=(isset($rows->vorname)?trim($rows->vorname).' ':''); $rows->name.=(isset($rows->vornamen)?trim($rows->vornamen).' ':''); $rows->name.=(isset($rows->nachname)?trim($rows->nachname).' ':''); return $rows; } } // Daten gefunden wurden ist nicht mehr der Initialwert False als Returnparameter vorhanden return $rows; } #------------------------------------------------------------------------------------------- /* * * @personen_id_read_mitarbeiter_oder_student Daten zum Mitarbeiter oder Studenten * * @param $db Aktuelle Datenbankverbindung * @param $person_id Userkurzzeichen * * @return Array der User Inormationen wenn User gefunden wurde ansonst false * */ function personen_id_read_mitarbeiter_oder_student($db,$person_id) { $row=array(); // Plausib if (!$db) return $row; // Pruefen ob Mitarbeiter $qry=''; $qry.=' SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_mitarbeiter where person_id='.$db->db_add_param(trim($person_id), FHC_INTEGER); $qry.=' UNION '; // Pruefen ob Student $qry.='SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_student where person_id='.$db->db_add_param(trim($person_id), FHC_INTEGER); $qry.=' LIMIT 20 '; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der MitarbeiterInnen/Studierenden '.$db->db_last_error()); if (!$num_rows_stunde=$db->db_num_rows($result)) return $row; while($rows = $db->db_fetch_object($result)) { $rows->name=''; $rows->name.=(isset($rows->anrede)?trim($rows->anrede).' ':''); $rows->name.=(isset($rows->titelpre)?trim($rows->titelpre).' ':''); $rows->name.=(isset($rows->vorname)?trim($rows->vorname).' ':''); $rows->name.=(isset($rows->vornamen)?trim($rows->vornamen).' ':''); $rows->name.=(isset($rows->nachname)?trim($rows->nachname).' ':''); $row[]=$rows; } // Daten gefunden wurden ist nicht mehr der Initialwert False als Returnparameter vorhanden return $row; } #------------------------------------------------------------------------------------------- /* * * @read_create_html_news lesen der CIS - News zum anzeigen als HTML Tabelle * * @param $db Aktuelle Datenbankverbindung * @param $fachbereich_kurzbz Fachbereichskennzeichen * @param $studiengang_kz Studiengan Kennzeichen * @param $semester Semester * * @return HTML Tabelle mit Newszeilen * */ function read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester) { if(defined('CIS_INFOSCREEN_NEWS_ANZEIGEN') && CIS_INFOSCREEN_NEWS_ANZEIGEN==false) return ''; // ------------------------------------------------------------------------------------------ // Lesen Newstickerzeilen // ------------------------------------------------------------------------------------------ // Initialisieren der Newstickerzeilen $news=''; $news_obj = new news(); $news_obj->getnews(MAXNEWSALTER, $studiengang_kz, $semester, false, null, MAXNEWS); // Newsliste erzeugen $news='
 Zeit
'.$row_stunde[$i]->beginn_show.'-'.$row_stunde[$i]->ende_show.''.$row_stunde[$i]->beginn_show.'-'.$row_stunde[$i]->ende_show.''; } else { $html_liste_raum.=''; } $html_liste_raum.=''; } $html_liste_raum=($lektor_max>1?str_replace('{***}','
',$html_liste_raum):str_replace('{***}','',$html_liste_raum)); $html_liste_raum.=''; $html_liste_raum.='
'; } $gef_raum_einteilung_check=false; $TagInd=$ii + 1; $StdInd=$i + 1; $lektor=''; $lektor_anz=0; if (isset($stdplan->std_plan[$TagInd]) && isset($stdplan->std_plan[$TagInd][$StdInd]) && isset($stdplan->std_plan[$TagInd][$StdInd][0]->lehrfach)) { foreach ($stdplan->std_plan[$TagInd][$StdInd] as $lehrstunde) { //if (!isset($lehrstunde->reservierung) || ($lehrstunde->reservierung && $type!='lektor') ) // continue; if (!$gef_raum_einteilung_check) $gef_raum_einteilung_check=$lehrstunde; $lektor.=(isset($lehrstunde->lektor) && !empty($lehrstunde->lektor)?trim($lehrstunde->lektor).'
':'tw-0'); $lektor_anz++; if ($lektor_max<$lektor_anz) $lektor_max=$lektor_anz; } } if ($gef_raum_einteilung_check) { if ($gef_raum_einteilung_check->reservierung) $lehrstunde=trim($gef_raum_einteilung_check->titel).'
'; else $lehrstunde=trim($gef_raum_einteilung_check->lehrfach).'-'.trim($gef_raum_einteilung_check->lehrform).'
'; $ort=(isset($gef_raum_einteilung_check->ort) && !empty($gef_raum_einteilung_check->ort)?trim($gef_raum_einteilung_check->ort).'
':''); $farbe=(isset($gef_raum_einteilung_check->farbe) && !empty($gef_raum_einteilung_check->farbe)?$gef_raum_einteilung_check->farbe:''); $html_liste_raum.=''; } else { $html_liste_raum.=''; } $html_liste_raum.='
'; # $html_liste_raum.=$TagInd.'**'.$StdInd .'
'.$lehrstunde.$lektor.$ort; $html_liste_raum.=$lehrstunde.$lektor.($lektor_anz>1?'':'{***}')."$ort"; $html_liste_raum.='
 
 Top  
'; return $html_liste_raum; } #------------------------------------------------------------------------------------------- /* * * @alle_raum_informationen Rauminformation zur Auswahl Raumtype * * @param $db Aktuelle Datenbankverbindung * @param $raumtyp_kurzbz Raumtyp * @param $ort_kurzbz Detailanzeige Stundenplan eines Raums * * @return HTML Tablle der Raumtypen * */ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) { // HTML Init - Raumliste - Tabelle $html_liste_raum=''; // Header - Raumliste - Tabelle $html_liste_raum.='

'. strftime(constHeaderDatumZeit,time()).'

'; // DB Verbindung pruefen, Plausib - ohne Verbindung Header anzeigen if (!$db) return $html_liste_raum; // ------------------------------------------------------------------------------------------ // Alle Raum Typen zur Selektion // ------------------------------------------------------------------------------------------ $row_raum=array(); $row_raum_aktiv=array(); $row_raum_alle=array(); $qry=""; $qry.=" SELECT DISTINCT "; $qry.=" tbl_ortraumtyp.ort_kurzbz "; $qry.=" ,tbl_ort.bezeichnung ,tbl_ort.aktiv "; $qry.=" , (SELECT 'gesperrt'::text FROM public.tbl_ortraumtyp WHERE raumtyp_kurzbz='Gesperrt' AND ort_kurzbz=tbl_ort.ort_kurzbz) as gesperrt"; $qry.=" FROM tbl_raumtyp , tbl_ortraumtyp , tbl_ort "; $qry.=" WHERE tbl_ortraumtyp.raumtyp_kurzbz=tbl_raumtyp.raumtyp_kurzbz "; $qry.=" AND tbl_ort.ort_kurzbz=tbl_ortraumtyp.ort_kurzbz "; $qry.=" AND tbl_ort.aktiv "; $qry.=" AND lower(tbl_raumtyp.raumtyp_kurzbz) like lower('%".$db->db_escape(trim($raumtyp_kurzbz))."%') "; if($standort_id!='') $qry.=" AND (tbl_ort.standort_id=".$db->db_add_param($standort_id, FHC_INTEGER)." OR tbl_ort.standort_id is null)"; $qry.=" order by tbl_ortraumtyp.ort_kurzbz "; $qry.=" ; "; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Raumtyptabelle '); $num_rows_stunde=$db->db_num_rows($result); if($num_rows_stunde==0) return "Derzeit sind hier keine Eintraege vorhanden"; while($tmp_row_raum = $db->db_fetch_object($result)) { // Wenn noch kein Raum gewaehlt wurde den ersten als Default nehmen if (!trim($ort_kurzbz)) $ort_kurzbz=$tmp_row_raum->ort_kurzbz; // Aktiven Raum Anzeigen if (trim($ort_kurzbz)==trim($tmp_row_raum->ort_kurzbz)) $row_raum_aktiv=$tmp_row_raum; $row_raum_alle[]=$tmp_row_raum->ort_kurzbz; $row_raum[]=$tmp_row_raum; } if (count($row_raum_aktiv)<1) $row_raum_aktiv=$row_raum[0]; // -------------------------------------------------------------- // Raumreservierungen fuer Aktive Raumauswahl // -------------------------------------------------------------- // Die aktive Stunde ermitteln - zum lesen welcher Raum jetzt besetzt ist - aktive Lehreinheit $row_stunde=array(); $qry=""; $qry.="SELECT stunde, beginn, ende "; $qry.=" FROM lehre.tbl_stunde "; $qry.=" WHERE ".$db->db_add_param(constAktuelleZeitHHMi,FHC_STRING)." between to_char(tbl_stunde.beginn, 'HH24MI') and to_char(tbl_stunde.ende, 'HH24MI') "; $qry.=" ORDER BY stunde LIMIT 1 ; "; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error()); // In einer Pause wird kein Datensatz gefunden, den letzten holen if (!$num_rows_stunde=$db->db_num_rows($result)) { $qry=""; $qry.="SELECT stunde, beginn, ende "; $qry.=" FROM lehre.tbl_stunde "; $qry.=" WHERE ".$db->db_add_param(constAktuelleZeitHH,FHC_STRING)." between to_char(tbl_stunde.beginn, 'HH24') and to_char(tbl_stunde.ende, 'HH24') "; $qry.=" ORDER BY stunde LIMIT 1; "; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error()); } while($tmp_row_stunde = $db->db_fetch_object($result)) $row_stunde[]=$tmp_row_stunde; // Plausib Stunde if(!isset($row_stunde[0])) $row_stunde[0]=new stdClass(); $row_stunde[0]->stunde=(isset($row_stunde[0]) && isset($row_stunde[0]->stunde)?$row_stunde[0]->stunde:0); $html_liste_raum.=''; $html_liste_raum.=''; reset($row_raum); for ($i=0;$iort_kurzbz; $datum=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("y"))); $stunde_von=$row_stunde[0]->stunde; $stunde_bis=$row_stunde[0]->stunde; if ($info=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) { $farbe="rot"; } $ort_kurzbz=$row_raum[$i]->ort_kurzbz; $datum=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("y"))); $stunde_von=$row_stunde[0]->stunde; $stunde_bis=$row_stunde[0]->stunde + 1; if (!$info=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) { $farbe="gruen"; } if ($row_raum[$i]->gesperrt=="gesperrt") $farbe="rot"; // Nach 4 Raumanzeigen eine Neuezeile erzeugen $html_liste_raum.=($i==0 || $i%4?"":""); $html_liste_raum.=''; } $html_liste_raum.=''; $html_liste_raum.='
'; $html_liste_raum.=''; $html_liste_raum.=''; $html_liste_raum.=trim($ort_kurzbz); $html_liste_raum.=' '; $html_liste_raum.=''; $html_liste_raum.='
'; // Legende $html_liste_raum.='
'; $html_liste_raum.=''; $html_liste_raum.=''; $html_liste_raum.=''; $html_liste_raum.=''; $html_liste_raum.=''; $html_liste_raum.=''; $html_liste_raum.='
   Mindestens nächsten 2 Einheiten frei
   Derzeit frei
   Raum derzeit besetzt / gesperrt
'; $html_liste_raum.='
'; // Aktiver Raum Haederinformation $html_liste_raum.='

'.$row_raum_aktiv->ort_kurzbz.'  -  '.strftime(constRaumDatumZeit,time()).'  '.$row_raum_aktiv->bezeichnung.''.'

'; $ort_kurzbz=$row_raum_aktiv->ort_kurzbz; $datum=date("Ymd", mktime(0,0,0,date("m"),date("d"),date("y"))); $stunde_von=0; $stunde_bis=99; if (!$row_raum_plan=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) { $row_raum_plan=array(); $html_liste_raum."
keine Reservierungen ".$datum; } $html_liste_raum.=''; $html_liste_raum.=''; // Stundentabelle lesen $row_stunde=array(); $qry="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Stundentabelle '.$db->db_last_error()); $lastEnde=0; $num_rows_stunde=$db->db_num_rows(); while($row = $db->db_fetch_object()) { $row->time_beginn=mktime(mb_substr($row->beginn, 0,2),mb_substr($row->beginn, 3,2)); $row->time_ende=mktime(mb_substr($row->ende, 0,2),mb_substr($row->ende, 3,2)); $row->beginn_kurz=mb_substr($row->beginn, 0,5); $row->ende_kurz=mb_substr($row->ende, 0,5); $row->beginn_show=substr($row->beginn, 0,5); $row->ende_show=substr($row->ende, 0,5); // Pausenzeiten werden zur naechsten Std. gerechnet als Aktuellezeit // dh. Letztes Ende ist gleich Start aktueller Datensatz if ($lastEnde && $row->time_beginn!=$lastEnde) { $row->time_beginn=$lastEnde; } // Aktuelle Stunde kennzeichnen $row->aktuell=false; if ($row->time_beginn<=time() && $row->time_ende>=time()) $row->aktuell=true; else $row->aktuell=false; $row_stunde[]=$row; } // zur Stundentabelle die Rauminformationen lesen for ($i=0;$i"); $html_liste_raum.=''; $html_liste_raum.='
'; if ($row->aktuell) { $html_liste_raum.=''; } else { $html_liste_raum.=''; } reset($row_raum_plan); $gef_raum_einteilung=array(); for ($ii=0;$iistunde!=$row_raum_plan[$ii]->stunde) { continue; } $gef_raum_einteilung=$row_raum_plan[$ii]; // Stundenplan Detail lesen if (isset($gef_raum_einteilung->stundenplan_id) && !empty($gef_raum_einteilung->stundenplan_id)) { $gef_raum_einteilung->infotext='Fehler lesen Stundenplan '.$gef_raum_einteilung->stundenplan_id; // Details wurden bereits gelesen if (isset($gef_stundenplan_detail) && isset($gef_stundenplan_detail->stundenplan_id) && $gef_stundenplan_detail->stundenplan_id==$gef_raum_einteilung->stundenplan_id) { $gef_raum_einteilung->infotext=$gef_stundenplan_detail->lehrfach.'-'.$gef_stundenplan_detail->lehrform.'
'.$gef_stundenplan_detail->lektor.'
'.mb_strtoupper(trim($gef_stundenplan_detail->stg_typ).trim($gef_stundenplan_detail->stg_kurzbz)).'-'.$gef_stundenplan_detail->semester.$gef_stundenplan_detail->verband; } // Detail lesen elseif ($gef_stundenplan_detail=stundenplan_detail($db,$gef_raum_einteilung->stundenplan_id)) { if (isset($gef_stundenplan_detail->lehrfach)) $gef_stundenplan_detail->lehrfach=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrfach)); if (isset($gef_stundenplan_detail->lehrform)) $gef_stundenplan_detail->lehrform=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrform)); if (isset($gef_stundenplan_detail->lektor)) $gef_stundenplan_detail->lektor=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lektor)); if (isset($gef_stundenplan_detail->stg_kurzbzlang)) $gef_stundenplan_detail->stg_kurzbzlang=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->stg_kurzbzlang)); $img_sticky=''; $gef_stundenplan_detail->titel=trim($gef_stundenplan_detail->titel); if(!empty($gef_stundenplan_detail->titel) ) $img_sticky=' '; $gef_raum_einteilung->infotext=$gef_stundenplan_detail->lehrfach.'-'.$gef_stundenplan_detail->lehrform.$img_sticky.'
'.$gef_stundenplan_detail->lektor.'
'.$gef_stundenplan_detail->stg_kurzbzlang.'-'.$gef_stundenplan_detail->semester.$gef_stundenplan_detail->verband; } if (isset($gef_stundenplan_detail->farbe) && !empty($gef_stundenplan_detail->farbe) ) { $gef_raum_einteilung->farbe=$gef_stundenplan_detail->farbe; } } // Reservierung Detail if (isset($gef_raum_einteilung->reservierung_id) && !empty($gef_raum_einteilung->reservierung_id)) { $gef_raum_einteilung->infotext='Fehler lesen Reservierung '.$gef_raum_einteilung->reservierung_id; // Details wurden bereits gelesen if (isset($gef_stundenplan_detail) && isset($gef_stundenplan_detail->reservierung_id) && $gef_stundenplan_detail->reservierung_id==$gef_raum_einteilung->reservierung_id) { $gef_raum_einteilung->infotext=(!empty($gef_stundenplan_detail->titel)?$gef_stundenplan_detail->titel.'
':'').(!empty($gef_stundenplan_detail->uid)?$gef_stundenplan_detail->uid.'
':'').$gef_stundenplan_detail->beschreibung; } // Detail lesen elseif ($gef_stundenplan_detail=reservierung_detail($db,$gef_raum_einteilung->reservierung_id)) { if (isset($gef_stundenplan_detail->titel)) $gef_stundenplan_detail->titel=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->titel)); if (isset($gef_stundenplan_detail->beschreibung)) $gef_stundenplan_detail->beschreibung=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->beschreibung)); if (isset($gef_stundenplan_detail->uid)) $gef_stundenplan_detail->uid=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->uid)); $gef_raum_einteilung->infotext=(!empty($gef_stundenplan_detail->titel)?$gef_stundenplan_detail->titel.'
':'').'
'.(!empty($gef_stundenplan_detail->uid)?$gef_stundenplan_detail->uid.'
':'').$gef_stundenplan_detail->beschreibung; } if (isset($gef_stundenplan_detail->farbe) && !empty($gef_stundenplan_detail->farbe) ) { $gef_raum_einteilung->farbe=$gef_stundenplan_detail->farbe; } } } $html_liste_raum.='
'; $html_liste_raum.='
'.trim($row->beginn_kurz)."
".trim($row->ende_kurz).'
'.trim($row->beginn_kurz)."
".trim($row->ende_kurz).'
aktuell?' class="raum_liste_detail_stundenplan_aktuell" ':' class="raum_liste_detail_stundenplan_normal" ') .' '. (isset($gef_raum_einteilung->farbe)?' style="background-color:#'.$gef_raum_einteilung->farbe.'" ':'').'>'.(isset($gef_raum_einteilung->infotext) && $gef_raum_einteilung->infotext? $gef_raum_einteilung->infotext :' 

').' 
'; } $html_liste_raum.='
'; $html_liste_raum.='
   Aktuelle Einheit
'; return $html_liste_raum; } #------------------------------------------------------------------------------------------- /* * * @alle_rauminformationen Rauminformation zur Auswahl Raumtype * * @param $db Aktuelle Datenbankverbindung * @param $ort_kurzbz Detailanzeige Stundenplan eines Raums Optional * @param $datum Datum der Raumres. in Form von JJJJMMTT Optional * @param $row_stunde_von Stundenplan ab Optional * @param $row_stunde_bis Stundenplan ab Optonal * @param $uid UserUid Optional * @param $kalenderwoche Kalenderwoche Optional * @param $studiengang_kz Studienkennzeichen Optional * @param $semester Semester Optional * @param $verband="" Verbandskennzeichen Optional * @param $gruppe Verband-Gruppe Optional * * @return array Tablle der Rauminformation * */ function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0,$uid="",$kalenderwoche="",$studiengang_kz="",$semester="",$verband="",$gruppe="") { // Plausib if (!$db) return array(); if (empty($stunde_bis)) $stunde_bis=$stunde_von; //--- Raumbelegung jetzt $qry=""; $qry.=' SELECT studiengang_kz,0 as "stundenplan_id",tbl_reservierung.reservierung_id,tbl_reservierung.ort_kurzbz,tbl_reservierung.titel,tbl_reservierung.semester,tbl_reservierung.studiengang_kz,tbl_reservierung.verband, tbl_reservierung.gruppe , to_char(tbl_reservierung.datum, \'YYYYMMDD\') as "datum_jjjjmmtt", to_char(tbl_reservierung.datum, \'IW\') as "datum_woche" , tbl_stunde.beginn, tbl_stunde.ende , to_char(tbl_stunde.beginn, \'HH24:MI\') as "beginn_anzeige" , to_char(tbl_stunde.ende, \'HH24:MI\') as "ende_anzeige" , EXTRACT(EPOCH FROM tbl_reservierung.datum) as "datum_timestamp" ,tbl_stunde.stunde '; $qry.=' FROM campus.tbl_reservierung , lehre.tbl_stunde '; $qry.=" WHERE tbl_stunde.stunde=tbl_reservierung.stunde "; $qry.=" and tbl_reservierung.stunde between ". $db->db_add_param(trim($stunde_von), FHC_STRING) ." and ". $db->db_add_param(trim($stunde_bis), FHC_STRING) ; $datum_obj = new datum(); if (!empty($datum)) { $qry.=" and tbl_reservierung.datum =".$db->db_add_param(trim($datum), FHC_STRING); } if (!empty($kalenderwoche)) { $qry.=" and to_char(tbl_reservierung.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); } if (!empty($ort_kurzbz)) { $qry.=" and ort_kurzbz=".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); } if (!empty($uid) || $uid=='0') { $qry.=" and uid=".$db->db_add_param(trim($uid), FHC_STRING); } if (!empty($studiengang_kz) || $studiengang_kz=='0') { $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); } if (!empty($semester) || $semester=='0') { $qry.=" and semester=".$db->db_add_param($semester, FHC_STRING); } if (!empty($verband) || $verband=='0') { $qry.=" and verband=".$db->db_add_param(trim($verband), FHC_STRING); } if (!empty($gruppe) || $gruppe=='0') { $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); } $qry.=" UNION "; $qry.=' SELECT studiengang_kz,tbl_stundenplan.stundenplan_id,0 as "reservierung_id", tbl_stundenplan.ort_kurzbz,tbl_stundenplan.titel,tbl_stundenplan.semester,tbl_stundenplan.studiengang_kz,tbl_stundenplan.verband ,tbl_stundenplan.gruppe , to_char(tbl_stundenplan.datum, \'YYYYMMDD\') as "datum_jjjjmmtt", to_char(tbl_stundenplan.datum, \'IW\') as "datum_woche" , tbl_stunde.beginn, tbl_stunde.ende , to_char(tbl_stunde.beginn, \'HH24:MI\') as "beginn_anzeige" , to_char(tbl_stunde.ende, \'HH24:MI\') as "ende_anzeige" , EXTRACT(EPOCH FROM tbl_stundenplan.datum) as "datum_timestamp" ,tbl_stunde.stunde '; $qry.=' FROM lehre.tbl_stundenplan , lehre.tbl_stunde '; $qry.=" WHERE tbl_stunde.stunde=tbl_stundenplan.stunde "; $qry.=" and tbl_stundenplan.stunde between ".$db->db_add_param(trim($stunde_von), FHC_STRING)." and ".$db->db_add_param(trim($stunde_bis), FHC_STRING); if (!empty($datum)) { $qry.=" and tbl_stundenplan.datum =".$db->db_add_param(trim($datum), FHC_STRING); } if (!empty($kalenderwoche)) { $qry.=" and to_char(tbl_stundenplan.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); } if (!empty($ort_kurzbz)) { $qry.=" and ort_kurzbz =E".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); } if (!empty($uid) || $uid=='0') { $qry.=" and mitarbeiter_uid=".$db->db_add_param(trim($uid), FHC_STRING); } if (!empty($studiengang_kz) || $studiengang_kz=='0') { $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); } if (!empty($semester) || $semester=='0') { $qry.=" and semester=".$db->db_add_param($semester, FHC_STRING); } if (!empty($verband) || $verband=='0') { $qry.=" and verband=E".$db->db_add_param(trim($verband), FHC_STRING); } if (!empty($gruppe) || $gruppe=='0') { $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); } $qry.=" ; "; $row_raum_belegt=array(); if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); if (!$num_rows_stunde=$db->db_num_rows($result)) return $row_raum_belegt; while($row = $db->db_fetch_object($result)) { $row_raum_belegt[]=$row; } return $row_raum_belegt; } #------------------------------------------------------------------------------------------- /* * * @stundenplan_detail Stundenplan mit Lehrveranstaltungsinformationen * * @param $db Aktuelle Datenbankverbindung * @param $stundenplan_id StundenplanID * * @return array Tablle des Stundenplan im Detail * */ function stundenplan_detail($db,$stundenplan_id) { $row_stundenplan_detail=false; if (!$db || empty($stundenplan_id)) return $row_stundenplan_detail; //--- Raumbelegung jetzt $qry=' SELECT * FROM campus.vw_stundenplan '; $qry.=" WHERE vw_stundenplan.stundenplan_id=".$db->db_add_param($stundenplan_id, FHC_INTEGER); $qry.=" ORDER BY datum,stunde "; if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); if (!$num_rows_stunde=$db->db_num_rows()) return $row_stundenplan_detail; while($row = $db->db_fetch_object()) $row_stundenplan_detail=$row; return $row_stundenplan_detail; } #------------------------------------------------------------------------------------------- /* * * @reservierung_detail Stundenplan mit Reservierungsinformationen * * @param $db Aktuelle Datenbankverbindung * @param $reservierung_id ReservierungID * * @return array Tablle des Reservierung im Detail * */ function reservierung_detail($db,$reservierung_id) { $row_reservierung_detail=false; if (!$db || empty($reservierung_id)) return $row_reservierung_detail; //--- Reservierung jetzt $qry=' SELECT * FROM campus.vw_reservierung '; $qry.=' WHERE vw_reservierung.reservierung_id='.$db->db_add_param($reservierung_id, FHC_INTEGER); if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); if (!$num_rows_stunde=$db->db_num_rows($result)) return $row_reservierung_detail; while($row = $db->db_fetch_object($result)) $row_reservierung_detail=$row; return $row_reservierung_detail; } #------------------------------------------------------------------------------------------- /* * * @html_output_liste_raumtypen Tabellenliste der Raumtypen * * @param $array Raumtyp,Beschreibung * * @return HTML Tablle der Raumtypen * */ function html_output_liste_raumtypen($row_ort) { global $standort_id; $html_liste_orte=''; if (!is_array($row_ort) || count($row_ort)<1) return $html_liste_orte; for ($i=0;$i'; $html_liste_orte.=''; $html_liste_orte.=trim($row_ort[$i]["beschreibung"]); $html_liste_orte.=''; $html_liste_orte.=''; $html_liste_orte.='
'; $i=0; foreach($news_obj->result as $row) { if($row->content_id!='') { $lang=DEFAULT_LANGUAGE; $content = new content(); $content->getContent($row->content_id, $lang, null, null, false); $xml_inhalt = new DOMDocument(); if($content->content!='') { $xml_inhalt->loadXML($content->content); } if($xml_inhalt->getElementsByTagName('verfasser')->item(0)) $verfasser = $xml_inhalt->getElementsByTagName('verfasser')->item(0)->nodeValue; if($xml_inhalt->getElementsByTagName('betreff')->item(0)) $betreff = $xml_inhalt->getElementsByTagName('betreff')->item(0)->nodeValue; if($xml_inhalt->getElementsByTagName('text')->item(0)) $text = $xml_inhalt->getElementsByTagName('text')->item(0)->nodeValue; $i++; // wird zum Zeilenfarben - CSS umschalten benoetigt $text=mb_ereg_replace("href","hrefs",trim($text)); $text=mb_ereg_replace(array("\r\n", "\n", "\r","
")," ",$text); //DMS Pfad korrigieren $text=mb_ereg_replace("dms.php","../../cms/dms.php",$text); $news.=''; $news.='
'. (stristr($text,'
')?$text:(mb_strlen($text)>90?mb_substr(trim(''.$betreff.'
'.$text),0,90).'...' :trim($text))).' Detail

'.trim($betreff).'

'.trim($text).'


schliessen

 

 '; } } $news.=''; $news=mb_ereg_replace('href=','',$news); return $news; } ?>