diff --git a/cis/private/lehre/upload.php b/cis/private/lehre/upload.php
index aad50cc72..e3a7d0845 100644
--- a/cis/private/lehre/upload.php
+++ b/cis/private/lehre/upload.php
@@ -627,14 +627,14 @@
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
- exec('chmod 664 "'.$uploadfile.'"');
+ exec('chmod 664 '.escapeshellarg($uploadfile));
if($islector)
{
- exec('sudo chown :teacher "'.$uploadfile.'"');
+ exec('sudo chown :teacher '.escapeshellarg($uploadfile));
}
else
{
- exec('sudo chown :student "'.$uploadfile.'"');
+ exec('sudo chown :student '.escapeshellarg($uploadfile));
}
}
}
@@ -650,14 +650,14 @@
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
- exec('chmod 664 "'.$uploadfile.'"');
+ exec('chmod 664 '.escapeshellarg($uploadfile));
if($islector)
{
- exec('sudo chown :teacher "'.$uploadfile.'"');
+ exec('sudo chown :teacher '.escapeshellarg($uploadfile));
}
else
{
- exec('sudo chown :student "'.$uploadfile.'"');
+ exec('sudo chown :student '.escapeshellarg($uploadfile));
}
}
}
@@ -683,14 +683,14 @@
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
- exec('chmod 664 "'.$uploadfile.'"');
+ exec('chmod 664 '.escapeshellarg($uploadfile));
if($islector)
{
- exec('sudo chown :teacher "'.$uploadfile.'"');
+ exec('sudo chown :teacher '.escapeshellarg($uploadfile));
}
else
{
- exec('sudo chown :student "'.$uploadfile.'"');
+ exec('sudo chown :student '.escapeshellarg($uploadfile));
}
}
}
@@ -706,14 +706,14 @@
{
if(copy($_FILES[$file]['tmp_name'], $uploadfile))
{
- exec('chmod 664 "'.$uploadfile.'"');
+ exec('chmod 664 '.escapeshellarg($uploadfile));
if($islector)
{
- exec('sudo chown :teacher "'.$uploadfile.'"');
+ exec('sudo chown :teacher '.escapeshellarg($uploadfile));
}
else
{
- exec('sudo chown :student "'.$uploadfile.'"');
+ exec('sudo chown :student '.escapeshellarg($uploadfile));
}
}
}
@@ -848,15 +848,15 @@
if(!@is_dir($dest_create_dir->path.'/'.$new_dir_name_text) && !@file_exists($dest_create_dir->path.'/'.$new_dir_name_text) && $new_dir_name_text != "")
{
@mkdir($dest_create_dir->path.'/'.$new_dir_name_text);
- exec('chmod 775 "'.$dest_create_dir->path.'/'.$new_dir_name_text.'"');
+ exec('chmod 775 '.escapeshellarg($dest_create_dir->path.'/'.$new_dir_name_text));
if($islector)
{
- exec('sudo chown :teacher "'.$dest_create_dir->path.'/'.$new_dir_name_text.'"');
+ exec('sudo chown :teacher '.escapeshellarg($dest_create_dir->path.'/'.$new_dir_name_text));
}
else
{
- exec('sudo chown :student "'.$dest_create_dir->path.'/'.$new_dir_name_text.'"');
+ exec('sudo chown :student '.escapeshellarg($dest_create_dir->path.'/'.$new_dir_name_text));
}
}
}
@@ -1112,7 +1112,7 @@
if(@is_dir($dest_dir->path.'/'.$entry))
{
writeCISlog('DELETE', 'rm -r "'.$dest_dir->path.'/'.$entry.'"');
- exec('rm -r "'.$dest_dir->path.'/'.$entry.'"');
+ exec('rm -r '.escapeshellarg($dest_dir->path.'/'.$entry));
}
unset($check_state);
@@ -1359,7 +1359,7 @@
if(!@is_dir($dest_dir->path.'/'.$entry))
{
writeCISlog('DELETE', 'rm -r "'.$dest_dir->path.'/'.$entry.'"');
- exec('rm -r "'.$dest_dir->path.'/'.$entry.'"');
+ exec('rm -r '.escapeshellarg($dest_dir->path.'/'.$entry));
}
unset($check_state);
diff --git a/cis/private/lvplan/stpl_reserve_list.php b/cis/private/lvplan/stpl_reserve_list.php
index 08a02344d..ddb757e38 100644
--- a/cis/private/lvplan/stpl_reserve_list.php
+++ b/cis/private/lvplan/stpl_reserve_list.php
@@ -24,6 +24,7 @@ require_once('../../../include/functions.inc.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/phrasen.class.php');
+require_once('../../../include/reservierung.class.php');
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
@@ -54,23 +55,30 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
-
-
-
- | t('lvplan/lehrveranstaltungsplan');?> >> t('lvplan/reservierungen');?> |
- HELP |
-
-
-
+
db_query($sql_query))
- echo ''.$p->t('lvplan/reservierungWurdeGeloescht').'
';
+
+ $reservierung = new reservierung();
+ if($reservierung->load($id))
+ {
+ if($reservierung->uid==$uid || $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
+ {
+ if($reservierung->delete($id))
+ echo ''.$p->t('lvplan/reservierungWurdeGeloescht').'
';
+ else
+ echo $reservierung->errormsg;
+ }
+ else
+ {
+ echo ''.$p->t('global/keineBerechtigung').'
';
+ }
+ }
else
echo ''.$p->t('global/fehleraufgetreten').'!
';
}
@@ -81,7 +89,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
//EIGENE
$sql_query="SELECT * FROM campus.vw_reservierung
- WHERE datum>='$datum' AND uid='$uid'
+ WHERE datum>=".$db->db_add_param($datum)." AND uid=".$db->db_add_param($uid)."
ORDER BY datum, titel, ort_kurzbz, stunde";
if (!$erg_res=$db->db_query($sql_query))
@@ -119,12 +127,12 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
if($insertamum!='')
$insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s');
echo '';
- echo '| '.$datum1.' | ';
- echo ''.$titel.' | ';
- echo ''.$stunde.' | ';
- echo ''.$ort_kurzbz.' | ';
- echo ''.$pers_uid.' | ';
- echo ''.$beschreibung.' | ';
+ echo ''.$db->convert_html_chars($datum1).' | ';
+ echo ''.$db->convert_html_chars($titel).' | ';
+ echo ''.$db->convert_html_chars($stunde).' | ';
+ echo ''.$db->convert_html_chars($ort_kurzbz).' | ';
+ echo ''.$db->convert_html_chars($pers_uid).' | ';
+ echo ''.$db->convert_html_chars($beschreibung).' | ';
$z=$i-1;
if (($pers_uid==$uid)|| $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
echo 'Delete | ';
@@ -142,7 +150,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
//ALLE
$sql_query="SELECT * FROM campus.vw_reservierung
- WHERE datum>='$datum'
+ WHERE datum>=".$db->db_add_param($datum)."
ORDER BY datum, titel, ort_kurzbz, stunde";
if (!$erg_res=$db->db_query($sql_query))
die($db->db_last_error());
@@ -180,12 +188,12 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
if($insertamum!='')
$insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s');
echo '
';
- echo '| '.$datum.' | ';
- echo ''.$titel.' | ';
- echo ''.$stunde.' | ';
- echo ''.$ort_kurzbz.' | ';
- echo ''.$pers_uid.' | ';
- echo ''.$beschreibung.' | ';
+ echo ''.$db->convert_html_chars($datum).' | ';
+ echo ''.$db->convert_html_chars($titel).' | ';
+ echo ''.$db->convert_html_chars($stunde).' | ';
+ echo ''.$db->convert_html_chars($ort_kurzbz).' | ';
+ echo ''.$db->convert_html_chars($pers_uid).' | ';
+ echo ''.$db->convert_html_chars($beschreibung).' | ';
$z=$i-1;
if (($pers_uid==$uid) || $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
echo 'Delete | ';
diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index bf3d00a77..b46371df7 100755
--- a/cis/private/tools/zeitaufzeichnung.php
+++ b/cis/private/tools/zeitaufzeichnung.php
@@ -48,6 +48,9 @@ if (!$db = new basis_db())
$user = get_uid();
$datum = new datum();
+// definiert bis zu welchem Datum die Eintragung nicht mehr möglich ist
+$gesperrt_bis = '2015-01-31';
+$sperrdatum = date('c', strtotime($gesperrt_bis));
$zeitaufzeichnung_id = (isset($_GET['zeitaufzeichnung_id'])?$_GET['zeitaufzeichnung_id']:'');
$projekt_kurzbz = (isset($_POST['projekt'])?$_POST['projekt']:'');
@@ -353,54 +356,61 @@ if(isset($_POST['save']) || isset($_POST['edit']))
{
$zeit = new zeitaufzeichnung();
- if(isset($_POST['edit']))
- {
- if(!$zeit->load($zeitaufzeichnung_id))
- die($p->t("global/fehlerBeimLadenDesDatensatzes"));
-
- $zeit->new = false;
- }
+ if ($datum->formatDatum($von, $format='Y-m-d H:i:s') < $sperrdatum)
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum';
else
{
- $zeit->new = true;
- $zeit->insertamum = date('Y-m-d H:i:s');
- $zeit->insertvon = $user;
- }
-
- $zeit->uid = $user;
- $zeit->aktivitaet_kurzbz = $aktivitaet_kurzbz;
- $zeit->start = $datum->formatDatum($von, $format='Y-m-d H:i:s');
- $zeit->ende = $datum->formatDatum($bis, $format='Y-m-d H:i:s');
- $zeit->beschreibung = $beschreibung;
- $zeit->oe_kurzbz_1 = $oe_kurzbz_1;
- $zeit->oe_kurzbz_2 = $oe_kurzbz_2;
- $zeit->updateamum = date('Y-m-d H:i:s');
- $zeit->updatevon = $user;
- $zeit->projekt_kurzbz = $projekt_kurzbz;
- $zeit->service_id = $service_id;
- $zeit->kunde_uid = $kunde_uid;
-
- if(!$zeit->save())
- {
- echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'';
- }
- else
- {
- echo ''.$p->t("global/datenWurdenGespeichert").'';
- // Nach dem Speichern in den neu Modus springen und als Von Zeit
- // das Ende des letzten Eintrages eintragen
- $zeitaufzeichnung_id = '';
- $uid = $zeit->uid;
- $aktivitaet_kurzbz = '';
- $von = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende));
- $bis = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende)+3600);
- $beschreibung = '';
- $oe_kurzbz_1 = '';
- $oe_kurzbz_2 = '';
- $projekt_kurzbz = '';
- $service_id = '';
- $kunde_uid = '';
+ if(isset($_POST['edit']))
+ {
+ if(!$zeit->load($zeitaufzeichnung_id))
+ die($p->t("global/fehlerBeimLadenDesDatensatzes"));
+
+ $zeit->new = false;
+ }
+ else
+ {
+ $zeit->new = true;
+ $zeit->insertamum = date('Y-m-d H:i:s');
+ $zeit->insertvon = $user;
+ }
+
+ $zeit->uid = $user;
+ $zeit->aktivitaet_kurzbz = $aktivitaet_kurzbz;
+ $zeit->start = $datum->formatDatum($von, $format='Y-m-d H:i:s');
+ $zeit->ende = $datum->formatDatum($bis, $format='Y-m-d H:i:s');
+ $zeit->beschreibung = $beschreibung;
+ $zeit->oe_kurzbz_1 = $oe_kurzbz_1;
+ $zeit->oe_kurzbz_2 = $oe_kurzbz_2;
+ $zeit->updateamum = date('Y-m-d H:i:s');
+ $zeit->updatevon = $user;
+ $zeit->projekt_kurzbz = $projekt_kurzbz;
+ $zeit->service_id = $service_id;
+ $zeit->kunde_uid = $kunde_uid;
+
+ if(!$zeit->save())
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'';
+ }
+ else
+ {
+ echo ''.$p->t("global/datenWurdenGespeichert").'';
+
+ // Nach dem Speichern in den neu Modus springen und als Von Zeit
+ // das Ende des letzten Eintrages eintragen
+ $zeitaufzeichnung_id = '';
+ $uid = $zeit->uid;
+ $aktivitaet_kurzbz = '';
+ $von = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende));
+ $bis = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende)+3600);
+ $beschreibung = '';
+ $oe_kurzbz_1 = '';
+ $oe_kurzbz_2 = '';
+ $projekt_kurzbz = '';
+ $service_id = '';
+ $kunde_uid = '';
+ }
+
}
}
@@ -411,15 +421,21 @@ if(isset($_GET['type']) && $_GET['type']=='delete')
if($zeit->load($zeitaufzeichnung_id))
{
- if($zeit->uid==$user)
- {
- if($zeit->delete($zeitaufzeichnung_id))
- echo ''.$p->t("global/eintragWurdeGeloescht").'';
- else
- echo ''.$p->t("global/fehlerBeimLoeschenDesEintrags").'';
- }
+
+ if ($zeit->start < $sperrdatum)
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum';
else
- echo ''.$p->t("global/keineBerechtigung").'!';
+ {
+ if($zeit->uid==$user)
+ {
+ if($zeit->delete($zeitaufzeichnung_id))
+ echo ''.$p->t("global/eintragWurdeGeloescht").'';
+ else
+ echo ''.$p->t("global/fehlerBeimLoeschenDesEintrags").'';
+ }
+ else
+ echo ''.$p->t("global/keineBerechtigung").'!';
+ }
}
else
echo ''.$p->t("global/datensatzWurdeNichtGefunden").'';
@@ -774,7 +790,11 @@ if($projekt->getProjekteMitarbeiter($user))
'.$p->t("zeitaufzeichnung/pause").' '.($pflichtpause==false?$p->t("zeitaufzeichnung/inklusivePflichtpause"):'').':
'.$tagessaldo.' '.date('H:i', ($pausesumme-3600)).' |
- <- | ';
+ ';
+ if ($tag > $sperrdatum)
+ echo '<-';
+
+ echo ' | ';
$tag=$datumtag;
$tagessumme='00:00';
@@ -874,11 +894,11 @@ if($projekt->getProjekteMitarbeiter($user))
'.$db->convert_html_chars($row->diff).' |
beschreibung)).'">'.StringCut($db->convert_html_chars($row->beschreibung),20,null,'...').' |
';
- if(!isset($_GET['filter']) || $row->uid==$user)
+ if(!isset($_GET['filter']) && ($row->uid==$user && $row->datum > $sperrdatum))
echo ''.$p->t("global/bearbeiten").'';
echo " | \n";
echo " ";
- if(!isset($_GET['filter']) || $row->uid==$user)
+ if(!isset($_GET['filter']) && ($row->uid==$user && $row->start > $sperrdatum))
echo ''.$p->t("global/loeschen").'';
echo " | \n";
echo "
\n";
diff --git a/content/student/studentnotenoverlay.xul.php b/content/student/studentnotenoverlay.xul.php
index 3d20ec071..c979fa4cd 100644
--- a/content/student/studentnotenoverlay.xul.php
+++ b/content/student/studentnotenoverlay.xul.php
@@ -110,6 +110,14 @@ echo "
+
+
+
+
@@ -140,6 +148,8 @@ echo "
+
+
diff --git a/include/basis_db.class.php b/include/basis_db.class.php
index b8becf340..9e685cfca 100644
--- a/include/basis_db.class.php
+++ b/include/basis_db.class.php
@@ -49,11 +49,12 @@ abstract class db extends basis
abstract function db_fetch_array($result=null);
abstract function db_fetch_row($result=null, $i=null);
abstract function db_fetch_assoc($result=null, $i=null);
- abstract function db_result($result = null, $i,$item);
+ abstract function db_result($result = null, $i, $item);
abstract function db_num_rows($result=null);
abstract function db_num_fields($result=null);
abstract function db_field_name($result=null, $i);
abstract function db_affected_rows($result=null);
+ abstract function db_result_seek($result=null, $offset);
abstract function db_last_error();
abstract function db_free_result($result=null);
abstract function db_version();
diff --git a/include/pgsql.class.php b/include/pgsql.class.php
index c919eb3ff..59149d57b 100644
--- a/include/pgsql.class.php
+++ b/include/pgsql.class.php
@@ -163,6 +163,14 @@ class basis_db extends db
return pg_affected_rows($result);
}
+ public function db_result_seek($result=null, $offset)
+ {
+ if(is_null($result))
+ return pg_result_seek($this->db_result, $offset);
+ else
+ return pg_result_seek($result, $offset);
+ }
+
public function db_fetch_array($result=null)
{
if(is_null($result))
diff --git a/include/process.class.php b/include/process.class.php
new file mode 100644
index 000000000..b8540d091
--- /dev/null
+++ b/include/process.class.php
@@ -0,0 +1,87 @@
+
+ */
+
+class process
+{
+ private $pid;
+ private $command;
+
+ public $lastout;
+ public $output;
+ public $exit;
+
+ public function __construct($cl=false)
+ {
+ if ($cl != false)
+ {
+ $this->command = $cl;
+ $this->runCom();
+ }
+ }
+ private function runCom()
+ {
+ $command = 'nohup '.$this->command.' > /dev/null 2>&1 & echo $!';
+ $this->lastout=exec($command, $this->output, $this->exit); //exec($command ,$op);
+ $this->pid = (int)$this->output[0];
+ }
+
+ public function setPid($pid)
+ {
+ $this->pid = $pid;
+ }
+
+ public function getPid()
+ {
+ return $this->pid;
+ }
+
+ public function status()
+ {
+ $command = 'ps -p '.$this->pid;
+ exec($command,$op);
+ if (!isset($op[1]))
+ return false;
+ else
+ return true;
+ }
+
+ public function start()
+ {
+ if ($this->command != '')
+ $this->runCom();
+ else
+ return true;
+ }
+
+ public function stop()
+ {
+ $command = 'kill '.$this->pid;
+ exec($command);
+ if ($this->status() == false)
+ return true;
+ else
+ return false;
+ }
+}
+?>
diff --git a/include/reservierung.class.php b/include/reservierung.class.php
index d246854dd..2edac6844 100644
--- a/include/reservierung.class.php
+++ b/include/reservierung.class.php
@@ -54,7 +54,49 @@ class reservierung extends basis_db
if($reservierung_id!=null)
$this->load($reservierung_id);
}
-
+
+ /**
+ * Laedt eine Reservierung
+ * @param $reservierung_id
+ * @return boolean
+ */
+ public function load($reservierung_id)
+ {
+ $qry = "SELECT * FROM campus.tbl_reservierung WHERE reservierung_id=".$this->db_add_param($reservierung_id);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ $this->reservierung_id = $row->reservierung_id;
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->studiengang_kz = $row->studiengang_kz;
+ $this->uid = $row->uid;
+ $this->stunde = $row->stunde;
+ $this->datum = $row->datum;
+ $this->titel = $row->titel;
+ $this->beschreibung = $row->beschreibung;
+ $this->semester = $row->semester;
+ $this->verband = $row->verband;
+ $this->gruppe = $row->gruppe;
+ $this->gruppe_kurzbz = $row->gruppe_kurzbz;
+ $this->insertamum = $row->insertamum;
+ $this->insertvon = $row->insertvon;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Eintrag wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Ladend er Daten';
+ return false;
+ }
+ }
+
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
diff --git a/include/statistik.class.php b/include/statistik.class.php
index c2bf7d642..c66ddb503 100644
--- a/include/statistik.class.php
+++ b/include/statistik.class.php
@@ -25,7 +25,7 @@ class statistik extends basis_db
{
public $new;
public $statistik_obj=array();
- public $result=array();
+ public $result;
public $statistik_kurzbz;
public $content_id;
@@ -52,7 +52,7 @@ class statistik extends basis_db
public $anzahl; //Hilfsvariable fuer Group BY Abfragen
// Daten der Statistik
- public $data;
+ public $data; // DB ressource
public $html;
public $csv;
public $json;
@@ -60,9 +60,14 @@ class statistik extends basis_db
/**
* Konstruktor
*/
- public function __construct($studiengang_kz=null)
+ public function __construct($statistik_kurzbz=null)
{
- parent::__construct();
+ parent::__construct();
+
+ if(!is_null($statistik_kurzbz))
+ $this->load($statistik_kurzbz);
+ else
+ $this->new=true;
}
/**
@@ -122,9 +127,8 @@ class statistik extends basis_db
{
$qry = 'SELECT * FROM public.tbl_statistik';
- if($order) {
+ if($order)
$qry .= ' ORDER BY ' . $order;
- }
if($result = $this->db_query($qry))
{
@@ -242,7 +246,7 @@ class statistik extends basis_db
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
- }
+ }
}
/**
* Speichert einen Statistik Datensatz
@@ -539,7 +543,7 @@ class statistik extends basis_db
$anzahl_spalten = $this->db_num_fields($this->data);
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
{
- $this->html.= ''.$this->db_field_name($this->data,$spalte).' | ';
+ $this->html.= ''.$this->convert_html_chars($this->db_field_name($this->data,$spalte)).' | ';
$this->csv.='"'.$this->db_field_name($this->data,$spalte).'",';
}
$this->html.= '';
@@ -552,7 +556,7 @@ class statistik extends basis_db
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
{
$name = $this->db_field_name($this->data,$spalte);
- $this->html.= ''.$row->$name.' | ';
+ $this->html.= ''.$this->convert_html_chars($row->$name).' | ';
$this->csv.= '"'.$row->$name.'",';
}
@@ -566,7 +570,7 @@ class statistik extends basis_db
}
else
{
- $this->error_msg= 'Zu dieser Statistik gibt es keine SQL Abfrage';
+ $this->errormsg= 'Zu dieser Statistik gibt es keine SQL Abfrage';
return false;
}
}
@@ -582,6 +586,21 @@ class statistik extends basis_db
return $this->csv;
}
+ function writeCSV($filename, $delimiter=',', $enclosure='"')
+ {
+ $fh=fopen($filename,'w');
+
+ $fieldnames=array();
+ for ($i=0; $i < $this->db_num_fields($this->data); $i++)
+ $fieldnames[]=$this->db_field_name($this->data,$i);
+ fputcsv($fh, $fieldnames, $delimiter, $enclosure);
+ $this->db_result_seek($this->data,0);
+ while ($row = $this->db_fetch_row($this->data))
+ fputcsv($fh, $row, $delimiter, $enclosure);
+ fclose($fh);
+ return true;
+ }
+
function getJSON()
{
return json_encode($this->json);
diff --git a/include/studiengang.class.php b/include/studiengang.class.php
index 27e6992dd..69f2e8ae2 100644
--- a/include/studiengang.class.php
+++ b/include/studiengang.class.php
@@ -230,6 +230,31 @@ class studiengang extends basis_db
return true;
}
+
+ /**
+ * Gibt alle Studiengaenge zurueck, fuer die man sich online bewerben kann
+ * @return boolean
+ */
+ public function getAllForBewerbung()
+ {
+ $qry = 'SELECT DISTINCT studiengang_kz, typ, organisationseinheittyp_kurzbz, studiengangbezeichnung '
+ . 'FROM lehre.vw_studienplan '
+ . 'WHERE onlinebewerbung IS TRUE '
+ . 'ORDER BY studiengangbezeichnung ASC';
+
+ if(!$result = $this->db_query($qry))
+ {
+ $this->errormsg = 'Datensatz konnte nicht geladen werden';
+ return false;
+ }
+
+ while($row = $this->db_fetch_object($result))
+ {
+ $this->result[] = $row;
+ }
+
+ return true;
+ }
/**
* Laedt alle Studientypen in das Attribut studiengang_typ_array
diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php
index 4bbdc82f7..f9d412a73 100644
--- a/include/studiensemester.class.php
+++ b/include/studiensemester.class.php
@@ -32,6 +32,8 @@ class studiensemester extends basis_db
public $start; // date
public $ende; // date
public $bezeichnung; // varchar(32)
+ public $studienjahr_kurzbz; // varchar(16)
+ public $studiensemester_kurzbz_alternativ; // varchar(16)
/**
* Konstruktor - Laedt optional ein StSem
@@ -45,6 +47,26 @@ class studiensemester extends basis_db
if($studiensemester_kurzbz != null)
$this->load($studiensemester_kurzbz);
}
+
+ public function __get($property)
+ {
+ if(property_exists($this, $property))
+ {
+ return $this->$property;
+ }
+ else
+ {
+ return NULL;
+ }
+ }
+
+ public function __set($property, $value)
+ {
+ if(property_exists($this, $property))
+ {
+ $this->$property = $value;
+ }
+ }
/**
* Laedt das Studiensemester mit der uebergebenen Kurzbz
@@ -67,6 +89,8 @@ class studiensemester extends basis_db
$this->start = $row->start;
$this->ende = $row->ende;
$this->bezeichnung = $row->bezeichnung;
+ $this->studienjahr_kurzbz = $row->studienjahr_kurzbz;
+ $this->studiensemester_kurzbz_alternativ = $row->studiensemester_kurzbz_alternativ;
}
else
{
@@ -299,6 +323,8 @@ class studiensemester extends basis_db
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
$stsem_obj->bezeichnung = $row->bezeichnung;
+ $stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
+ $stsem_obj->studiensemester_kurzbz_alternativ = $row->studiensemester_kurzbz_alternativ;
$this->studiensemester[] = $stsem_obj;
}
diff --git a/rdf/zeugnisnote.rdf.php b/rdf/zeugnisnote.rdf.php
index 882ea8463..92ec80cb3 100644
--- a/rdf/zeugnisnote.rdf.php
+++ b/rdf/zeugnisnote.rdf.php
@@ -114,6 +114,8 @@ foreach ($obj->result as $row)
studiengang_kz].']]>
studiengang_kz.']]>
studiengang_kz].']]>
+ semester.']]>
+ ects.']]>
semester.']]>
punkte!=''?(float)$row->punkte:'').']]>
diff --git a/skin/fhcomplete.css b/skin/fhcomplete.css
index c68eef22d..252750708 100644
--- a/skin/fhcomplete.css
+++ b/skin/fhcomplete.css
@@ -28,8 +28,12 @@
{
color: green;
}
+.warning
+{
+ color: #ffa500;;
+}
.marked
{
text-decoration: underline;
-}
\ No newline at end of file
+}
diff --git a/system/checksystem.php b/system/checksystem.php
index 63a0417b0..2287f7a7c 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -2910,6 +2910,39 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
+// View lehre.vw_studienplan erstellen
+if(!$result = @$db->db_query("SELECT * FROM lehre.vw_studienplan LIMIT 1"))
+{
+ $qry = "CREATE VIEW lehre.vw_studienplan AS
+ SELECT
+ organisationseinheittyp_kurzbz, oe_kurzbz, studiengang_kz, studienordnung_id, studienplan_id,
+ tbl_studienplan.orgform_kurzbz, tbl_studienplan.version, tbl_studienplan.bezeichnung, regelstudiendauer,
+ tbl_studienplan.sprache, tbl_studienplan.aktiv, semesterwochen, tbl_studienplan.testtool_sprachwahl,
+ tbl_studienplan.insertamum, tbl_studienplan.insertvon, tbl_studienplan.updateamum, tbl_studienplan.updatevon,
+ gueltigvon, gueltigbis, ects, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang,
+ akadgrad_id, kurzbz, kurzbzlang, typ, english, farbe, email, telefon, max_semester, max_verband, max_gruppe,
+ erhalter_kz, bescheid, bescheidbgbl1, bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, zusatzinfo_html,
+ moodle, studienplaetze, lgartcode, mischform, projektarbeit_note_anzeige, onlinebewerbung, oe_parent_kurzbz,
+ mailverteiler, freigabegrenze, kurzzeichen, lehre, beschreibung, studienordnung_semester_id, studiensemester_kurzbz,
+ semester
+ FROM
+ lehre.tbl_studienplan
+ JOIN lehre.tbl_studienordnung USING (studienordnung_id)
+ JOIN tbl_studiengang USING (studiengang_kz)
+ JOIN tbl_organisationseinheit USING (oe_kurzbz)
+ JOIN tbl_organisationseinheittyp USING (organisationseinheittyp_kurzbz)
+ JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id);
+
+ GRANT SELECT ON lehre.vw_studienplan TO admin;
+ GRANT SELECT ON lehre.vw_studienplan TO vilesci;
+ GRANT SELECT ON lehre.vw_studienplan TO web;";
+
+ if(!$db->db_query($qry))
+ echo '
lehre.vw_studienplan: '.$db->db_last_error().'
';
+ else
+ echo '
lehre.vw_studienplan: View erstellt';
+}
+
echo '
';
diff --git a/system/konsistenzpruefung.php b/system/konsistenzpruefung.php
new file mode 100644
index 000000000..6db223163
--- /dev/null
+++ b/system/konsistenzpruefung.php
@@ -0,0 +1,729 @@
+
+ */
+/*
+ * Prueft die Daten in der Datenbank auf konsistenz und gibt Hinweise
+ * bei fehlerhafter Datenmigration oder Datenmanipulation direkt auf Datenbankebene
+ */
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/functions.inc.php');
+require_once('../include/benutzerberechtigung.class.php');
+
+$uid = get_uid();
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($uid);
+
+if(!$rechte->isBerechtigt('admin'))
+{
+ die('Sie haben keine Berechtigung fuer diese Seite (admin)');
+}
+
+$db = new basis_db();
+
+$error_kritisch=0;
+$error_warning=0;
+
+echo '
+
+
+ Konsistenzpruefung
+
+
+
+
+
+
+';
+
+/************************************************************************************
+ * Pruefung auf falschen Personenkreislauf
+ * tbl_person->tbl_benutzer->tbl_student->tbl_prestudent->tbl_person
+ */
+
+$qry = "SELECT
+ vorname, nachname, tbl_benutzer.uid, tbl_prestudent.prestudent_id,
+ tbl_person.person_id as pers_person_id, tbl_prestudent.person_id pre_person_id
+ FROM
+ public.tbl_person
+ JOIN public.tbl_benutzer USING(person_id)
+ JOIN public.tbl_student ON(uid=student_uid)
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ WHERE
+ tbl_person.person_id<>tbl_prestudent.person_id
+ ORDER BY nachname, vorname, uid";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Inkonsistenter Personenkreislauf tbl_person->tbl_benutzer->tbl_student->tbl_prestudent->tbl_person
';
+ $anzahl = $db->db_num_rows($result);
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+ PrestudentID |
+ tbl_person.person_id |
+ tbl_prestudent.person_id |
+
+
+ ';
+
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_kritisch++;
+ echo '
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->uid).' |
+ '.$db->convert_html_chars($row->prestudent_id).' |
+ '.$db->convert_html_chars($row->pers_person_id).' |
+ '.$db->convert_html_chars($row->pre_person_id).' |
+
';
+ }
+ echo '
';
+ }
+}
+flush();
+
+
+/**************************************************************************************
+ * UIDs ohne Student und ohne Mitarbeiter
+ *
+ */
+$qry = "SELECT
+ tbl_benutzer.uid, tbl_benutzer.person_id, tbl_person.vorname, tbl_person.nachname
+ FROM
+ public.tbl_benutzer
+ LEFT JOIN public.tbl_person USING(person_id)
+ WHERE
+ NOT EXISTS (SELECT 1 FROM public.tbl_student WHERE student_uid=tbl_benutzer.uid)
+ AND NOT EXISTS (SELECT 1 FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=tbl_benutzer.uid)";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Benutzer ohne Student und ohne Mitarbeiter Eintrag
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+ PersonID |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->uid).' |
+ '.$db->convert_html_chars($row->person_id).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Studentenstatus ohne UID
+ *
+ */
+$qry = "SELECT
+ distinct tbl_person.person_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id
+ FROM
+ public.tbl_prestudentstatus
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ status_kurzbz IN('Student','Absolvent','Diplomand','Incoming')
+ AND NOT EXISTS (SELECT 1 FROM public.tbl_student WHERE prestudent_id=tbl_prestudent.prestudent_id)";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Prestudenten mit Studenten/Absolventen/Diplomanden/Incoming Status aber ohne StudentUID
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ PrestudentID |
+ PersonID |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_kritisch++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->prestudent_id).' |
+ '.$db->convert_html_chars($row->person_id).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * StgKz von Stunent und Prestudent unterschiedlich
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid,
+ tbl_student.studiengang_kz as stud_studiengang_kz, tbl_prestudent.studiengang_kz as pre_studiengang_kz
+ FROM
+ public.tbl_student
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ tbl_student.studiengang_kz<>tbl_prestudent.studiengang_kz";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Studiengangskennzahl von tbl_student ungleich tbl_prestudent
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ PrestudentID |
+ StudentStgKZ |
+ PrestudentStgKZ |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_kritisch++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->prestudent_id).' |
+ '.$db->convert_html_chars($row->stud_studiengang_kz).' |
+ '.$db->convert_html_chars($row->pre_studiengang_kz).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Studenten ohne passenden Status
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid,
+ get_rolle_prestudent(prestudent_id, null) as laststatus
+ FROM
+ public.tbl_student
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ NOT EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz in('Student','Incoming','Diplomand','Absolvent'))";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Studenten ohne Status Student/Diplomand/Incoming/Absolvent
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ prestudent_id |
+ UID |
+ Letzter Status |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->prestudent_id).' |
+ '.$db->convert_html_chars($row->student_uid).' |
+ '.$db->convert_html_chars($row->laststatus).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Prestudenten ohne Status
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id
+ FROM
+ public.tbl_prestudent
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ NOT EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id)";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Prestudenten ohne Status
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ prestudent_id |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->prestudent_id).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Studenten ohne Studentlehrverband eintrag
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
+ FROM
+ public.tbl_student
+ JOIN public.tbl_benutzer ON(uid=student_uid)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ NOT EXISTS(SELECT 1 FROM public.tbl_studentlehrverband WHERE student_uid=tbl_student.student_uid)";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Studenten ohne Studentlehrverband Eintrag
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->student_uid).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Incoming ohne IO Datensatz
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
+ FROM
+ public.tbl_student
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ NOT EXISTS(SELECT 1 FROM bis.tbl_bisio WHERE student_uid=tbl_student.student_uid)
+ AND EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id AND status_kurzbz='Incoming')";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Incoming ohne IO-Datensatz
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->student_uid).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Personenkennzeichen passt nicht zur Studiengangskennzahl
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid, tbl_student.matrikelnr, tbl_student.studiengang_kz
+ FROM
+ public.tbl_student
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ tbl_student.studiengang_kz<1000 AND tbl_student.studiengang_kz>0
+ AND tbl_student.studiengang_kz::text!=trim(leading '0' from substring(matrikelnr,5,3))";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Personenkennzeichen passt nicht zum Studiengang
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+ Personenkennzeichen |
+ StudiengangKZ |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->student_uid).' |
+ '.$db->convert_html_chars($row->matrikelnr).' |
+ '.$db->convert_html_chars($row->studiengang_kz).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Absolventen ohne Abschlusspruefung
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
+ FROM
+ public.tbl_student
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ tbl_student.studiengang_kz<1000 AND tbl_student.studiengang_kz>0
+ AND EXISTS (SELECT 1 FROM public.tbl_prestudentstatus WHERE status_kurzbz='Absolvent' AND prestudent_id=tbl_student.prestudent_id)
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_abschlusspruefung WHERE student_uid=tbl_student.student_uid)";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Absolventen ohne Abschlusspruefung
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->student_uid).' |
+
';
+ }
+ echo '
';
+ }
+}
+
+/**************************************************************************************
+ * Studenten mit mind. 2 Stati ohne Noten
+ *
+ */
+$qry = "SELECT
+ tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid
+ FROM
+ public.tbl_student
+ JOIN public.tbl_prestudent USING(prestudent_id)
+ JOIN public.tbl_person USING(person_id)
+ WHERE
+ tbl_student.studiengang_kz<1000 AND tbl_student.studiengang_kz>0
+ AND 1<(SELECT count(*) FROM public.tbl_prestudentstatus WHERE status_kurzbz='Student' AND prestudent_id=tbl_student.prestudent_id)
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_zeugnisnote WHERE student_uid=tbl_student.student_uid)";
+
+if($result = $db->db_query($qry))
+{
+ echo 'Studenten mit mind. 2 Studentenstati aber ohne Noten
';
+
+ $anzahl = $db->db_num_rows($result);
+
+ echo ''.$anzahl.' Probleme gefunden';
+
+ if($anzahl>0)
+ {
+ echo '
Anzeigen >>';
+ echo '
+
+
+
+
+ | Nachname |
+ Vorname |
+ UID |
+
+
+ ';
+ while($row = $db->db_fetch_object($result))
+ {
+ $error_warning++;
+ echo '
+
+ | '.$db->convert_html_chars($row->nachname).' |
+ '.$db->convert_html_chars($row->vorname).' |
+ '.$db->convert_html_chars($row->student_uid).' |
+
';
+ }
+ echo '
';
+ }
+}
+// ************************************************************************************
+echo '
';
+echo '
Kritische Fehler: '.($error_kritisch>0?'':'').$error_kritisch.'';
+echo '
Warnungen: '.($error_warning>0?'':'').$error_warning.'';
+echo '
';
+?>
diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php
index 6c00149a5..cef83a0bc 100644
--- a/vilesci/lehre/lehrveranstaltung_details.php
+++ b/vilesci/lehre/lehrveranstaltung_details.php
@@ -479,7 +479,7 @@
-
+