From 41552654fcebfa85d5c50664d5a977e5f2685ed2 Mon Sep 17 00:00:00 2001 From: Gerald Simane Date: Mon, 15 Feb 2010 12:43:52 +0000 Subject: [PATCH] --- cis/private/lvplan/lvplan.wap.php | 969 ++++++++++++++++++++++++++++++ 1 file changed, 969 insertions(+) create mode 100644 cis/private/lvplan/lvplan.wap.php diff --git a/cis/private/lvplan/lvplan.wap.php b/cis/private/lvplan/lvplan.wap.php new file mode 100644 index 000000000..399fb8793 --- /dev/null +++ b/cis/private/lvplan/lvplan.wap.php @@ -0,0 +1,969 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ + + require_once('../../../config/cis.config.inc.php'); + require_once('../../../include/basis_db.class.php'); + require_once('../../../include/functions.inc.php'); + if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + require_once('../../../include/benutzer.class.php'); + require_once('../../../include/wochenplan.class.php'); + require_once('../../../include/benutzerberechtigung.class.php'); + +//------------------------------------------------------------------------------------------- +// 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())); +//------------------------------------------------------------------------------------------- +// Variable Init + $card_id=DOMAIN; + $card_titel=CAMPUS_NAME.' '.date('d-m-Y'); + $htmlout=''; + $day = date('d'); + $month = date('m'); + $year = date('y'); + $weekday = date('w'); + +//------------------------------------------------------------------------------------------- +// Parameter uebernehmen + $uid=trim((isset($_REQUEST['uid']) ? $_REQUEST['uid']:get_uid())); + $ort_kurzbz=trim((isset($_REQUEST['ort_kurzbz']) ? $_REQUEST['ort_kurzbz']:'')); + $raumtyp_kurzbz=trim((isset($_REQUEST['raumtyp_kurzbz']) ? $_REQUEST['raumtyp_kurzbz']:'')); + $datum=trim((isset($_REQUEST['datum']) ? $_REQUEST['datum']:date('Ymd'))); + $datum_bl=trim((isset($_REQUEST['datum_bl']) ? $_REQUEST['datum_bl']:'')); + $work=trim((isset($_REQUEST['work']) ? $_REQUEST['work']:'')); + +//------------------------------------------------------------------------------------------- +// Anwender + if (empty($uid)) + { + $work='freierraum'; + $htmlout.=' + Durch Anhängen von ?uid=[Ihre uid] an die WAP URL
+ entfällt die Angabe ihres Benutzernames,
+ und Sie werden sofort zu Ihrem Stundenplan weitergeleitet.
+
'; + } + else + { + +## $uid='el09b057'; +# $uid='_DummyLektor'; +## $uid='sommert'; + + if (empty($work)) + $work='meinplan'; + if ($user=new benutzer($uid)) + { + $htmlout.=($user->vorname?$user->vorname.' ':'').$user->nachname; + if (!$user->aktiv) + $htmlout.='
'.$uid.' ist nicht aktiv!'; + } + else + { + $htmlout.=$uid.' wurde nicht gefunden!'; + $uid=''; + $work=''; + } + } + +//------------------------------------------------------------------------------------------- +// Anzeige des aktuellen Stundenplan eines Anwenders + if (!empty($uid) && $work=='meinplan' ) + { + $row_raum=array(); + $kalenderwoche=""; + $studiengang_kz=""; + $semester=""; + $verband=""; + $gruppe=""; + $row_stunde=getAktuelleStd($db); + if (date('Ymd')==$datum && is_array($row_stunde) && count($row_stunde)>0) + { + $stunde_von=$row_stunde[0]->stunde; + $stunde_bis=$row_stunde[0]->stunde; + + $user_array=uid_read_mitarbeiter_oder_student($db,$uid); + // 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); + } + } + $mtag=mb_substr($datum, 6,2); + $month=mb_substr($datum, 4,2); + $jahr=mb_substr($datum, 0,4); + $datum_select=@mktime(12,0,0,$month,$mtag,$jahr); + // Stundenplan einer Woche laden + if (! $stdplan->load_week($datum_select)) + die($stdplan->errormsg); + $ersterTagMonat=date('m', $stdplan->datum); + $ersterTag=date('d', $stdplan->datum); + $year=date('Y', $stdplan->datum); + $weekday=date('w'); + $gefunden=null; + for ($ind_stdplan=0;$ind_stdplanstd_plan);$ind_stdplan++) + { + $datum_check=@mktime(12,0,0,$ersterTagMonat,($ersterTag + $ind_stdplan ),$year); + if (date('Ymd',$datum_select)==date('Ymd',$datum_check)) + { + $gefunden=1 + $ind_stdplan; + break; + } + } + $row_raum=array(); + if (!is_null($gefunden) && isset($stdplan->std_plan) && isset($stdplan->std_plan[$gefunden]) && isset($stdplan->std_plan[$gefunden][$stunde_von]) && isset($stdplan->std_plan[$gefunden][$stunde_von][0])) + $row_raum=$stdplan->std_plan[$gefunden][$stunde_von][0]; + + if ((is_array($row_raum) || is_object($row_raum)) && count($row_raum)>0 && isset($row_raum->reservierung) ) + { + $htmlout.=' + + + + +
'.substr($row_stunde[0]->beginn,0,5).'
'.substr($row_stunde[0]->ende,0,5).'
'; + if ($row_raum->reservierung) + $htmlout.=(!empty($row_raum->titel)?$row_raum->titel:(!empty($row_raum->titel) && $row_raum->lehrfach!=$row_raum->titel?$row_raum->lehrfach:'')).'
'.$row_raum->ort; + else + $htmlout.=$row_raum->lehrfach.'-'.$row_raum->lehrform.'
'.$row_raum->ort; + $htmlout.='
'; + } + } + } +//------------------------------------------------------------------------------------------- +// Information das es nicht das Tagesdatum ist + $dif=$datum-date('Ymd'); +## if (date('Ymd')!=$datum) + $htmlout.='
'.strftime(constHeaderDatumZeit,mktime(date('H'), date('i'), 0, $month, $day + $dif, $year)).''; + + if ($datum_bl=='ret') + { + $day=$day + ( $dif - 1 ) ; + $datum_ret=date('Ymd',mktime(0, 0, 0, $month, $day, $year)); + $datum_vor=date('Ymd',mktime(0, 0, 0, $month, $day + 1, $year)); + } + else if ($datum_bl=='vor') + { + $day=$day + ( $dif + 1 ); + $datum_ret=date('Ymd',mktime(0, 0, 0, $month, $day - 1, $year)); + $datum_vor=date('Ymd',mktime(0, 0, 0, $month, $day, $year)); + } + else + { + $datum_ret=date('Ymd',mktime(0, 0, 0, $month, $day - 1, $year)); + $datum_vor=date('Ymd',mktime(0, 0, 0, $month, $day + 1, $year)); + } + $datum_heute=date('Ymd'); + $htmlout.=' +
+ << + heute + >> + '; + +//------------------------------------------------------------------------------------------- + switch ($work) + { + + case 'freierraum': + + if (!empty($uid)) + { + $htmlout.='
'; + $htmlout.=''; + $htmlout.='mein Stundenplan'; + $htmlout.=''; + $htmlout.=''; + } + if (empty($raumtyp_kurzbz)) + $htmlout.=raum_typen($uid); + else if (empty($ort_kurzbz)) + $htmlout.=ort_raum_typen($uid,$raumtyp_kurzbz,$datum); + else + $htmlout.=ort_plan_raum_typen($uid,$raumtyp_kurzbz,$ort_kurzbz,$datum); + break; + + case 'meinplan': + $htmlout.='
'; + $htmlout.=''; + $htmlout.='Freie Säle'; + $htmlout.=''; + $htmlout.=''; + + $htmlout.=getMeinStundenplan($uid,$datum); + break; + + default: + + break; + } + +#exit($htmlout); +#exit($htmlout); + +header("Content-Type: text/vnd.wap.wml;charset=UTF-8"); +echo "\n"; +echo "\n"; +?> + + + + + + Benutzername: + + Weiter + " method="get"> + + + +
+ +
+
+db_query($qry)) + return '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 '". constAktuelleZeitHH ."' 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)) + return 'Probleme beim lesen der Raumtyptabelle '.$db->db_last_error(); + } + while($tmp_row_stunde = $db->db_fetch_object($result)) + $row_stunde[]=$tmp_row_stunde; + return $row_stunde; +} + +//------------------------------------------------------------------------------------------- +/* +* +* @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 ". trim($stunde_von) ." and ". trim($stunde_bis) ; + + if (!empty($datum)) + { + $qry.=" and to_char(tbl_reservierung.datum, 'YYYYMMDD') ='".addslashes(trim($datum))."' "; + } + if (!empty($kalenderwoche)) + { + $qry.=" and to_char(tbl_reservierung.datum, 'IW') ='".addslashes(trim($kalenderwoche))."' "; + } + if (!empty($ort_kurzbz)) + { + $qry.=" and ort_kurzbz='".addslashes(trim($ort_kurzbz))."' "; + } + if (!empty($uid) || $uid=='0') + { + $qry.=" and uid='".addslashes(trim($uid))."' "; + } + if (!empty($studiengang_kz) || $studiengang_kz=='0') + { + $qry.=" and studiengang_kz=".$studiengang_kz." "; + } + if (!empty($semester) || $semester=='0') + { + $qry.=" and semester=".$semester." "; + } + if (!empty($verband) || $verband=='0') + { + $qry.=" and verband='".addslashes(trim($verband))."' "; + } + if (!empty($gruppe) || $gruppe=='0') + { + $qry.=" and gruppe=".$gruppe." "; + } + + $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 ". trim($stunde_von) ." and ". trim($stunde_bis) ; + + if (!empty($datum)) + { + $qry.=" and to_char(tbl_stundenplan.datum, 'YYYYMMDD') ='".addslashes(trim($datum))."' "; + } + if (!empty($kalenderwoche)) + { + $qry.=" and to_char(tbl_stundenplan.datum, 'IW') ='".addslashes(trim($kalenderwoche))."' "; + } + if (!empty($ort_kurzbz)) + { + $qry.=" and ort_kurzbz =E'".addslashes(trim($ort_kurzbz))."' "; + } + if (!empty($uid) || $uid=='0') + { + $qry.=" and mitarbeiter_uid='".addslashes(trim($uid))."' "; + } + if (!empty($studiengang_kz) || $studiengang_kz=='0') + { + $qry.=" and studiengang_kz=".$studiengang_kz." "; + } + if (!empty($semester) || $semester=='0') + { + $qry.=" and semester=".$semester." "; + } + if (!empty($verband) || $verband=='0') + { + $qry.=" and verband=E'".addslashes(trim($verband))."' "; + } + if (!empty($gruppe) || $gruppe=='0') + { + $qry.=" and gruppe=".$gruppe." "; + } + $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) +{ + if (!$db || empty($stundenplan_id)) + return false; + $row_stundenplan_detail=false; + + //--- Raumbelegung jetzt + $qry=""; + $qry.=' SELECT * '; + $qry.=' FROM campus.vw_stundenplan '; + $qry.=" WHERE vw_stundenplan.stundenplan_id=".$stundenplan_id; + $qry.=" ORDER BY datum,stunde "; + $qry.=" ; "; + + 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)) + { + while($row = $db->db_fetch_object($result)) + $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) +{ + if (!$db || empty($reservierung_id)) + return false; + $row_reservierung_detail=false; + + //--- Reservierung jetzt + $qry=""; + $qry.=' SELECT * '; + $qry.=' FROM campus.vw_reservierung '; + $qry.=" WHERE vw_reservierung.reservierung_id=".$reservierung_id; + $qry.=" ; "; + + 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)) + { + while($row = $db->db_fetch_object($result)) + $row_reservierung_detail=$row; + } + return $row_reservierung_detail; +} + +//------------------------------------------------------------------------------------------ +// BENUTZER STD.PLAN +//------------------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------------------- +/* +* +* @getAktuelleStd liefert die Aktuelle Stunde lt. Tabelle retour +* +* @param $db Aktuelle Datenbankverbindung +* +* @return Array der Stundentabelle +* +*/ +function getMeinStundenplan($uid='',$datum='') +{ + $htmlout=""; + if (!$db = new basis_db()) + return 'Fehler beim Oeffnen der Datenbankverbindung'; + + $row_raum=array(); + $kalenderwoche=""; + $studiengang_kz=""; + $semester=""; + $verband=""; + $gruppe=""; + $ort_kurzbz=""; + + // ------------------------------------------------------------------------------------------ + // 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()); + $htmlout.=''; +// ------------------------------------------------------------------------------------------ +// Alle Termine zum User lesen +// ------------------------------------------------------------------------------------------ + $user_array=uid_read_mitarbeiter_oder_student($db,$uid); + // 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); + } + } + + $mtag=mb_substr($datum, 6,2); + $month=mb_substr($datum, 4,2); + $jahr=mb_substr($datum, 0,4); + $datum=@mktime(12,0,0,$month,$mtag,$jahr); + // Stundenplan einer Woche laden + if (! $stdplan->load_week($datum)) + die($stdplan->errormsg); +#$htmlout.=date('Y-m-d',$stdplan->datum); + + $ersterTagMonat=date('m', $stdplan->datum); + $ersterTag=date('d', $stdplan->datum); + $year=date('Y', $stdplan->datum); + $weekday=date('w'); + + $gefunden=null; + for ($ind_stdplan=0;$ind_stdplanstd_plan);$ind_stdplan++) + { + $datum_check=@mktime(12,0,0,$ersterTagMonat,($ersterTag + $ind_stdplan ),$year); + if (date('Ymd',$datum)==date('Ymd',$datum_check)) + { + $gefunden=1 + $ind_stdplan; + break; + } + } + while($row_stunden = $db->db_fetch_object($result)) + { + + $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_stunden->beginn_time=date('Hi',$row_stunden->time_beginn); + $row_stunden->ende_time=date('Hi',$row_stunden->time_ende); + $row_stunden->aktiv_time=date('Hi'); + + $htmlout.=''; + if ($row_stunden->beginn_time<=$row_stunden->aktiv_time + && $row_stunden->ende_time>=$row_stunden->aktiv_time ) + $htmlout.=''; + else + $htmlout.=''; + + $htmlout.=''; + $htmlout.=''; + } + $htmlout.='
'.$row_stunden->beginn_show.'
'.$row_stunden->ende_show.'
'.$row_stunden->beginn_show.'
'.$row_stunden->ende_show.'
'; + + $stunde_von=$row_stunden->stunde; + $stunde_bis=$row_stunden->stunde; +## $row_raum=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis,$uid,$kalenderwoche,$studiengang_kz,$semester,$verband,$gruppe); +##var_dump($stdplan->std_plan[$gefunden][$stunde_von][0]); + $row_raum=array(); + if (!is_null($gefunden) && isset($stdplan->std_plan) && isset($stdplan->std_plan[$gefunden]) && isset($stdplan->std_plan[$gefunden][$stunde_von]) && isset($stdplan->std_plan[$gefunden][$stunde_von][0])) + $row_raum=$stdplan->std_plan[$gefunden][$stunde_von][0]; + + if ((is_array($row_raum) || is_object($row_raum)) && count($row_raum)>0 && isset($row_raum->reservierung) ) + { + if ($row_raum->reservierung) + $htmlout.=(!empty($row_raum->titel)?$row_raum->titel:(!empty($row_raum->titel) && $row_raum->lehrfach!=$row_raum->titel?$row_raum->lehrfach:'')).'
'.$row_raum->ort; + else + $htmlout.=$row_raum->lehrfach.'-'.$row_raum->lehrform.'
'.$row_raum->ort; + } + $htmlout.='
'; +#exit($htmlout); + return $htmlout; +} + +//------------------------------------------------------------------------------------------ +// RAUMTYPEN +//------------------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------------------- +/* +* +* @raum_typen Liste der Raumtypen +* +* @param $uid Aktueller Anwender +* +* @return array Tablle der Raeume +* +*/ +function raum_typen($uid='') +{ + $htmlout=""; +// ------------------------------------------------------------------------------------------ +// Linkes Auswahlmenue fuer Raumtypen +// ------------------------------------------------------------------------------------------ + $row_ort=array( + array("type"=>"EDV","beschreibung"=>"EDV Säle","img"=>""), + array("type"=>"HS","beschreibung"=> "Hörsäle","img"=>""), + array("type"=>"SEM","beschreibung"=>"Seminarräume","img"=>""), + array("type"=>"Lab","beschreibung"=>"Labors","img"=>""), + array("type"=>"EXT","beschreibung"=>"Ext.Räume","img"=>""), + array("type"=>"DIV","beschreibung"=>"Diverse","img"=>""), + array("type"=>"UEB","beschreibung"=>"Übungsräume","img"=>"") + # array("type"=>"ENERGY","beschreibung"=>"Energy","img"=>""), + ); + if (!is_array($row_ort) || count($row_ort)<1) + return $htmlout; + $htmlout.=''; + for ($i=0;$i'; + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + } + $htmlout.='
'; + return $htmlout; +} + +//------------------------------------------------------------------------------------------- +/* +* +* @ort_raum_typen Liste der Raeume je Type +* +* @param $uid Aktueller Anwender +* @param $raumtyp_kurzbz Raumtype +* +* @return array Tablle der Raeume +* +*/ +function ort_raum_typen($uid='',$raumtyp_kurzbz='',$datum='') +{ + $htmlout=""; + if (empty($raumtyp_kurzbz)) + return raum_typen($uid); + + if (empty($datum)) + $datum=date("Ymd", mktime(0,0,0,date("m"),date("d"),date("y"))); + + + if (!$db = new basis_db()) + return 'Fehler beim Oeffnen der Datenbankverbindung'; + + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + $htmlout.='
'; + $htmlout.=''; + $htmlout.='Raumtypen'; + $htmlout.=''; + $htmlout.=''; + $htmlout.='
'; +// ------------------------------------------------------------------------------------------ +// Alle Raum Typen zur Selektion +// ------------------------------------------------------------------------------------------ + $qry=""; + $qry.=" SELECT tbl_raumtyp.raumtyp_kurzbz,tbl_raumtyp.beschreibung "; + $qry.=" ,tbl_ortraumtyp.ort_kurzbz "; + $qry.=" ,tbl_ort.bezeichnung ,tbl_ort.aktiv "; + $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 tbl_raumtyp.raumtyp_kurzbz like E'%".addslashes(trim($raumtyp_kurzbz))."%' "; + $qry.=" order by tbl_raumtyp.raumtyp_kurzbz ,tbl_ortraumtyp.ort_kurzbz "; + $qry.=" ; "; + if(!$result=$db->db_query($qry)) + return 'Probleme beim lesen der Raumtyptabelle '.$db->db_last_error(); + + $row_raum=array(); + if ($tmp_row_raum=$db->db_num_rows($result)) + { + while($tmp_row_raum = $db->db_fetch_object($result)) + $row_raum[]=$tmp_row_raum; + } + + $row_stunde=getAktuelleStd($db); + // Plausib Stunde + $row_stunde[0]->stunde=(isset($row_stunde[0]->stunde)?$row_stunde[0]->stunde:0); + $stunde_von=$row_stunde[0]->stunde; + $stunde_bis=$row_stunde[0]->stunde; + + $htmlout.=''; + reset($row_raum); + for ($i=0;$iort_kurzbz; + $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="besetzt"; + } + + $ort_kurzbz=$row_raum[$i]->ort_kurzbz; + $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="2 Einheiten frei"; + } + + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + } + $htmlout.='
'; + $htmlout.=''; + $htmlout.=trim($ort_kurzbz); + $htmlout.=''; + $htmlout.=''; + $htmlout.=''.$farbe.'
'; + return $htmlout; +} +//------------------------------------------------------------------------------------------- +/* +* +* @ort_plan_raum_typen Stundenplan zum Raum +* +* @param $uid Aktueller Anwender +* @param $raumtyp_kurzbz Raumtype +* @param $ort_kurzbz Ortsbezeichnung +* @param $datum Datum +* +* @return array Tablle des Reservierung im Detail +* +*/ +function ort_plan_raum_typen($uid='',$raumtyp_kurzbz='',$ort_kurzbz='',$datum='') +{ + $htmlout=""; + if (empty($raumtyp_kurzbz)) + return raum_typen($uid); + + if (!$db = new basis_db()) + return 'Fehler beim Oeffnen der Datenbankverbindung'; + + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + + $htmlout.=''; + $htmlout.=''; + $htmlout.=''; + + + $htmlout.='
'; + $htmlout.=''; + $htmlout.=$raumtyp_kurzbz; + $htmlout.=''; + $htmlout.=''; + $htmlout.='
'; + $htmlout.=''; + $htmlout.=$ort_kurzbz; + $htmlout.=''; + $htmlout.=''; + $htmlout.='
'; + + $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(); + $htmlout.=''; + + + + while($row_stunden = $db->db_fetch_object($result)) + { + $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_stunden->beginn_time=date('Hi',$row_stunden->time_beginn); + $row_stunden->ende_time=date('Hi',$row_stunden->time_ende); + $row_stunden->aktiv_time=date('Hi'); + + $htmlout.=''; + if ($row_stunden->beginn_time<=$row_stunden->aktiv_time + && $row_stunden->ende_time>=$row_stunden->aktiv_time ) + $htmlout.=''; + else + $htmlout.=''; + + $htmlout.=''; + $htmlout.=''; + } + $htmlout.='
'.$row_stunden->beginn_show.'
'.$row_stunden->ende_show.'
'.$row_stunden->beginn_show.'
'.$row_stunden->ende_show.'
'; + $row_raum=array(); + $kalenderwoche=""; + $studiengang_kz=""; + $semester=""; + $verband=""; + $gruppe=""; + $uids=""; + $stunde_von=$row_stunden->stunde; + $stunde_bis=$row_stunden->stunde; + $row_raum=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis,$uids,$kalenderwoche,$studiengang_kz,$semester,$verband,$gruppe); + if (is_array($row_raum) && count($row_raum)>0) + { + for ($i=0;$istundenplan_id) + { + if ($row_info=stundenplan_detail($db,$row_raum[$i]->stundenplan_id)) + $htmlout.=$row_info->lehrfach.'-'.$row_info->lehrform.'
'.$row_info->ort_kurzbz; + } + else if ($row_raum[$i]->reservierung_id) + { + if ($row_info=reservierung_detail($db,$row_raum[$i]->reservierung_id)) + $htmlout.=(!empty($row_info->titel)?$row_info->titel:$row_info->beschreibung).'
'.$row_info->ort_kurzbz; + } + break; + } + } + $htmlout.='
'; + return $htmlout; +} +#------------------------------------------------------------------------------------------- +/* +* +* @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='".addslashes(trim($uid))."' 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,studiengang_kz,semester,verband,gruppe FROM campus.vw_student where uid='".addslashes(trim($uid))."' LIMIT 1 ; "; + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Studenten '.$db->db_last_error()); + 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; +} +?> \ No newline at end of file