diff --git a/cis/index.php b/cis/index.php index ec8d08160..6c5e2f8fa 100644 --- a/cis/index.php +++ b/cis/index.php @@ -16,9 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Oesterreicher , + * Rudolf Hangl < rudolf.hangl@technikum-wien.at >, + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > and + * Andreas Moik . * */ require_once('../config/cis.config.inc.php'); @@ -27,6 +28,8 @@ require_once('../include/sprache.class.php'); require_once('../include/phrasen.class.php'); require_once('../include/mail.class.php'); require_once('../include/student.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/studiensemester.class.php'); /** * Prueft die URL damit keine boesen URLS uebergeben werden koennen @@ -84,18 +87,26 @@ else $menu = 'menu.php?content_id='.$id; $user = get_uid(); -$student = new student(); -if($student->load($user)) +$prestudent = new prestudent(); +$prestudent->getPrestudentsFromUid($user); + +$newsGetArr = array(); + +if(count($prestudent->result) > 0) { - $studiengang_kz=$student->studiengang_kz; - $semester=$student->semester; - $verband=$student->verband; -} -else -{ - $studiengang_kz=''; - $semester=''; - $verband=''; + foreach($prestudent->result as $ps) + { + $student = new student(); + $studsem = new studiensemester(); + + $student->load_studentlehrverband($ps->prestudent_id, $studsem->getaktorNext()); + $newsGetArr[] = array("studiengang_kz" => $ps->studiengang_kz,"semester" => $student->semester); + + if($student->verband == "I" && $student->semester == "0") + { + $newsGetArr[] = array("studiengang_kz" => "10006","semester" => 0); + } + } } if(isset($_GET['content'])) @@ -105,15 +116,9 @@ if(isset($_GET['content'])) } else { - if($studiengang_kz=='' && $semester=='' && $verband=='' ) - $content = '../cms/news.php'; - else - if ($semester=='0' && $verband=='I') - $content = '../cms/news.php?studiengang_kz=10006&semester=0'; - else - $content = '../cms/news.php?studiengang_kz='.$studiengang_kz.'&semester='.$semester.''; + $content = '../cms/news.php?newsReq='.json_encode($newsGetArr); } - + $sprache = getSprache(); $p = new phrasen($sprache); $db = new basis_db(); @@ -230,7 +235,7 @@ function loadampel() - + -->';*/ diff --git a/cis/private/lehre/abgabe_student_file.php b/cis/private/lehre/abgabe_student_file.php index 9e6e795d4..4e8f1a581 100755 --- a/cis/private/lehre/abgabe_student_file.php +++ b/cis/private/lehre/abgabe_student_file.php @@ -15,14 +15,15 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > and + * Andreas Moik . */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/phrasen.class.php'); -require_once('../../../include/student.class.php'); +require_once('../../../include/prestudent.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); @@ -36,7 +37,7 @@ if(isset($_GET['student_uid'])) $uid = $_GET['student_uid']; else die($p->t('global/fehlerBeiDerParameteruebergabe')); - + if(isset($_GET['abgabe_id'])) $id = $_GET['abgabe_id']; else @@ -44,10 +45,10 @@ else if(!is_numeric($id) || $id=='') die($p->t('global/fehlerBeiDerParameteruebergabe')); - -$student = new student(); -if(!$student->load($uid)) - die('Student wurde nicht gefunden'); + +$prestudent = new prestudent(); +if(!$prestudent->getPrestudentsFromUid($uid) || count($prestudent->result) < 1) + die('Keinen Studenten gefunden'); if($getuid!=$uid) { @@ -70,4 +71,4 @@ if(file_exists($filename)) } else echo 'Datei existiert nicht'; -?> \ No newline at end of file +?> diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php index 85126e44a..e1c612282 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -19,7 +19,8 @@ * MA 02110-1301, USA. * * - * Authors: Stefan Puraner + * Authors: Stefan Puraner and + * Andreas Moik . */ require_once('../../../../config/cis.config.inc.php'); @@ -171,16 +172,17 @@ $rechte->getBerechtigungen($uid);
-
-

t('pruefung/anmeldungsliste'); ?>

+
+

t('pruefung/anmeldungsliste'); ?>

