more TODO EINE comments modified

This commit is contained in:
Andreas Moik
2016-06-20 15:04:51 +02:00
parent c431303b43
commit f6358f92ed
14 changed files with 985 additions and 921 deletions
+28 -23
View File
@@ -16,9 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >,
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > and
* Andreas Moik <moik@technikum-wien.at>.
*
*/
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()
</td>
</tr>
</table>
</table>
</div>
</div>
</div>-->';*/
+9 -8
View File
@@ -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 <moik@technikum-wien.at>.
*/
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';
?>
?>
@@ -19,7 +19,8 @@
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <puraner@technikum-wien.at>
* Authors: Stefan Puraner <puraner@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once('../../../../config/cis.config.inc.php');
@@ -171,16 +172,17 @@ $rechte->getBerechtigungen($uid);
</head>
<body>
<script>
$(document).ready(function(){
$(document).ready(function()
{
window.print();
});
});
</script>
<div id="page">
<div id="subpage">
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
<div id="subpage">
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
<?php
if(empty($pruefung->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;
}
?>
<span class="bold"><?php echo $p->t('global/lehrveranstaltung'); ?>: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
<span class="bold"><?php echo $p->t('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
<table id="liste">
?>
<span class="bold"><?php echo $p->t('global/lehrveranstaltung'); ?>: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
<span class="bold"><?php echo $p->t('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
<table id="liste">
<thead>
<tr>
<th>#</th>
<th><?php echo $p->t('global/vorname'); ?></th>
<th><?php echo $p->t('global/nachname'); ?></th>
<th><?php echo $p->t('global/matrikelnummer'); ?></th>
<th><?php echo $p->t('global/datum'); ?></th>
<th><?php echo $p->t('benotungstool/note'); ?></th>
<th><?php echo $p->t('global/anmerkung'); ?></th>
</tr>
<tr>
<th>#</th>
<th><?php echo $p->t('global/vorname'); ?></th>
<th><?php echo $p->t('global/nachname'); ?></th>
<th><?php echo $p->t('global/matrikelnummer'); ?></th>
<th><?php echo $p->t('global/datum'); ?></th>
<th><?php echo $p->t('benotungstool/note'); ?></th>
<th><?php echo $p->t('global/anmerkung'); ?></th>
</tr>
</thead>
<tbody>
<?php
<?php
$count = 0;
/*@var $anmeldung pruefungsanmeldung */
foreach($anmeldungen as $anmeldung)
{
$student = new student($anmeldung->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 '<tr>';
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 '<tr>';
echo '<td>'.$anmeldung->reihung.'</td>';
echo '<td>'.$student->vorname.'</td>';
echo '<td>'.$student->nachname.'</td>';
echo '<td>'.$student->matr_nr.'</td>';
echo '<td>'.$ps->vorname.'</td>';
echo '<td>'.$ps->nachname.'</td>';
echo '<td>'.$ps->matr_nr.'</td>';
echo '<td>'.$date.'</td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
echo '</tr>';
}
}
?>
?>
</tbody>
<?php
}
else
{
<?php
}
else
{
?>
<span><?php echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?></span><br/>
<?php
}
}
}
?>
</table>
</table>
<br>
<table width="100%" id="liste">
<tr>
@@ -17,8 +17,9 @@
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
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;
+39 -29
View File
@@ -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 "</table></td></tr>";
}
if($row->studiengang_kz!=0 && $row_stud->anzahl>0)
{
echo "<tr><td width=\"420\" style=\"padding-left: 12px;\">".$p->t('mailverteiler/alleStudentenDiesesStudienganges')."</td>";
if($row->studiengang_kz!=0 && $row_stud->anzahl>0)
{
echo "<tr><td width=\"420\" style=\"padding-left: 12px;\">".$p->t('mailverteiler/alleStudentenDiesesStudienganges')."</td>";
// 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 " <td width=\"20\">";
if(MAILVERTEILER_SPERRE)
echo '<a href="#" onClick="javascript:window.open(\'open_grp.php?grp='.strtolower($row->kuerzel).'_std&amp;desc='.$p->t('mailverteiler/alleStudentenVon').' '.strtolower($row->kuerzel).'\',\'_blank\',\'width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\');return false;" class="Item"><img valign="bottom" alt="'.$p->t('mailverteiler/verteilerOeffnen').'" src="../../skin/images/lock.png" title="'.$p->t('mailverteiler/verteilerOeffnen').'"></a></td>';
/* open a popup containing the final dispatcher address */
echo " <td width=\"300\" ><a href=\"mailto:".strtolower($row->kuerzel)."_std@".DOMAIN."\" class=\"Item\">".strtolower($row->kuerzel)."_std@".DOMAIN."</a></td>";
}
else
{
echo " <td width=\"20\">&nbsp</td>";
echo " <td width=\"300\" >gesperrt</td>";
}
$hasStudiengang_kz = false;
foreach($prestudent->result as $ps)
{
if($row->studiengang_kz == $ps->studiengang_kz)
$hasStudiengang_kz = true;
}
echo ' <td width="100" align="right"><a href="#" onClick="javascript:window.open(\'stud_in_grp.php?kz='.$row->studiengang_kz.'&amp;all=true\',\'_blank\',\'width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\');return false;" class="Item">'.$p->t('mailverteiler/personen').'</a>&nbsp;';
echo "</tr>\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 " <td width=\"20\">";
if(MAILVERTEILER_SPERRE)
echo '<a href="#" onClick="javascript:window.open(\'open_grp.php?grp='.strtolower($row->kuerzel).'_std&amp;desc='.$p->t('mailverteiler/alleStudentenVon').' '.strtolower($row->kuerzel).'\',\'_blank\',\'width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\');return false;" class="Item"><img valign="bottom" alt="'.$p->t('mailverteiler/verteilerOeffnen').'" src="../../skin/images/lock.png" title="'.$p->t('mailverteiler/verteilerOeffnen').'"></a></td>';
/* open a popup containing the final dispatcher address */
echo " <td width=\"300\" ><a href=\"mailto:".strtolower($row->kuerzel)."_std@".DOMAIN."\" class=\"Item\">".strtolower($row->kuerzel)."_std@".DOMAIN."</a></td>";
}
else
{
echo " <td width=\"20\">&nbsp</td>";
echo " <td width=\"300\" >gesperrt</td>";
}
echo ' <td width="100" align="right"><a href="#" onClick="javascript:window.open(\'stud_in_grp.php?kz='.$row->studiengang_kz.'&amp;all=true\',\'_blank\',\'width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\');return false;" class="Item">'.$p->t('mailverteiler/personen').'</a>&nbsp;';
echo "</tr>\n";
}
echo "\n";
foreach($grp_obj->result as $row1)
{
if(!$row1->aktiv)
continue;
+4 -4
View File
@@ -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 '<h1>'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )</h1>";
echo '<h1>'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $benutzer->vorname $benutzer->nachname ( $benutzer->uid )</h1>";
echo '<table style="border: 1px solid black">
<thead>
<tr style="border: 1px solid black" valign="top">
@@ -449,7 +449,7 @@ echo '</body>
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)
{
+5 -4
View File
@@ -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 <andreas.oesterreicher@technikum-wien.at>
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* Menue Addon fuer die Darstellung der Freifaecher
@@ -50,12 +51,12 @@ class menu_addon_freifaecher extends menu_addon
}
$this->block.= '<script language="JavaScript" type="text/javascript">';
$this->block.= ' parent.content.location.href="../cms/news.php?studiengang_kz=0&semester=0"';
$this->block.= ' parent.content.location.href="../cms/news.php?newsReq='.json_encode(array(array("studiengang_kz" => 0, "semester" => 0)));
$this->block.= '</script>';
$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();
?>
?>
@@ -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 <andreas.oesterreicher@technikum-wien.at>
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* 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
</table>
<table>';
$this->block.= '<script language="JavaScript" type="text/javascript">';
$this->block.= ' parent.content.location.href="../cms/news.php?studiengang_kz='.$studiengang_kz.'&semester='.$semester.'"';
$this->block.= ' parent.content.location.href="../cms/news.php?newsReq='.json_encode(array(array("studiengang_kz" => $studiengang_kz, "semester" => $semester)));
$this->block.= '</script>';
$this->block.='
<tr>
+463 -443
View File
@@ -1,443 +1,463 @@
<?php
/* Copyright (C) 2011 FH Technikum Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
*/
/**
* 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 = '<?xml version="1.0" encoding="UTF-8"?><content>';
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 = '<datum><![CDATA['.$datum_obj->formatDatum($row->datum,'d.m.Y').']]></datum>';
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><![CDATA['.$row->news_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.='<studiengang_bezeichnung>'.$stg_obj->bezeichnung.'</studiengang_bezeichnung>';
}
if($titel!='')
{
$xml.='<news_titel>'.$titel.'</news_titel>';
}
$xml .= '</content>';
$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 = '<stg_extras>';
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
//Studiengangsleitung
$stg_oe_obj = new studiengang();
$stgl = $stg_oe_obj->getLeitung($studiengang_kz);
//$xml.='<stg_header><![CDATA['.$p->t('global/studiengangsmanagement').']]></stg_header>';
$xml.='<stg_ltg_name><![CDATA['.$p->t('global/studiengangsleitung').']]></stg_ltg_name>';
if(count($stgl)>0)
{
foreach ($stgl as $uid)
{
$row_course_leader = new mitarbeiter($uid);
$xml.='<stg_ltg>';
$xml.='<name><![CDATA['.$row_course_leader->titelpre.' '.$row_course_leader->vorname.' '.$row_course_leader->nachname.' '.$row_course_leader->titelpost.']]></name>';
if(isset($row_course_leader) && $row_course_leader->uid != "")
{
$alias = new benutzer();
$alias->load($uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$row_course_leader->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$row_course_leader->uid.']]></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.= '<telefon><![CDATA['.$hauptnummer.' - '.$row_course_leader->telefonklappe.']]></telefon>';
}
if(isset($row_course_leader) && $row_course_leader->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($row_course_leader->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</stg_ltg>';
}
}
//geschaeftsf. Leitung auselesen
$xml.='<gf_ltg_name><![CDATA['.$p->t('global/geschaeftsfuehrendeltg').']]></gf_ltg_name>';
$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.='<gf_ltg>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$alias = new benutzer();
$alias->load($ma->uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$ma->uid.']]></uid>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
if($ma->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($ma->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</gf_ltg>';
}
}
//Studiengangsleiter Stellvertreter auslesen
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('stvLtg', $studiengang->oe_kurzbz);
$xml.='<stv_ltg_name><![CDATA['.$p->t('global/stellvertreter').']]></stv_ltg_name>';
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='' && $ma->bnaktiv)
{
$xml.='<stv_ltg>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$alias = new benutzer();
$alias->load($ma->uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$ma->uid.']]></uid>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
if($ma->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($ma->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</stv_ltg>';
}
}
//Assistenz
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('ass', $studiengang->oe_kurzbz);
$xml.='<ass_name><![CDATA['.$p->t('global/sekretariat').']]></ass_name>';
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='' && $ma->bnaktiv)
{
$xml.='<ass>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$alias = new benutzer();
$alias->load($ma->uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$ma->uid.']]></uid>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
if($ma->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($ma->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</ass>';
}
}
//Zusatzinfo (Oeffnungszeiten etc)
$xml.='<zusatzinfo><![CDATA['.$studiengang->zusatzinfo_html.']]></zusatzinfo>';
//Hochschulvertretung
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('hsv');
$xml.='<hochschulvertr_name><![CDATA['.$p->t('global/hochschulvertretung').']]></hochschulvertr_name>';
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.='<hochschulvertr>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$bn->uid.']]></uid>';
$xml.='</hochschulvertr>';
}
}
//Studentenvertretung
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz);
$xml.='<stdv_name><![CDATA['.$p->t('global/studentenvertreter').' '.strtoupper($studiengang->oe_kurzbz).']]></stdv_name>';
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.='<stdv>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$bn->uid.']]></uid>';
$xml.='</stdv>';
}
}
//Jahrgangsvertretung
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('jgv', $studiengang->oe_kurzbz, $semester);
$xml.='<jahrgangsvertr_name><![CDATA['.$p->t('global/jahrgangsvertretung').' '.$semester.'. '.$p->t('global/semester').']]></jahrgangsvertr_name>';
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.='<jahrgangsvertr>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$bn->uid.']]></uid>';
$xml.='</jahrgangsvertr>';
}
}
if(CIS_EXT_MENU)
{
$xml.='<cis_ext_menu>
<lehrziele_name><![CDATA['.$p->t('global/lehrziele').']]></lehrziele_name>
<download_name><![CDATA['.$p->t('global/allgemeinerdownload').']]></download_name>
<newsgroup_name><![CDATA['.$p->t('global/newsgroups').']]></newsgroup_name>
<kurzbz><![CDATA['.strtolower($studiengang->kuerzel).']]></kurzbz>
<kurzbzlang><![CDATA['.strtolower($studiengang->kurzbzlang).']]></kurzbzlang>
</cis_ext_menu>';
}
$xml.='</stg_extras>';
return $xml;
}
?>
<?php
/* Copyright (C) 2011 FH Technikum Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Karl Burkhart <karl.burkhart@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* 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 = '<?xml version="1.0" encoding="UTF-8"?><content>';
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 = '<datum><![CDATA['.$datum_obj->formatDatum($nws->datum,'d.m.Y').']]></datum>';
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><![CDATA['.$nws->news_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.='<news_titel>'.$titel.'</news_titel>';
}
$xml .= '</content>';
$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 = '<stg_extras>';
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
$xml.='<stg_name_name><![CDATA['.$p->t('global/studiengang').']]></stg_name_name>';
$xml.='<studiengang_bezeichnung>'.$studiengang->bezeichnung.'</studiengang_bezeichnung>';
//Studiengangsleitung
$stg_oe_obj = new studiengang();
$stgl = $stg_oe_obj->getLeitung($studiengang_kz);
//$xml.='<stg_header><![CDATA['.$p->t('global/studiengangsmanagement').']]></stg_header>';
$xml.='<stg_ltg_name><![CDATA['.$p->t('global/studiengangsleitung').']]></stg_ltg_name>';
if(count($stgl)>0)
{
foreach ($stgl as $uid)
{
$row_course_leader = new mitarbeiter($uid);
$xml.='<stg_ltg>';
$xml.='<name><![CDATA['.$row_course_leader->titelpre.' '.$row_course_leader->vorname.' '.$row_course_leader->nachname.' '.$row_course_leader->titelpost.']]></name>';
if(isset($row_course_leader) && $row_course_leader->uid != "")
{
$alias = new benutzer();
$alias->load($uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$row_course_leader->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$row_course_leader->uid.']]></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.= '<telefon><![CDATA['.$hauptnummer.' - '.$row_course_leader->telefonklappe.']]></telefon>';
}
if(isset($row_course_leader) && $row_course_leader->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($row_course_leader->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</stg_ltg>';
}
}
//geschaeftsf. Leitung auselesen
$xml.='<gf_ltg_name><![CDATA['.$p->t('global/geschaeftsfuehrendeltg').']]></gf_ltg_name>';
$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.='<gf_ltg>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$alias = new benutzer();
$alias->load($ma->uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$ma->uid.']]></uid>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
if($ma->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($ma->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</gf_ltg>';
}
}
//Studiengangsleiter Stellvertreter auslesen
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('stvLtg', $studiengang->oe_kurzbz);
$xml.='<stv_ltg_name><![CDATA['.$p->t('global/stellvertreter').']]></stv_ltg_name>';
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='' && $ma->bnaktiv)
{
$xml.='<stv_ltg>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$alias = new benutzer();
$alias->load($ma->uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$ma->uid.']]></uid>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
if($ma->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($ma->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</stv_ltg>';
}
}
//Assistenz
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('ass', $studiengang->oe_kurzbz);
$xml.='<ass_name><![CDATA['.$p->t('global/sekretariat').']]></ass_name>';
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='' && $ma->bnaktiv)
{
$xml.='<ass>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$alias = new benutzer();
$alias->load($ma->uid);
if($alias->alias!='')
$xml.='<email><![CDATA['.$alias->alias.'@'.DOMAIN.']]></email>';
else
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$ma->uid.']]></uid>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($ma->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
if($ma->ort_kurzbz != "")
{
$ort = new ort();
$ort->load($ma->ort_kurzbz);
$xml.='<ort><![CDATA['.$ort->planbezeichnung.']]></ort>';
}
$xml.='</ass>';
}
}
//Zusatzinfo (Oeffnungszeiten etc)
$xml.='<zusatzinfo><![CDATA['.$studiengang->zusatzinfo_html.']]></zusatzinfo>';
//Hochschulvertretung
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('hsv');
$xml.='<hochschulvertr_name><![CDATA['.$p->t('global/hochschulvertretung').']]></hochschulvertr_name>';
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.='<hochschulvertr>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$bn->uid.']]></uid>';
$xml.='</hochschulvertr>';
}
}
//Studentenvertretung
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz);
$xml.='<stdv_name><![CDATA['.$p->t('global/studentenvertreter').' '.strtoupper($studiengang->oe_kurzbz).']]></stdv_name>';
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.='<stdv>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$bn->uid.']]></uid>';
$xml.='</stdv>';
}
}
//Jahrgangsvertretung
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('jgv', $studiengang->oe_kurzbz, $semester);
$xml.='<jahrgangsvertr_name><![CDATA['.$p->t('global/jahrgangsvertretung').' '.$semester.'. '.$p->t('global/semester').']]></jahrgangsvertr_name>';
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.='<jahrgangsvertr>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='<uid><![CDATA['.$bn->uid.']]></uid>';
$xml.='</jahrgangsvertr>';
}
}
if(CIS_EXT_MENU)
{
$xml.='<cis_ext_menu>
<lehrziele_name><![CDATA['.$p->t('global/lehrziele').']]></lehrziele_name>
<download_name><![CDATA['.$p->t('global/allgemeinerdownload').']]></download_name>
<newsgroup_name><![CDATA['.$p->t('global/newsgroups').']]></newsgroup_name>
<kurzbz><![CDATA['.strtolower($studiengang->kuerzel).']]></kurzbz>
<kurzbzlang><![CDATA['.strtolower($studiengang->kurzbzlang).']]></kurzbzlang>
</cis_ext_menu>';
}
$xml.='</stg_extras>';
return $xml;
}
function getNRObj($stg_kz, $sem)
{
$ret = new stdClass();
$ret->studiengang_kz = $stg_kz;
$ret->semester = $sem;
return $ret;
}
?>
+5 -4
View File
@@ -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 <andreas.oesterreicher@technikum-wien.at>
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* Diese Seite dient zum Anlegen und aendern von Newseintraegen
@@ -599,13 +600,13 @@ echo '<hr>
<tr>
<td style="height:100%;" valign="top">
<h3>Nicht veröffentlicht</h3>
<iframe src="news.php?studiengang_kz='.$studiengang_kz.'&semester='.$semester.'&edit=true&sichtbar=false" style="width: 95%;height:100%;"></iframe>
<iframe src="news.php?edit=true&sichtbar=false&newsReq='.json_encode(array(array("studiengang_kz" => $studiengang_kz, "semester" => $semester))).'" style="width: 95%;height:100%;"></iframe>
</td>
<td valign="top">
<h3>Veröffentlicht</h3>
<iframe src="news.php?studiengang_kz='.$studiengang_kz.'&semester='.$semester.'&edit=true" style="width: 95%;height:100%;"></iframe>
<iframe src="news.php?edit=true&newsReq='.json_encode(array(array("studiengang_kz" => $studiengang_kz, "semester" => $semester))).'" style="width: 95%;height:100%;"></iframe>
</td>
</tr></table>';
echo '</body>
</html>';
?>
?>
+291 -287
View File
@@ -1,287 +1,291 @@
<?php
/* Copyright (C) 2012 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* 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> 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 ="<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<zutrittskarte>";
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.="
<mitarbeiter>
<uid><![CDATA[".$bn->uid."]]></uid>
<vorname><![CDATA[".$bn->vorname."]]></vorname>
<nachname><![CDATA[".$bn->nachname."]]></nachname>
<titelpre><![CDATA[".$bn->titelpre."]]></titelpre>
<titelpost><![CDATA[".$bn->titelpost."]]></titelpost>
<personalnummer><![CDATA[".$ma->personalnummer."]]></personalnummer>
<ausstellungsdatum><![CDATA[".date('d.m.Y')."]]></ausstellungsdatum>
<gebdatum><![CDATA[".$datum_obj->formatDatum($ma->gebdatum,'d.m.Y')."]]></gebdatum>
<organisationseinheit><![CDATA[".$oe->bezeichnung."]]></organisationseinheit>
</mitarbeiter>";
}
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.="
<datum>
<gueltigbis><![CDATA[".$datum_obj->formatDatum($gueltigbis,'d/m/Y')."]]></gueltigbis>
</datum>";
}
else
{
//Student
$xml.="
<student>
<uid><![CDATA[".$bn->uid."]]></uid>
<vorname><![CDATA[".$bn->vorname."]]></vorname>
<nachname><![CDATA[".$bn->nachname."]]></nachname>
<titelpre><![CDATA[".$bn->titelpre."]]></titelpre>
<titelpost><![CDATA[".$bn->titelpost."]]></titelpost>
<studiengang><![CDATA[".$studiengang->kurzbzlang."]]></studiengang>
<gebdatum><![CDATA[".$datum_obj->formatDatum($bn->gebdatum,'d.m.Y')."]]></gebdatum>
<matrikelnummer><![CDATA[".$student->matrikelnr."]]></matrikelnummer>
<ausstellungsdatum><![CDATA[".date('M.Y')."]]></ausstellungsdatum>
<gueltigbis><![CDATA[".$datum_obj->formatDatum($gueltigbis,'d.m.Y')."]]></gueltigbis>
</student>";
}
}
}
}
$xml.="</zutrittskarte>";
// 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/*');
}
?>
<?php
/* Copyright (C) 2012 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* 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> 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 ="<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<zutrittskarte>";
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.="
<mitarbeiter>
<uid><![CDATA[".$bn->uid."]]></uid>
<vorname><![CDATA[".$bn->vorname."]]></vorname>
<nachname><![CDATA[".$bn->nachname."]]></nachname>
<titelpre><![CDATA[".$bn->titelpre."]]></titelpre>
<titelpost><![CDATA[".$bn->titelpost."]]></titelpost>
<personalnummer><![CDATA[".$ma->personalnummer."]]></personalnummer>
<ausstellungsdatum><![CDATA[".date('d.m.Y')."]]></ausstellungsdatum>
<gebdatum><![CDATA[".$datum_obj->formatDatum($ma->gebdatum,'d.m.Y')."]]></gebdatum>
<organisationseinheit><![CDATA[".$oe->bezeichnung."]]></organisationseinheit>
</mitarbeiter>";
}
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.="
<datum>
<gueltigbis><![CDATA[".$datum_obj->formatDatum($gueltigbis,'d/m/Y')."]]></gueltigbis>
</datum>";
}
else
{
//Student
$xml.="
<student>
<uid><![CDATA[".$bn->uid."]]></uid>
<vorname><![CDATA[".$bn->vorname."]]></vorname>
<nachname><![CDATA[".$bn->nachname."]]></nachname>
<titelpre><![CDATA[".$bn->titelpre."]]></titelpre>
<titelpost><![CDATA[".$bn->titelpost."]]></titelpost>
<studiengang><![CDATA[".$studiengang->kurzbzlang."]]></studiengang>
<gebdatum><![CDATA[".$datum_obj->formatDatum($bn->gebdatum,'d.m.Y')."]]></gebdatum>
<matrikelnummer><![CDATA[".$ps->perskz."]]></matrikelnummer>
<ausstellungsdatum><![CDATA[".date('M.Y')."]]></ausstellungsdatum>
<gueltigbis><![CDATA[".$datum_obj->formatDatum($gueltigbis,'d.m.Y')."]]></gueltigbis>
</student>";
}
}
}
}
}
$xml.="</zutrittskarte>";
// 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/*');
}
?>
+4 -3
View File
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* 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
);
+37 -37
View File
@@ -150,50 +150,50 @@ function draw_content_liste($row)
$studienplan_bezeichnung=$prestudent->studienplan_bezeichnung;
echo '
<RDF:li>
<RDF:Description id="'.$row->prestudent_id.'" about="'.$rdf_url.'/'.$row->prestudent_id.'" >
<STUDENT:person_id><![CDATA['.$row->person_id.']]></STUDENT:person_id>
<STUDENT:prestudent_id><![CDATA['.$row->prestudent_id.']]></STUDENT:prestudent_id>
<STUDENT:uid><![CDATA['.(isset($row->uid)?$row->uid:'').']]></STUDENT:uid>
<STUDENT:titelpre><![CDATA['.$row->titelpre.']]></STUDENT:titelpre>
<STUDENT:titelpost><![CDATA['.$row->titelpost.']]></STUDENT:titelpost>
<STUDENT:vornamen><![CDATA['.$row->vornamen.']]></STUDENT:vornamen>
<STUDENT:vorname><![CDATA['.$row->vorname.']]></STUDENT:vorname>
<STUDENT:nachname><![CDATA['.$row->nachname.']]></STUDENT:nachname>
<STUDENT:geschlecht><![CDATA['.$row->geschlecht.']]></STUDENT:geschlecht>
<STUDENT:svnr>'.($row->svnr==''?'&#xA0;':'<![CDATA['.$row->svnr.']]>').'</STUDENT:svnr>
<STUDENT:ersatzkennzeichen>'.($row->ersatzkennzeichen==''?'&#xA0;':'<![CDATA['.$row->ersatzkennzeichen.']]>').'</STUDENT:ersatzkennzeichen>
<STUDENT:geburtsdatum><![CDATA['.$datum_obj->convertISODate($row->gebdatum).']]></STUDENT:geburtsdatum>
<STUDENT:geburtsdatum_iso><![CDATA['.$row->gebdatum.']]></STUDENT:geburtsdatum_iso>
<RDF:li>
<RDF:Description id="'.$row->prestudent_id.'" about="'.$rdf_url.'/'.$row->prestudent_id.'" >
<STUDENT:person_id><![CDATA['.$row->person_id.']]></STUDENT:person_id>
<STUDENT:prestudent_id><![CDATA['.$row->prestudent_id.']]></STUDENT:prestudent_id>
<STUDENT:uid><![CDATA['.(isset($row->uid)?$row->uid:'').']]></STUDENT:uid>
<STUDENT:titelpre><![CDATA['.$row->titelpre.']]></STUDENT:titelpre>
<STUDENT:titelpost><![CDATA['.$row->titelpost.']]></STUDENT:titelpost>
<STUDENT:vornamen><![CDATA['.$row->vornamen.']]></STUDENT:vornamen>
<STUDENT:vorname><![CDATA['.$row->vorname.']]></STUDENT:vorname>
<STUDENT:nachname><![CDATA['.$row->nachname.']]></STUDENT:nachname>
<STUDENT:geschlecht><![CDATA['.$row->geschlecht.']]></STUDENT:geschlecht>
<STUDENT:svnr>'.($row->svnr==''?'&#xA0;':'<![CDATA['.$row->svnr.']]>').'</STUDENT:svnr>
<STUDENT:ersatzkennzeichen>'.($row->ersatzkennzeichen==''?'&#xA0;':'<![CDATA['.$row->ersatzkennzeichen.']]>').'</STUDENT:ersatzkennzeichen>
<STUDENT:geburtsdatum><![CDATA['.$datum_obj->convertISODate($row->gebdatum).']]></STUDENT:geburtsdatum>
<STUDENT:geburtsdatum_iso><![CDATA['.$row->gebdatum.']]></STUDENT:geburtsdatum_iso>
<STUDENT:semester><![CDATA['.(isset($row->semester)?$row->semester:'').']]></STUDENT:semester>
<STUDENT:verband><![CDATA['.(isset($row->verband)?$row->verband:'').']]></STUDENT:verband>
<STUDENT:gruppe><![CDATA['.(isset($row->gruppe)?$row->gruppe:'').']]></STUDENT:gruppe>
<STUDENT:verband><![CDATA['.(isset($row->verband)?$row->verband:'').']]></STUDENT:verband>
<STUDENT:gruppe><![CDATA['.(isset($row->gruppe)?$row->gruppe:'').']]></STUDENT:gruppe>
<STUDENT:matrikelnummer><![CDATA['.(isset($row->perskz)?$row->perskz:'').']]></STUDENT:matrikelnummer>
<STUDENT:mail_privat><![CDATA['.$row->email_privat.']]></STUDENT:mail_privat>
<STUDENT:mail_intern><![CDATA['.(isset($row->uid)?$row->uid.'@'.DOMAIN:'').']]></STUDENT:mail_intern>
<STUDENT:mail_privat><![CDATA['.$row->email_privat.']]></STUDENT:mail_privat>
<STUDENT:mail_intern><![CDATA['.(isset($row->uid)?$row->uid.'@'.DOMAIN:'').']]></STUDENT:mail_intern>
<STUDENT:status><![CDATA['.$status.']]></STUDENT:status>
<STUDENT:status_datum><![CDATA['.$datum_obj->formatDatum($prestudent->datum,'d.m.Y').']]></STUDENT:status_datum>
<STUDENT:status_bestaetigung><![CDATA['.($prestudent->bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'d.m.Y'):'-').']]></STUDENT:status_bestaetigung>
<STUDENT:status_datum_iso><![CDATA['.$datum_obj->formatDatum($prestudent->datum,'Y-m-d').']]></STUDENT:status_datum_iso>
<STUDENT:status_bestaetigung_iso><![CDATA['.($prestudent->bestaetigtam!=''?$datum_obj->formatDatum($prestudent->bestaetigtam,'Y-m-d'):'-').']]></STUDENT:status_bestaetigung_iso>
<STUDENT:anmerkungen>'.($row->anmerkungen==''?'&#xA0;':'<![CDATA['.$row->anmerkungen.']]>').'</STUDENT:anmerkungen>
<STUDENT:anmerkungpre>'.($row->anmerkung==''?'&#xA0;':'<![CDATA['.$row->anmerkung.']]>').'</STUDENT:anmerkungpre>
<STUDENT:studiengang_kz><![CDATA['.$row->studiengang_kz.']]></STUDENT:studiengang_kz>
<STUDENT:studiengang><![CDATA['.$stg_arr[$row->studiengang_kz].']]></STUDENT:studiengang>
<STUDENT:orgform><![CDATA['.$orgform.']]></STUDENT:orgform>
<STUDENT:studienplan_bezeichnung><![CDATA['.$studienplan_bezeichnung.']]></STUDENT:studienplan_bezeichnung>
<STUDENT:aufmerksamdurch_kurzbz><![CDATA['.$row->aufmerksamdurch_kurzbz.']]></STUDENT:aufmerksamdurch_kurzbz>
<STUDENT:punkte><![CDATA['.$row->punkte.']]></STUDENT:punkte>
<STUDENT:punkte1><![CDATA['.$row->rt_punkte1.']]></STUDENT:punkte1>
<STUDENT:punkte2><![CDATA['.$row->rt_punkte2.']]></STUDENT:punkte2>
<STUDENT:punkte3><![CDATA['.$row->rt_punkte3.']]></STUDENT:punkte3>
<STUDENT:dual><![CDATA['.($row->dual=='t'?'true':'false').']]></STUDENT:dual>
<STUDENT:dual_bezeichnung><![CDATA['.($row->dual=='t'?'Ja':'Nein').']]></STUDENT:dual_bezeichnung>
<STUDENT:matr_nr><![CDATA['.$row->matr_nr.']]></STUDENT:matr_nr>
<STUDENT:mentor><![CDATA['.$row->mentor.']]></STUDENT:mentor>
<STUDENT:aktiv><![CDATA['.((isset($row->bnaktiv) && $row->bnaktiv=='t')?'true':'false').']]></STUDENT:aktiv>
</RDF:Description>
</RDF:li>';
<STUDENT:anmerkungen>'.($row->anmerkungen==''?'&#xA0;':'<![CDATA['.$row->anmerkungen.']]>').'</STUDENT:anmerkungen>
<STUDENT:anmerkungpre>'.($row->anmerkung==''?'&#xA0;':'<![CDATA['.$row->anmerkung.']]>').'</STUDENT:anmerkungpre>
<STUDENT:studiengang_kz><![CDATA['.$row->studiengang_kz.']]></STUDENT:studiengang_kz>
<STUDENT:studiengang><![CDATA['.$stg_arr[$row->studiengang_kz].']]></STUDENT:studiengang>
<STUDENT:orgform><![CDATA['.$orgform.']]></STUDENT:orgform>
<STUDENT:studienplan_bezeichnung><![CDATA['.$studienplan_bezeichnung.']]></STUDENT:studienplan_bezeichnung>
<STUDENT:aufmerksamdurch_kurzbz><![CDATA['.$row->aufmerksamdurch_kurzbz.']]></STUDENT:aufmerksamdurch_kurzbz>
<STUDENT:punkte><![CDATA['.$row->punkte.']]></STUDENT:punkte>
<STUDENT:punkte1><![CDATA['.$row->rt_punkte1.']]></STUDENT:punkte1>
<STUDENT:punkte2><![CDATA['.$row->rt_punkte2.']]></STUDENT:punkte2>
<STUDENT:punkte3><![CDATA['.$row->rt_punkte3.']]></STUDENT:punkte3>
<STUDENT:dual><![CDATA['.($row->dual=='t'?'true':'false').']]></STUDENT:dual>
<STUDENT:dual_bezeichnung><![CDATA['.($row->dual=='t'?'Ja':'Nein').']]></STUDENT:dual_bezeichnung>
<STUDENT:matr_nr><![CDATA['.$row->matr_nr.']]></STUDENT:matr_nr>
<STUDENT:mentor><![CDATA['.$row->mentor.']]></STUDENT:mentor>
<STUDENT:aktiv><![CDATA['.((isset($row->bnaktiv) && $row->bnaktiv=='t')?'true':'false').']]></STUDENT:aktiv>
</RDF:Description>
</RDF:li>';
}
function draw_content($row)
+11
View File
@@ -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;