result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin')) - die('Sie haben keine Berechtigung für diese Seite'); + die('Sie haben keine Berechtigung für diese Seite'); $termin_id = filter_input(INPUT_GET,"termin_id"); $lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id"); @@ -188,96 +190,101 @@ $rechte->getBerechtigungen($uid); if(is_null($lehrveranstaltung_id)) { - die($p->t('pruefung/fehlenderParam_lvid')); + die($p->t('pruefung/fehlenderParam_lvid')); } else if(is_null($termin_id)) { - die($p->t('pruefung/fehlenderParam_terminid')); + die($p->t('pruefung/fehlenderParam_terminid')); } else if(is_null($studiensemester)) { - die($p->t('pruefung/fehlenderParam_studiensemester')); + die($p->t('pruefung/fehlenderParam_studiensemester')); } else { - $datum = new datum(); - $stdsem = new studiensemester($studiensemester); - $pruefungsanmeldung = new pruefungsanmeldung(); - $anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt"); - $lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id); - $einzeln = FALSE; - if(!empty($anmeldungen)) - { - $pruefung = new pruefungCis($anmeldungen[0]->pruefung_id); - $pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id); - $mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid); - if($pruefung->einzeln) + $datum = new datum(); + $stdsem = new studiensemester($studiensemester); + $pruefungsanmeldung = new pruefungsanmeldung(); + $anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt"); + $lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id); + $einzeln = FALSE; + if(!empty($anmeldungen)) { - $einzeln = TRUE; - $pruefungsintervall = $pruefung->pruefungsintervall; - } + $pruefung = new pruefungCis($anmeldungen[0]->pruefung_id); + $pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id); + $mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid); + if($pruefung->einzeln) + { + $einzeln = TRUE; + $pruefungsintervall = $pruefung->pruefungsintervall; + } - ?> - t('global/lehrveranstaltung'); ?>: bezeichnung?>
- t('global/studiensemester'); ?>: bezeichnung?>
- t('pruefung/pruefer'); ?>: getFullName(FALSE)?>
- + ?> + t('global/lehrveranstaltung'); ?>: bezeichnung?>
+ t('global/studiensemester'); ?>: bezeichnung?>
+ t('pruefung/pruefer'); ?>: getFullName(FALSE)?>
+
- - - - - - - - - + + + + + + + + + - uid); - $prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id); + $prestudent = new prestudent(); + $prestudent->getPrestudentsById($anmeldung->uid); - if($einzeln) - { - $date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s"); - $date = strtotime($date); - $date = $date+(60*$pruefungsintervall*($count)); - $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("h:i",$date); - $count++; - } - else - { - $date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i"); - } - echo ''; + foreach($prestudent->result as $ps) + { + $prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id); + + if($einzeln) + { + $date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s"); + $date = strtotime($date); + $date = $date+(60*$pruefungsintervall*($count)); + $date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("h:i",$date); + $count++; + } + else + { + $date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i"); + } + echo ''; echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; echo ''; echo ''; echo ''; - echo ''; + echo ''; + } } - ?> + ?> - t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?>
-
#t('global/vorname'); ?>t('global/nachname'); ?>t('global/matrikelnummer'); ?>t('global/datum'); ?>t('benotungstool/note'); ?>t('global/anmerkung'); ?>
#t('global/vorname'); ?>t('global/nachname'); ?>t('global/matrikelnummer'); ?>t('global/datum'); ?>t('benotungstool/note'); ?>t('global/anmerkung'); ?>
'.$anmeldung->reihung.''.$student->vorname.''.$student->nachname.''.$student->matr_nr.''.$ps->vorname.''.$ps->nachname.''.$ps->matr_nr.''.$date.'
+
diff --git a/cis/private/lvplan/stpl_week_anzahl_studenten.php b/cis/private/lvplan/stpl_week_anzahl_studenten.php index 28747e46b..1ad9af3a1 100644 --- a/cis/private/lvplan/stpl_week_anzahl_studenten.php +++ b/cis/private/lvplan/stpl_week_anzahl_studenten.php @@ -17,8 +17,9 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Simane-Sequens . + * Rudolf Hangl , + * Gerald Simane-Sequens and + * Andreas Moik . */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); @@ -284,19 +285,18 @@ $max_person=$row_anz->max_person+$max_person; $row_anz->verband=trim($row_anz->verband); $row_anz->gruppe=trim($row_anz->gruppe); - $row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz); + $row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz); $stsem=$ss; - $gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null); - $student=new student(); - + $gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null); + $row_anz->anz=0; if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem)) $row_anz->anz=count($result); - if (empty($row_anz->anz)) + if (empty($row_anz->anz)) $fehler=true; $lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester; diff --git a/cis/private/mailverteiler.php b/cis/private/mailverteiler.php index f320eba3b..e16febab1 100644 --- a/cis/private/mailverteiler.php +++ b/cis/private/mailverteiler.php @@ -26,12 +26,12 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/gruppe.class.php'); require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); -require_once('../../include/student.class.php'); +require_once('../../include/prestudent.class.php'); require_once('../../include/lehrverband.class.php'); require_once('../../include/benutzerfunktion.class.php'); require_once('../../include/phrasen.class.php'); - -$sprache = getSprache(); + +$sprache = getSprache(); $p=new phrasen($sprache); if (!$db = new basis_db()) @@ -41,7 +41,9 @@ $user=get_uid(); $is_lector=check_lektor($user); $is_stdv=false; -$std_obj = new student($user); +$prestudent = new prestudent(); +$prestudent->getPrestudentsFromUid($user); + //Studentenvertreter duerfen den Verteiler tw_std oeffnen if(!$is_lector) @@ -107,7 +109,7 @@ if(!$is_lector) } else if (document.all && document.all[x]) { document.all[x].visibility = 'visible'; document.all[x].style.display='inline'; - } else if (document.layers && document.layers[x]) { + } else if (document.layers && document.layers[x]) { document.layers[x].visibility = 'show'; document.layers[x].style.display='inline'; } @@ -123,10 +125,10 @@ if(!$is_lector) { document.getElementById(x).style.visibility = 'hidden'; document.getElementById(x).style.display = 'none'; - } else if (document.all && document.all[x]) { + } else if (document.all && document.all[x]) { document.all[x].visibility = 'hidden'; document.all[x].style.display='none'; - } else if (document.layers && document.layers[x]) { + } else if (document.layers && document.layers[x]) { document.layers[x].visibility = 'hide'; document.layers[x].style.display='none'; } @@ -309,30 +311,38 @@ if(!$is_lector) } echo "
"; } - if($row->studiengang_kz!=0 && $row_stud->anzahl>0) - { - echo "".$p->t('mailverteiler/alleStudentenDiesesStudienganges').""; + if($row->studiengang_kz!=0 && $row_stud->anzahl>0) + { + echo "".$p->t('mailverteiler/alleStudentenDiesesStudienganges').""; - // ffe, 20060508: Display the opening link for department dispatchers only for students of the particular department - if($is_lector || $std_obj->studiengang_kz==$row->studiengang_kz || !MAILVERTEILER_SPERRE) - { - echo " "; - if(MAILVERTEILER_SPERRE) - echo ''.$p->t('mailverteiler/verteilerOeffnen').''; - /* open a popup containing the final dispatcher address */ - echo " kuerzel)."_std@".DOMAIN."\" class=\"Item\">".strtolower($row->kuerzel)."_std@".DOMAIN.""; - } - else - { - echo "  "; - echo " gesperrt"; - } + $hasStudiengang_kz = false; + foreach($prestudent->result as $ps) + { + if($row->studiengang_kz == $ps->studiengang_kz) + $hasStudiengang_kz = true; + } - echo ' '.$p->t('mailverteiler/personen').' '; - echo "\n"; - } - echo "\n"; - foreach($grp_obj->result as $row1) + + // ffe, 20060508: Display the opening link for department dispatchers only for students of the particular department + if($is_lector || $hasStudiengang_kz || !MAILVERTEILER_SPERRE) + { + echo " "; + if(MAILVERTEILER_SPERRE) + echo ''.$p->t('mailverteiler/verteilerOeffnen').''; + /* open a popup containing the final dispatcher address */ + echo " kuerzel)."_std@".DOMAIN."\" class=\"Item\">".strtolower($row->kuerzel)."_std@".DOMAIN.""; + } + else + { + echo "  "; + echo " gesperrt"; + } + + echo ' '.$p->t('mailverteiler/personen').' '; + echo "\n"; + } + echo "\n"; + foreach($grp_obj->result as $row1) { if(!$row1->aktiv) continue; diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index d9ca515f5..a927fd359 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -292,8 +292,8 @@ if(isset($prestudent_id)) $db = new basis_db(); $datum_obj = new datum(); // Student Laden - $student = new student(); - $student->load($uid); + $benutzer = new benutzer(); + $benutzer->load($uid); // ersten Status holen $prestudent = new prestudent(); $prestudent->getFirstStatus($prestudent_id, 'Student'); @@ -375,7 +375,7 @@ if(isset($prestudent_id)) $lv->loadLehrveranstaltungStudienplan($studienplan_id); foreach($lv->lehrveranstaltungen as $row_lva) $lv_arr[$row_lva->lehrveranstaltung_id]=$row_lva; - echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )

"; + echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $benutzer->vorname $benutzer->nachname ( $benutzer->uid )

"; echo ' @@ -449,7 +449,7 @@ echo ' function drawTree($tree, $depth) { global $uid, $stsem_arr, $noten_arr, $lvangebot_arr; - global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student; + global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $benutzer; foreach($tree as $row_tree) { diff --git a/cms/menu/menu_addon_freifaecher.inc.php b/cms/menu/menu_addon_freifaecher.inc.php index 33e04abc4..80120a2b9 100755 --- a/cms/menu/menu_addon_freifaecher.inc.php +++ b/cms/menu/menu_addon_freifaecher.inc.php @@ -15,7 +15,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Andreas Oesterreicher + * Authors: Andreas Oesterreicher and + * Andreas Moik . */ /** * Menue Addon fuer die Darstellung der Freifaecher @@ -50,12 +51,12 @@ class menu_addon_freifaecher extends menu_addon } $this->block.= ''; $this->output(); } - + private function CutString($strVal, $limit) { if(mb_strlen($strVal) > $limit+3) @@ -70,4 +71,4 @@ class menu_addon_freifaecher extends menu_addon } new menu_addon_freifaecher(); -?> \ No newline at end of file +?> diff --git a/cms/menu/menu_addon_lehrveranstaltungen.inc.php b/cms/menu/menu_addon_lehrveranstaltungen.inc.php index 9100f6a2b..88133f20d 100755 --- a/cms/menu/menu_addon_lehrveranstaltungen.inc.php +++ b/cms/menu/menu_addon_lehrveranstaltungen.inc.php @@ -15,7 +15,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Andreas Oesterreicher + * Authors: Andreas Oesterreicher and + * Andreas Moik . */ /** * Menue Addon zur Auswahl von LVs @@ -35,7 +36,7 @@ require_once(dirname(__FILE__).'/../../include/lehrveranstaltung.class.php'); require_once(dirname(__FILE__).'/../../include/organisationsform.class.php'); require_once(dirname(__FILE__).'/../../include/functions.inc.php'); require_once(dirname(__FILE__).'/../../include/phrasen.class.php'); -require_once(dirname(__FILE__).'/../../include/student.class.php'); +require_once(dirname(__FILE__).'/../../include/prestudent.class.php'); class menu_addon_lehrveranstaltungen extends menu_addon { @@ -49,11 +50,13 @@ class menu_addon_lehrveranstaltungen extends menu_addon $sprache = getSprache(); $user = get_uid(); - $student = new student(); - if($student->load($user)) + $prestudent = new prestudent(); + $prestudent->getPrestudentsFromUid($user); + + if(count($prestudent->result) > 0) { - $studiengang_kz=$student->studiengang_kz; - $semester=$student->semester; + $studiengang_kz=$prestudent->result[0]->studiengang_kz; + $semester=$prestudent->result[0]->semester; } $p = new phrasen($sprache); @@ -158,7 +161,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
'; $this->block.= ''; $this->block.=' diff --git a/cms/news.php b/cms/news.php index 651262d85..6dec7d1a1 100755 --- a/cms/news.php +++ b/cms/news.php @@ -1,443 +1,463 @@ -, - * Andreas Oesterreicher and - * Karl Burkhart . - */ -/** - * Laedt die News und zeigt diese an - * - * Wenn kein Parameter uebergeben wird, werden nur die allgemeinen News angezeigt - * Wenn ein Studiengang uebergeben wird, werden rechts neben den News Studiengangsdetails angezeigt - * - * Parameter: - * stg_kz Studiengangskennzahl - * semester Semester - * edit Edit Buttons anzeigen - * - */ -require_once('../config/cis.config.inc.php'); -require_once('../include/content.class.php'); -require_once('../include/template.class.php'); -require_once('../include/functions.inc.php'); -require_once('../include/news.class.php'); -require_once('../include/kontakt.class.php'); -require_once('../include/benutzerfunktion.class.php'); -require_once('../include/studiengang.class.php'); -require_once('../include/mitarbeiter.class.php'); -require_once('../include/datum.class.php'); -require_once('../include/phrasen.class.php'); -require_once('../include/student.class.php'); -require_once('../include/benutzer.class.php'); -require_once('../include/ort.class.php'); -require_once('../include/funktion.class.php'); - -$sprache = getSprache(); - -$datum_obj = new datum(); -//XML Content laden -$content = new content(); -$db = new basis_db(); - -$infoscreen = isset($_GET['infoscreen']); - -if(!$infoscreen) -{ - $user = get_uid(); - - //Zum anzeigen der Studiengang-Details neben den News - $student = new student(); - if($student->load($user)) - { - $stg_kz=$student->studiengang_kz; - $sem=$student->semester; - $ver=$student->verband; - } - else - { - $stg_kz=0; - $sem=NULL; - $ver=NULL; - } -} -else -{ - $stg_kz=0; - $sem=NULL; - $ver=NULL; -} -$studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:$stg_kz); -$semester = (isset($_GET['semester'])?$_GET['semester']:$sem); -$mischen = (isset($_GET['mischen'])?$_GET['mischen']:true); -$titel = (isset($_GET['titel'])?$_GET['titel']:''); -$editable = isset($_GET['edit']); -$news = new news(); -$all=false; - -if(isset($_GET['sichtbar']) && ($_GET['sichtbar'])=="false") - $sichtbar = false; -else - $sichtbar = true; - -//Im Editiermodus werden auch die zukuenftigen News angezeigt -if($editable) - $all=true; - -$news->getnews(MAXNEWSALTER, $studiengang_kz, $semester, $all, null, MAXNEWS, $mischen); - -$xml = ''; - -foreach($news->result as $row) -{ - $content = new content(); - $content->getContent($row->content_id, $sprache,null, $sichtbar, true); - - //das Datum des News Eintrages ist nicht im XML enthalten, es muss extra hinzugefuegt werden - $datum = 'formatDatum($row->datum,'d.m.Y').']]>'; - - if($studiengang_kz<>0 && $editable && $row->studiengang_kz==0) - { - continue; - } - //Wenn der Parameter edit uebergeben wird, dann wird neben dem Datum ein Link zum Editieren des Eintrags angezeigt - if($editable) - $id = 'news_id.']]>'; - else - $id=''; - $xml .= mb_substr($content->content,0,mb_strlen($content->content)-7).$datum.$id.mb_substr($content->content,-7); - //$xml .= $content->content; -} - -if($studiengang_kz!=0 && !$editable && !$infoscreen) // && $studiengang_kz==10006 && !$semester) - $xml.=getStgContent($studiengang_kz, $semester, $sprache); - -if($studiengang_kz!=0) -{ - $stg_obj = new studiengang(); - $stg_obj->load($studiengang_kz); - $xml.=''.$stg_obj->bezeichnung.''; -} - -if($titel!='') -{ - $xml.=''.$titel.''; -} - -$xml .= ''; - -$doc = new DOMDocument(); -$doc->loadXML($xml); - -//XSLT Vorlage laden -$template = new template(); - -if($infoscreen) -{ - if(!$template->load('news_infoscreen')) - die($template->errormsg); -} -else -{ - if(!$template->load('news')) - die($template->errormsg); -} - -$xsltemplate = new DOMDocument(); -$xsltemplate->loadXML($template->xslt_xhtml); - -//Transformation -$processor = new XSLTProcessor(); -$processor->importStylesheet($xsltemplate); - -echo $processor->transformToXML($doc); - -/** - * Liefert ein XML mit den Details eines Studiengangs - * welche dann neben den News angezeigt werden - * - * @param $studiengang_kz - * @param $semester - * @param $sprache - */ -function getStgContent($studiengang_kz, $semester, $sprache) -{ - $p = new phrasen($sprache); - - $xml = ''; - - $studiengang = new studiengang(); - $studiengang->load($studiengang_kz); - - - //Studiengangsleitung - $stg_oe_obj = new studiengang(); - $stgl = $stg_oe_obj->getLeitung($studiengang_kz); - //$xml.='t('global/studiengangsmanagement').']]>'; - $xml.='t('global/studiengangsleitung').']]>'; - if(count($stgl)>0) - { - foreach ($stgl as $uid) - { - $row_course_leader = new mitarbeiter($uid); - $xml.=''; - $xml.='titelpre.' '.$row_course_leader->vorname.' '.$row_course_leader->nachname.' '.$row_course_leader->titelpost.']]>'; - - if(isset($row_course_leader) && $row_course_leader->uid != "") - { - $alias = new benutzer(); - $alias->load($uid); - if($alias->alias!='') - $xml.='alias.'@'.DOMAIN.']]>'; - else - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - } - - if(isset($row_course_leader) && $row_course_leader->telefonklappe != "") - { - $hauptnummer=''; - - if($row_course_leader->standort_id!='') - { - $kontakt = new kontakt(); - $kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon'); - $hauptnummer = $kontakt->kontakt; - } - - $xml.= 'telefonklappe.']]>'; - } - if(isset($row_course_leader) && $row_course_leader->ort_kurzbz != "") - { - $ort = new ort(); - $ort->load($row_course_leader->ort_kurzbz); - $xml.='planbezeichnung.']]>'; - } - $xml.=''; - } - } - - //geschaeftsf. Leitung auselesen - $xml.='t('global/geschaeftsfuehrendeltg').']]>'; - $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('gLtg', $studiengang->oe_kurzbz); - foreach($benutzerfkt->result as $row) - { - $ma = new mitarbeiter(); - $ma->load($row->uid); - - if($ma->uid!='' && $ma->bnaktiv) - { - $xml.=''; - - $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>'; - $alias = new benutzer(); - $alias->load($ma->uid); - if($alias->alias!='') - $xml.='alias.'@'.DOMAIN.']]>'; - else - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - - if($ma->telefonklappe != '') - { - if($ma->standort_id!='') - { - $kontakt = new kontakt(); - $kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon'); - $hauptnummer = $kontakt->kontakt; - } - $xml.= 'telefonklappe.']]>'; - } - if($ma->ort_kurzbz != "") - { - $ort = new ort(); - $ort->load($ma->ort_kurzbz); - $xml.='planbezeichnung.']]>'; - } - - $xml.=''; - } - } - - //Studiengangsleiter Stellvertreter auslesen - $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('stvLtg', $studiengang->oe_kurzbz); - $xml.='t('global/stellvertreter').']]>'; - foreach($benutzerfkt->result as $row) - { - $ma = new mitarbeiter(); - $ma->load($row->uid); - - if($ma->uid!='' && $ma->bnaktiv) - { - $xml.=''; - - $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>'; - $alias = new benutzer(); - $alias->load($ma->uid); - if($alias->alias!='') - $xml.='alias.'@'.DOMAIN.']]>'; - else - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - - if($ma->telefonklappe != '') - { - if($ma->standort_id!='') - { - $kontakt = new kontakt(); - $kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon'); - $hauptnummer = $kontakt->kontakt; - } - $xml.= 'telefonklappe.']]>'; - } - if($ma->ort_kurzbz != "") - { - $ort = new ort(); - $ort->load($ma->ort_kurzbz); - $xml.='planbezeichnung.']]>'; - } - - $xml.=''; - } - } - - //Assistenz - $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('ass', $studiengang->oe_kurzbz); - $xml.='t('global/sekretariat').']]>'; - foreach($benutzerfkt->result as $row) - { - $ma = new mitarbeiter(); - $ma->load($row->uid); - - if($ma->uid!='' && $ma->bnaktiv) - { - $xml.=''; - - $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>'; - $alias = new benutzer(); - $alias->load($ma->uid); - if($alias->alias!='') - $xml.='alias.'@'.DOMAIN.']]>'; - else - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - - if($ma->telefonklappe != '') - { - if($ma->standort_id!='') - { - $kontakt = new kontakt(); - $kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon'); - $hauptnummer = $kontakt->kontakt; - } - $xml.= 'telefonklappe.']]>'; - } - if($ma->ort_kurzbz != "") - { - $ort = new ort(); - $ort->load($ma->ort_kurzbz); - $xml.='planbezeichnung.']]>'; - } - - $xml.=''; - } - } - - //Zusatzinfo (Oeffnungszeiten etc) - $xml.='zusatzinfo_html.']]>'; - - //Hochschulvertretung - $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('hsv'); - $xml.='t('global/hochschulvertretung').']]>'; - foreach($benutzerfkt->result as $row) - { - $bn = new benutzer(); - $bn->load($row->uid); - - $funktion = new funktion(); - $funktion->load($row->funktion_kurzbz); - if($bn->uid!='' && $bn->bnaktiv) - { - $xml.=''; - $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - $xml.=''; - } - } - - //Studentenvertretung - $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz); - $xml.='t('global/studentenvertreter').' '.strtoupper($studiengang->oe_kurzbz).']]>'; - foreach($benutzerfkt->result as $row) - { - $bn = new benutzer(); - $bn->load($row->uid); - - $funktion = new funktion(); - $funktion->load($row->funktion_kurzbz); - if($bn->uid!='' && $bn->bnaktiv) - { - $xml.=''; - $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - $xml.=''; - } - } - - //Jahrgangsvertretung - $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('jgv', $studiengang->oe_kurzbz, $semester); - $xml.='t('global/jahrgangsvertretung').' '.$semester.'. '.$p->t('global/semester').']]>'; - foreach($benutzerfkt->result as $row) - { - $bn = new benutzer(); - $bn->load($row->uid); - - $funktion = new funktion(); - $funktion->load($row->funktion_kurzbz); - if($bn->uid!='' && $bn->bnaktiv) - { - $xml.=''; - $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; - $xml.='uid.'@'.DOMAIN.']]>'; - $xml.='uid.']]>'; - $xml.=''; - } - } - - if(CIS_EXT_MENU) - { - $xml.=' - t('global/lehrziele').']]> - t('global/allgemeinerdownload').']]> - t('global/newsgroups').']]> - kuerzel).']]> - kurzbzlang).']]> - '; - } - - $xml.=''; - return $xml; -} -?> \ No newline at end of file +, + * Andreas Oesterreicher , + * Karl Burkhart and + * Andreas Moik . + */ +/** + * Laedt die News und zeigt diese an + * + * Wenn kein Parameter uebergeben wird, werden nur die allgemeinen News angezeigt + * Wenn ein Studiengang uebergeben wird, werden rechts neben den News Studiengangsdetails angezeigt + * + * Parameter: + * stg_kz Studiengangskennzahl + * semester Semester + * edit Edit Buttons anzeigen + * + */ +require_once('../config/cis.config.inc.php'); +require_once('../include/content.class.php'); +require_once('../include/template.class.php'); +require_once('../include/functions.inc.php'); +require_once('../include/news.class.php'); +require_once('../include/kontakt.class.php'); +require_once('../include/benutzerfunktion.class.php'); +require_once('../include/studiengang.class.php'); +require_once('../include/mitarbeiter.class.php'); +require_once('../include/datum.class.php'); +require_once('../include/phrasen.class.php'); +require_once('../include/student.class.php'); +require_once('../include/benutzer.class.php'); +require_once('../include/ort.class.php'); +require_once('../include/funktion.class.php'); + +$sprache = getSprache(); + +$datum_obj = new datum(); +//XML Content laden +$content = new content(); +$db = new basis_db(); + + +$newsReq = array(); +if(isset($_GET["newsReq"])) + if($buf = json_decode($_GET["newsReq"])) + $newsReq = $buf; + +$infoscreen = isset($_GET['infoscreen']); + + + +if($infoscreen || count($newsReq) < 1) +{ + $newsReq[] = getNRObj(0,null); +} +else +{ + $user = get_uid(); + + //Zum anzeigen der Studiengang-Details neben den News + $student = new student(); + if($student->load($user)) + { + $newsReq[] = getNRObj($student->studiengang_kz,$student->semester); + } +} + +$mischen = (isset($_GET['mischen'])?$_GET['mischen']:true); +$titel = (isset($_GET['titel'])?$_GET['titel']:''); +$editable = isset($_GET['edit']); +$news = new news(); +$all=false; + + + +if(isset($_GET['sichtbar']) && ($_GET['sichtbar'])=="false") + $sichtbar = false; +else + $sichtbar = true; + +//Im Editiermodus werden auch die zukuenftigen News angezeigt +if($editable) + $all=true; + +$newsArr = array(); + +$xml = ''; + +foreach($newsReq as $nr) +{ + $news->getnews(MAXNEWSALTER, $nr->studiengang_kz, $nr->semester, $all, null, MAXNEWS, $mischen); + foreach($news->result as $nws) + { + $found = false; + foreach($newsArr as $oldN) + { + if($oldN->news_id == $nws->news_id) + $found = true; + } + if(!$found) + { + $content = new content(); + $content->getContent($nws->content_id, $sprache,null, $sichtbar, true); + + //das Datum des News Eintrages ist nicht im XML enthalten, es muss extra hinzugefuegt werden + $datum = 'formatDatum($nws->datum,'d.m.Y').']]>'; + + if(!($nr->studiengang_kz<>0 && $editable && $nws->studiengang_kz==0)) + { + //Wenn der Parameter edit uebergeben wird, dann wird neben dem Datum ein Link zum Editieren des Eintrags angezeigt + if($editable) + $id = 'news_id.']]>'; + else + $id=''; + $xml .= mb_substr($content->content,0,mb_strlen($content->content)-7).$datum.$id.mb_substr($content->content,-7); + //$xml .= $content->content; + $newsArr[] = $nws; + } + if($nr->studiengang_kz != 0) + { + if(!$editable && !$infoscreen) + $xml.=getStgContent($nr->studiengang_kz, $nr->semester, $sprache); + } + } + } +} + + +if($titel!='') +{ + $xml.=''.$titel.''; +} + +$xml .= ''; + +$doc = new DOMDocument(); +$doc->loadXML($xml); + +//XSLT Vorlage laden +$template = new template(); + +if($infoscreen) +{ + if(!$template->load('news_infoscreen')) + die($template->errormsg); +} +else +{ + if(!$template->load('news')) + die($template->errormsg); +} + +$xsltemplate = new DOMDocument(); +$xsltemplate->loadXML($template->xslt_xhtml); + +//Transformation +$processor = new XSLTProcessor(); +$processor->importStylesheet($xsltemplate); + +echo $processor->transformToXML($doc); + +/** + * Liefert ein XML mit den Details eines Studiengangs + * welche dann neben den News angezeigt werden + * + * @param $studiengang_kz + * @param $semester + * @param $sprache + */ +function getStgContent($studiengang_kz, $semester, $sprache) +{ + $p = new phrasen($sprache); + + $xml = ''; + + $studiengang = new studiengang(); + $studiengang->load($studiengang_kz); + + $xml.='t('global/studiengang').']]>'; + $xml.=''.$studiengang->bezeichnung.''; + + //Studiengangsleitung + $stg_oe_obj = new studiengang(); + $stgl = $stg_oe_obj->getLeitung($studiengang_kz); + //$xml.='t('global/studiengangsmanagement').']]>'; + $xml.='t('global/studiengangsleitung').']]>'; + if(count($stgl)>0) + { + foreach ($stgl as $uid) + { + $row_course_leader = new mitarbeiter($uid); + $xml.=''; + $xml.='titelpre.' '.$row_course_leader->vorname.' '.$row_course_leader->nachname.' '.$row_course_leader->titelpost.']]>'; + + if(isset($row_course_leader) && $row_course_leader->uid != "") + { + $alias = new benutzer(); + $alias->load($uid); + if($alias->alias!='') + $xml.='alias.'@'.DOMAIN.']]>'; + else + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + } + + if(isset($row_course_leader) && $row_course_leader->telefonklappe != "") + { + $hauptnummer=''; + + if($row_course_leader->standort_id!='') + { + $kontakt = new kontakt(); + $kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon'); + $hauptnummer = $kontakt->kontakt; + } + + $xml.= 'telefonklappe.']]>'; + } + if(isset($row_course_leader) && $row_course_leader->ort_kurzbz != "") + { + $ort = new ort(); + $ort->load($row_course_leader->ort_kurzbz); + $xml.='planbezeichnung.']]>'; + } + $xml.=''; + } + } + + //geschaeftsf. Leitung auselesen + $xml.='t('global/geschaeftsfuehrendeltg').']]>'; + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('gLtg', $studiengang->oe_kurzbz); + foreach($benutzerfkt->result as $row) + { + $ma = new mitarbeiter(); + $ma->load($row->uid); + + if($ma->uid!='' && $ma->bnaktiv) + { + $xml.=''; + + $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>'; + $alias = new benutzer(); + $alias->load($ma->uid); + if($alias->alias!='') + $xml.='alias.'@'.DOMAIN.']]>'; + else + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + + if($ma->telefonklappe != '') + { + if($ma->standort_id!='') + { + $kontakt = new kontakt(); + $kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon'); + $hauptnummer = $kontakt->kontakt; + } + $xml.= 'telefonklappe.']]>'; + } + if($ma->ort_kurzbz != "") + { + $ort = new ort(); + $ort->load($ma->ort_kurzbz); + $xml.='planbezeichnung.']]>'; + } + + $xml.=''; + } + } + + //Studiengangsleiter Stellvertreter auslesen + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('stvLtg', $studiengang->oe_kurzbz); + $xml.='t('global/stellvertreter').']]>'; + foreach($benutzerfkt->result as $row) + { + $ma = new mitarbeiter(); + $ma->load($row->uid); + + if($ma->uid!='' && $ma->bnaktiv) + { + $xml.=''; + + $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>'; + $alias = new benutzer(); + $alias->load($ma->uid); + if($alias->alias!='') + $xml.='alias.'@'.DOMAIN.']]>'; + else + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + + if($ma->telefonklappe != '') + { + if($ma->standort_id!='') + { + $kontakt = new kontakt(); + $kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon'); + $hauptnummer = $kontakt->kontakt; + } + $xml.= 'telefonklappe.']]>'; + } + if($ma->ort_kurzbz != "") + { + $ort = new ort(); + $ort->load($ma->ort_kurzbz); + $xml.='planbezeichnung.']]>'; + } + + $xml.=''; + } + } + + //Assistenz + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('ass', $studiengang->oe_kurzbz); + $xml.='t('global/sekretariat').']]>'; + foreach($benutzerfkt->result as $row) + { + $ma = new mitarbeiter(); + $ma->load($row->uid); + + if($ma->uid!='' && $ma->bnaktiv) + { + $xml.=''; + + $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>'; + $alias = new benutzer(); + $alias->load($ma->uid); + if($alias->alias!='') + $xml.='alias.'@'.DOMAIN.']]>'; + else + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + + if($ma->telefonklappe != '') + { + if($ma->standort_id!='') + { + $kontakt = new kontakt(); + $kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon'); + $hauptnummer = $kontakt->kontakt; + } + $xml.= 'telefonklappe.']]>'; + } + if($ma->ort_kurzbz != "") + { + $ort = new ort(); + $ort->load($ma->ort_kurzbz); + $xml.='planbezeichnung.']]>'; + } + + $xml.=''; + } + } + + //Zusatzinfo (Oeffnungszeiten etc) + $xml.='zusatzinfo_html.']]>'; + + //Hochschulvertretung + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('hsv'); + $xml.='t('global/hochschulvertretung').']]>'; + foreach($benutzerfkt->result as $row) + { + $bn = new benutzer(); + $bn->load($row->uid); + + $funktion = new funktion(); + $funktion->load($row->funktion_kurzbz); + if($bn->uid!='' && $bn->bnaktiv) + { + $xml.=''; + $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + $xml.=''; + } + } + + //Studentenvertretung + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz); + $xml.='t('global/studentenvertreter').' '.strtoupper($studiengang->oe_kurzbz).']]>'; + foreach($benutzerfkt->result as $row) + { + $bn = new benutzer(); + $bn->load($row->uid); + + $funktion = new funktion(); + $funktion->load($row->funktion_kurzbz); + if($bn->uid!='' && $bn->bnaktiv) + { + $xml.=''; + $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + $xml.=''; + } + } + + //Jahrgangsvertretung + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('jgv', $studiengang->oe_kurzbz, $semester); + $xml.='t('global/jahrgangsvertretung').' '.$semester.'. '.$p->t('global/semester').']]>'; + foreach($benutzerfkt->result as $row) + { + $bn = new benutzer(); + $bn->load($row->uid); + + $funktion = new funktion(); + $funktion->load($row->funktion_kurzbz); + if($bn->uid!='' && $bn->bnaktiv) + { + $xml.=''; + $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + $xml.=''; + } + } + + if(CIS_EXT_MENU) + { + $xml.=' + t('global/lehrziele').']]> + t('global/allgemeinerdownload').']]> + t('global/newsgroups').']]> + kuerzel).']]> + kurzbzlang).']]> + '; + } + + $xml.=''; + return $xml; +} + +function getNRObj($stg_kz, $sem) +{ + $ret = new stdClass(); + $ret->studiengang_kz = $stg_kz; + $ret->semester = $sem; + return $ret; +} + +?> diff --git a/cms/newsverwaltung.php b/cms/newsverwaltung.php index ca9b151e2..ab1fcec76 100755 --- a/cms/newsverwaltung.php +++ b/cms/newsverwaltung.php @@ -15,7 +15,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Andreas Oesterreicher + * Authors: Andreas Oesterreicher and + * Andreas Moik . */ /** * Diese Seite dient zum Anlegen und aendern von Newseintraegen @@ -599,13 +600,13 @@ echo '

Nicht veröffentlicht

- +

Veröffentlicht

- +
'; echo ' '; -?> \ No newline at end of file +?> diff --git a/content/zutrittskarte.php b/content/zutrittskarte.php index d825ba3b8..09efd0442 100755 --- a/content/zutrittskarte.php +++ b/content/zutrittskarte.php @@ -1,287 +1,291 @@ - and - */ -/* Erstellt ein Dokument zum Drucken der Zutrittskarten - * - * Parameter: - * data ... Liste der UIDs mit Strichpunkt getrennt - * type ... normal | datum - wenn datum übergeben wird, wird nur das Gueltigkeitsdatum erstellt, - * sonst alle Kartendaten - * - */ -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/benutzerberechtigung.class.php'); -require_once('../include/akte.class.php'); -require_once('../include/benutzer.class.php'); -require_once('../include/vorlage.class.php'); -require_once('../include/datum.class.php'); -require_once('../include/mitarbeiter.class.php'); -require_once('../include/konto.class.php'); -require_once('../include/studiensemester.class.php'); -require_once('../include/student.class.php'); -require_once('../include/studiengang.class.php'); -require_once('../include/benutzerfunktion.class.php'); -require_once('../include/organisationseinheit.class.php'); - -$user = get_uid(); -$db = new basis_db(); - -$datum_obj = new datum(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('mitarbeiter/stammdaten') && !$rechte->isBerechtigt('student/stammdaten')) -{ - die('Sie haben keine Berechtigung fuer diese Seite'); -} - -//UIDs werden entweder als data Parameter mit ";" getrennt übergeben -$uid = isset($_REQUEST['data'])?$_REQUEST['data']:''; -//ODER als POST Array über den Parameter users -$users = isset($_REQUEST['users'])?$_REQUEST['users']:''; -$type = isset($_REQUEST['type'])?$_REQUEST['type']:'normal'; -$output = isset($_REQUEST['output'])?$_REQUEST['output']:'pdf'; -if($uid=='' && $users=='') - die('Parameter data is missing'); - -if($users!='') - $uid_arr=$users; -else - $uid_arr = explode(';',$uid); - -// Tempordner fuer das erstellen des ODT anlegen -$tempfolder = '/tmp/'.uniqid(); -mkdir($tempfolder); -chdir($tempfolder); - -// Unterordner fuer die Bilder erstellen -mkdir('Pictures'); - -// Vorlage der Zutrittskarte laden -$vorlage = new vorlage(); -if(!$vorlage->getAktuelleVorlage('0', 'Zutrittskarte')) - die($vorlage->errormsg); -$xsl_content = $vorlage->text; - -// Vorlage ODT in den Temp Ordner kopieren -$zipfile = DOC_ROOT.'system/vorlage_zip/'.$vorlage->vorlage_kurzbz.'.odt'; -$tempname_zip = 'out.zip'; -if(copy($zipfile, $tempname_zip)) -{ - // XML mit den Personendaten erstellen - $xml =" - "; - - foreach($uid_arr as $uid) - { - $bn = new benutzer(); - if($bn->load($uid)) - { - $gueltigbis = ''; - - // Bild der Person holen - $bild = $qry = "SELECT inhalt as foto FROM public.tbl_akte WHERE dokument_kurzbz='Lichtbil' AND person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER); - - $cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=='; - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - $cTmpHEX=$row->foto; - } - - // Bild in den Temp Ordner zwischenspeichern - file_put_contents($tempfolder.'/Pictures/'.$bn->uid.'.jpg',base64_decode($cTmpHEX)); - - // Bild zum Manifest-File des ODTs hinzufuegen - addImageToManifest($tempname_zip, 'Pictures/'.$bn->uid.'.jpg', $contenttype='image/jpeg'); - - if(check_lektor($uid)) - { - $ma = new mitarbeiter(); - $ma->load($uid); - $benutzerfunktion = new benutzerfunktion(); - $benutzerfunktion->getBenutzerFunktionByUid($uid, NULL, date("Y-m-d"), date("Y-m-d")); - if(!empty($benutzerfunktion->result[0])) - { - $oe = new organisationseinheit($benutzerfunktion->result[0]->oe_kurzbz); - } - else - { - $oe = new organisationseinheit(); - } - $xml.=" - - uid."]]> - vorname."]]> - nachname."]]> - titelpre."]]> - titelpost."]]> - personalnummer."]]> - - formatDatum($ma->gebdatum,'d.m.Y')."]]> - bezeichnung."]]> - "; - } - else - { - $student = new student(); - $student->load($bn->uid); - $konto = new konto(); - $studiengang = new studiengang(); - $studiengang->load($student->studiengang_kz); - - $stsem_obj = new studiensemester(); - $stsem = $stsem_obj->getaktorNext(); - $stsem_obj->load($stsem); - - if($konto->checkStudienbeitrag($bn->uid, $stsem_obj->studiensemester_kurzbz)) - { - $gueltigbis=$stsem_obj->ende; - } - else - { - // Studiengebuehr noch nicht bezahlt - $gueltigbis=$stsem_obj->ende; - } - - if($type=='datum') - { - //Nur der Datumsstempel wird erstellt - $xml.=" - - formatDatum($gueltigbis,'d/m/Y')."]]> - "; - } - else - { - //Student - $xml.=" - - uid."]]> - vorname."]]> - nachname."]]> - titelpre."]]> - titelpost."]]> - kurzbzlang."]]> - formatDatum($bn->gebdatum,'d.m.Y')."]]> - matrikelnr."]]> - - formatDatum($gueltigbis,'d.m.Y')."]]> - "; - } - } - } - } - $xml.=""; - - // XSL-Vorlage von content.xml laden - $xsl_doc = new DOMDocument; - if(!$xsl_doc->loadXML($xsl_content)) - die('Fehler beim Laden der XSL Vorlage von content.xml.'); - - // XML Dokument in ein DOM Objekt laden - $xml_doc = new DOMDocument; - if(!$xml_doc->loadXML($xml)) - die('Fehler beim Laden des XML'); - - // XSL File in den Processor laden - $proc = new XSLTProcessor; - $proc->importStyleSheet($xsl_doc); - - // XSL-Transformation starten - $buffer = $proc->transformToXml($xml_doc); - - // Konvertierte content.xml ins Filesystem schreiben - file_put_contents('content.xml', $buffer); - - //Debugging XML - //file_put_contents('Pictures/out.xml', $xml); - - // Bilder zum ZIP-File hinzufuegen - exec("zip $tempname_zip Pictures/*"); - - // content.xml ins ZIP-File hinzufuegen - exec("zip $tempname_zip content.xml"); - - if($output=='pdf') - { - exec("unoconv --stdout -f pdf $tempname_zip > out.pdf"); - $tempname_zip='out.pdf'; - } - - //Ausgeben des Dokuments - clearstatcache(); - $fsize = filesize($tempname_zip); - $handle = fopen($tempname_zip,'r'); - if($output=='pdf') - { - header('Content-type: application/pdf'); - header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.pdf"'); - } - else - { - header('Content-type: '.$vorlage->mimetype); - header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.odt"'); - } - header('Content-Length: '.$fsize); - while (!feof($handle)) - { - echo fread($handle, 8192); - } - fclose($handle); - - //Loeschen der Temporaeren Dateien - //unlink('content.xml'); - //Unlinking Pictures ? - //unlink($tempname_zip); - //rmdir($tempfolder); - exec('rm -r '.$tempfolder); -} - -/** - * Fuegt ein Bild zur Manifest-Datei eines ODT Files hinzu - * - * @param $zip Zip Pfad - * @param $image Bild Pfad - * @param $contenttype Content-Type des Bildes - */ -function addImageToManifest($zip, $image, $contenttype='image/png') -{ - // Manifest Datei holen - exec('unzip '.$zip.' META-INF/manifest.xml'); - // Bild zur Manifest Datei hinzufuegen - $manifest = file_get_contents('META-INF/manifest.xml'); - $xml_doc = new DOMDocument; - if(!$xml_doc->loadXML($manifest)) - die('Manifest File ungueltig'); - //root-node holen - $root = $xml_doc->getElementsByTagName('manifest')->item(0); - - //Neues Element unterhalb des Root Nodes anlegen - $node = $xml_doc->createElement("manifest:file-entry"); - $node->setAttribute("manifest:media-type",$contenttype); - $node->setAttribute("manifest:full-path",$image); - $root->appendChild($node); - $out = $xml_doc->saveXML(); - - //geaenderte Manifest Datei speichern und wieder ins Zip packen - file_put_contents('META-INF/manifest.xml', $out); - exec('zip '.$zip.' META-INF/*'); -} -?> + and + */ +/* Erstellt ein Dokument zum Drucken der Zutrittskarten + * + * Parameter: + * data ... Liste der UIDs mit Strichpunkt getrennt + * type ... normal | datum - wenn datum übergeben wird, wird nur das Gueltigkeitsdatum erstellt, + * sonst alle Kartendaten + * + */ +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/akte.class.php'); +require_once('../include/benutzer.class.php'); +require_once('../include/vorlage.class.php'); +require_once('../include/datum.class.php'); +require_once('../include/mitarbeiter.class.php'); +require_once('../include/konto.class.php'); +require_once('../include/studiensemester.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/studiengang.class.php'); +require_once('../include/benutzerfunktion.class.php'); +require_once('../include/organisationseinheit.class.php'); + +$user = get_uid(); +$db = new basis_db(); + +$datum_obj = new datum(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +if(!$rechte->isBerechtigt('mitarbeiter/stammdaten') && !$rechte->isBerechtigt('student/stammdaten')) +{ + die('Sie haben keine Berechtigung fuer diese Seite'); +} + +//UIDs werden entweder als data Parameter mit ";" getrennt übergeben +$uid = isset($_REQUEST['data'])?$_REQUEST['data']:''; +//ODER als POST Array über den Parameter users +$users = isset($_REQUEST['users'])?$_REQUEST['users']:''; +$type = isset($_REQUEST['type'])?$_REQUEST['type']:'normal'; +$output = isset($_REQUEST['output'])?$_REQUEST['output']:'pdf'; +if($uid=='' && $users=='') + die('Parameter data is missing'); + +if($users!='') + $uid_arr=$users; +else + $uid_arr = explode(';',$uid); + +// Tempordner fuer das erstellen des ODT anlegen +$tempfolder = '/tmp/'.uniqid(); +mkdir($tempfolder); +chdir($tempfolder); + +// Unterordner fuer die Bilder erstellen +mkdir('Pictures'); + +// Vorlage der Zutrittskarte laden +$vorlage = new vorlage(); +if(!$vorlage->getAktuelleVorlage('0', 'Zutrittskarte')) + die($vorlage->errormsg); +$xsl_content = $vorlage->text; + +// Vorlage ODT in den Temp Ordner kopieren +$zipfile = DOC_ROOT.'system/vorlage_zip/'.$vorlage->vorlage_kurzbz.'.odt'; +$tempname_zip = 'out.zip'; +if(copy($zipfile, $tempname_zip)) +{ + // XML mit den Personendaten erstellen + $xml =" + "; + + foreach($uid_arr as $uid) + { + $bn = new benutzer(); + if($bn->load($uid)) + { + $gueltigbis = ''; + + // Bild der Person holen + $bild = $qry = "SELECT inhalt as foto FROM public.tbl_akte WHERE dokument_kurzbz='Lichtbil' AND person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER); + + $cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=='; + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + $cTmpHEX=$row->foto; + } + + // Bild in den Temp Ordner zwischenspeichern + file_put_contents($tempfolder.'/Pictures/'.$bn->uid.'.jpg',base64_decode($cTmpHEX)); + + // Bild zum Manifest-File des ODTs hinzufuegen + addImageToManifest($tempname_zip, 'Pictures/'.$bn->uid.'.jpg', $contenttype='image/jpeg'); + + if(check_lektor($uid)) + { + $ma = new mitarbeiter(); + $ma->load($uid); + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getBenutzerFunktionByUid($uid, NULL, date("Y-m-d"), date("Y-m-d")); + if(!empty($benutzerfunktion->result[0])) + { + $oe = new organisationseinheit($benutzerfunktion->result[0]->oe_kurzbz); + } + else + { + $oe = new organisationseinheit(); + } + $xml.=" + + uid."]]> + vorname."]]> + nachname."]]> + titelpre."]]> + titelpost."]]> + personalnummer."]]> + + formatDatum($ma->gebdatum,'d.m.Y')."]]> + bezeichnung."]]> + "; + } + else + { + $prestudent = new prestudent(); + $prestudent->getPrestudentsFromUid($bn->uid); + + foreach($prestudent->result as $ps) + { + $konto = new konto(); + $studiengang = new studiengang(); + $studiengang->load($ps->studiengang_kz); + + $stsem_obj = new studiensemester(); + $stsem = $stsem_obj->getaktorNext(); + $stsem_obj->load($stsem); + + if($konto->checkStudienbeitrag($bn->uid, $stsem_obj->studiensemester_kurzbz)) + { + $gueltigbis=$stsem_obj->ende; + } + else + { + // Studiengebuehr noch nicht bezahlt + $gueltigbis=$stsem_obj->ende; + } + + if($type=='datum') + { + //Nur der Datumsstempel wird erstellt + $xml.=" + + formatDatum($gueltigbis,'d/m/Y')."]]> + "; + } + else + { + //Student + $xml.=" + + uid."]]> + vorname."]]> + nachname."]]> + titelpre."]]> + titelpost."]]> + kurzbzlang."]]> + formatDatum($bn->gebdatum,'d.m.Y')."]]> + perskz."]]> + + formatDatum($gueltigbis,'d.m.Y')."]]> + "; + } + } + } + } + } + $xml.=""; + + // XSL-Vorlage von content.xml laden + $xsl_doc = new DOMDocument; + if(!$xsl_doc->loadXML($xsl_content)) + die('Fehler beim Laden der XSL Vorlage von content.xml.'); + + // XML Dokument in ein DOM Objekt laden + $xml_doc = new DOMDocument; + if(!$xml_doc->loadXML($xml)) + die('Fehler beim Laden des XML'); + + // XSL File in den Processor laden + $proc = new XSLTProcessor; + $proc->importStyleSheet($xsl_doc); + + // XSL-Transformation starten + $buffer = $proc->transformToXml($xml_doc); + + // Konvertierte content.xml ins Filesystem schreiben + file_put_contents('content.xml', $buffer); + + //Debugging XML + //file_put_contents('Pictures/out.xml', $xml); + + // Bilder zum ZIP-File hinzufuegen + exec("zip $tempname_zip Pictures/*"); + + // content.xml ins ZIP-File hinzufuegen + exec("zip $tempname_zip content.xml"); + + if($output=='pdf') + { + exec("unoconv --stdout -f pdf $tempname_zip > out.pdf"); + $tempname_zip='out.pdf'; + } + + //Ausgeben des Dokuments + clearstatcache(); + $fsize = filesize($tempname_zip); + $handle = fopen($tempname_zip,'r'); + if($output=='pdf') + { + header('Content-type: application/pdf'); + header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.pdf"'); + } + else + { + header('Content-type: '.$vorlage->mimetype); + header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.odt"'); + } + header('Content-Length: '.$fsize); + while (!feof($handle)) + { + echo fread($handle, 8192); + } + fclose($handle); + + //Loeschen der Temporaeren Dateien + //unlink('content.xml'); + //Unlinking Pictures ? + //unlink($tempname_zip); + //rmdir($tempfolder); + exec('rm -r '.$tempfolder); +} + +/** + * Fuegt ein Bild zur Manifest-Datei eines ODT Files hinzu + * + * @param $zip Zip Pfad + * @param $image Bild Pfad + * @param $contenttype Content-Type des Bildes + */ +function addImageToManifest($zip, $image, $contenttype='image/png') +{ + // Manifest Datei holen + exec('unzip '.$zip.' META-INF/manifest.xml'); + // Bild zur Manifest Datei hinzufuegen + $manifest = file_get_contents('META-INF/manifest.xml'); + $xml_doc = new DOMDocument; + if(!$xml_doc->loadXML($manifest)) + die('Manifest File ungueltig'); + //root-node holen + $root = $xml_doc->getElementsByTagName('manifest')->item(0); + + //Neues Element unterhalb des Root Nodes anlegen + $node = $xml_doc->createElement("manifest:file-entry"); + $node->setAttribute("manifest:media-type",$contenttype); + $node->setAttribute("manifest:full-path",$image); + $root->appendChild($node); + $out = $xml_doc->saveXML(); + + //geaenderte Manifest Datei speichern und wieder ins Zip packen + file_put_contents('META-INF/manifest.xml', $out); + exec('zip '.$zip.' META-INF/*'); +} +?> diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php index ee516d123..f80c3098a 100644 --- a/include/tw/cis_menu_lv.inc.php +++ b/include/tw/cis_menu_lv.inc.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /** * LV Details fuer CIS Seite @@ -578,7 +579,7 @@ function checkZeilenUmbruch() 'position'=>'110', 'name'=>$p->t('lehre/pinboard'), 'icon'=>'../../../skin/images/button_pinboard.png', - 'link'=>'../../../cms/news.php?studiengang_kz='.urlencode($studiengang_kz).'&semester='.urlencode($semester), + 'link'=>'../../../cms/news.php?newsReq='.json_encode(array(array("studiengang_kz" => $studiengang_kz, "semester" => $semester))), 'text'=>$text ); diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index d32db9993..3ed88c9a4 100755 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -150,50 +150,50 @@ function draw_content_liste($row) $studienplan_bezeichnung=$prestudent->studienplan_bezeichnung; echo ' - - - person_id.']]> - prestudent_id.']]> - uid)?$row->uid:'').']]> - titelpre.']]> - titelpost.']]> - vornamen.']]> - vorname.']]> - nachname.']]> - geschlecht.']]> - '.($row->svnr==''?' ':'svnr.']]>').' - '.($row->ersatzkennzeichen==''?' ':'ersatzkennzeichen.']]>').' - convertISODate($row->gebdatum).']]> - gebdatum.']]> + + + person_id.']]> + prestudent_id.']]> + uid)?$row->uid:'').']]> + titelpre.']]> + titelpost.']]> + vornamen.']]> + vorname.']]> + nachname.']]> + geschlecht.']]> + '.($row->svnr==''?' ':'svnr.']]>').' + '.($row->ersatzkennzeichen==''?' ':'ersatzkennzeichen.']]>').' + convertISODate($row->gebdatum).']]> + gebdatum.']]> semester)?$row->semester:'').']]> - verband)?$row->verband:'').']]> - gruppe)?$row->gruppe:'').']]> + verband)?$row->verband:'').']]> + gruppe)?$row->gruppe:'').']]> perskz)?$row->perskz:'').']]> - email_privat.']]> - uid)?$row->uid.'@'.DOMAIN:'').']]> + email_privat.']]> + uid)?$row->uid.'@'.DOMAIN:'').']]> formatDatum($prestudent->datum,'d.m.Y').']]> bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'d.m.Y'):'-').']]> formatDatum($prestudent->datum,'Y-m-d').']]> bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'Y-m-d'):'-').']]> - '.($row->anmerkungen==''?' ':'anmerkungen.']]>').' - '.($row->anmerkung==''?' ':'anmerkung.']]>').' - studiengang_kz.']]> - studiengang_kz].']]> - - - aufmerksamdurch_kurzbz.']]> - punkte.']]> - rt_punkte1.']]> - rt_punkte2.']]> - rt_punkte3.']]> - dual=='t'?'true':'false').']]> - dual=='t'?'Ja':'Nein').']]> - matr_nr.']]> - mentor.']]> - bnaktiv) && $row->bnaktiv=='t')?'true':'false').']]> - - '; + '.($row->anmerkungen==''?' ':'anmerkungen.']]>').' + '.($row->anmerkung==''?' ':'anmerkung.']]>').' + studiengang_kz.']]> + studiengang_kz].']]> + + + aufmerksamdurch_kurzbz.']]> + punkte.']]> + rt_punkte1.']]> + rt_punkte2.']]> + rt_punkte3.']]> + dual=='t'?'true':'false').']]> + dual=='t'?'Ja':'Nein').']]> + matr_nr.']]> + mentor.']]> + bnaktiv) && $row->bnaktiv=='t')?'true':'false').']]> + + '; } function draw_content($row) diff --git a/skin/styles/tw.css b/skin/styles/tw.css index cd3225c16..5a2e7c1d4 100644 --- a/skin/styles/tw.css +++ b/skin/styles/tw.css @@ -502,6 +502,17 @@ td.menubox p { line-height: 110%; } +.menubox /* Navigationsboxen in den CIS-Contentseiten */ +{ + background-color: #eeeeee; + padding: 15px 5px 5px 15px; + margin-bottom: 15px; + vertical-align: middle; +} +.menubox p +{ + line-height: 110%; +} td.cmscontent { vertical-align: top;