diff --git a/cis/private/bildupload.php b/cis/private/bildupload.php index 968f67ab0..b8ce66422 100644 --- a/cis/private/bildupload.php +++ b/cis/private/bildupload.php @@ -23,8 +23,6 @@ */ // Oberflaeche zum Upload von Bildern - -//session_cache_limiter('none'); //muss gesetzt werden damit der upload in chrome und das automatische updaten des profilbildes funktioniert require_once('../../config/cis.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/person.class.php'); @@ -32,67 +30,52 @@ require_once('../../include/benutzer.class.php'); require_once('../../include/akte.class.php'); require_once('../../include/phrasen.class.php'); require_once('../../include/fotostatus.class.php'); - $user = get_uid(); $sprache = getSprache(); $p = new phrasen($sprache); - echo ' + - - '. - cropCss().' - - - - - - - - - + + '.$p->t('profil/Bildupload').' +

'.$p->t('profil/Bildupload').'

'; - function resize($filename, $width, $height) { - $ext = explode('.',$_FILES['bild']['name']); - $ext = strtolower($ext[count($ext)-1]); + $ext = explode('.',$_FILES['bild']['name']); + $ext = strtolower($ext[count($ext)-1]); + // Hoehe und Breite neu berechnen + list($width_orig, $height_orig) = getimagesize($filename); + if ($width && ($width_orig < $height_orig)) + { + $width = ($height / $height_orig) * $width_orig; + } + else + { + $height = ($width / $width_orig) * $height_orig; + } - // Hoehe und Breite neu berechnen - list($width_orig, $height_orig) = getimagesize($filename); + $image_p = imagecreatetruecolor($width, $height); - if ($width && ($width_orig < $height_orig)) - { - $width = ($height / $height_orig) * $width_orig; - } - else - { - $height = ($width / $width_orig) * $height_orig; - } + $image = imagecreatefromjpeg($filename); - $image_p = imagecreatetruecolor($width, $height); + //Bild nur verkleinern aber nicht vergroessern + if($width_orig>$width || $height_orig>$height) + imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); + else + $image_p = $image; - $image = imagecreatefromjpeg($filename); + imagejpeg($image_p, $filename, 80); - //Bild nur verkleinern aber nicht vergroessern - if($width_orig>$width || $height_orig>$height) - imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); - else - $image_p = $image; - - imagejpeg($image_p, $filename, 80); - - @imagedestroy($image_p); - @imagedestroy($image); + @imagedestroy($image_p); + @imagedestroy($image); } - - if(isset($_GET['person_id'])) { $benutzer = new benutzer(); @@ -107,269 +90,132 @@ if(isset($_GET['person_id'])) } else die($p->t('global/fehlerBeiDerParameteruebergabe')); +//Bei Upload des Bildes +if(isset($_POST['submitbild'])) +{ + if(isset($_FILES['bild']['tmp_name'])) + { + //Extension herausfiltern + $ext = explode('.',$_FILES['bild']['name']); + $ext = mb_strtolower($ext[count($ext)-1]); + $width=101; + $height=130; -echo '
'; -echo $p->t('profil/BilduploadInfotext',array($p->t('dms_link/bildRichtlinien'))).'

'; -echo '
- '.$p->t('profil/fotoAuswählen').' -
- -
- - '; + //--check that it's a jpeg + if ($ext=='jpg' || $ext=='jpeg') + { + $filename = $_FILES['bild']['tmp_name']; -if (isset($_POST['src'])) { - $src = $_POST['src']; - echo $src; + //groesse auf maximal 827x1063 begrenzen + resize($filename, 827, 1063); + + $fp = fopen($filename,'r'); + //auslesen + $content = fread($fp, filesize($filename)); + fclose($fp); + + $akte = new akte(); + + if($akte->getAkten($_GET['person_id'], 'Lichtbil')) + { + if(count($akte->result)>0) + { + $akte = $akte->result[0]; + $akte->new = false; + } + else + $akte->new = true; + } + else + { + $akte->new = true; + } + + $akte->dokument_kurzbz = 'Lichtbil'; + $akte->person_id = $_GET['person_id']; + $akte->inhalt = base64_encode($content); + $akte->mimetype = "image/jpg"; + $akte->erstelltam = date('Y-m-d H:i:s'); + $akte->gedruckt = false; + $akte->titel = "Lichtbild_".$_GET['person_id'].".jpg"; + $akte->bezeichnung = "Lichtbild gross"; + $akte->updateamum = date('Y-m-d H:i:s'); + $akte->updatevon = $user; + $akte->insertamum = date('Y-m-d H:i:s'); + $akte->insertvon = $user; + $akte->uid = ''; + + if(!$akte->save()) + { + echo '
Fehler: '.$akte->errormsg.'
'; + } + + //groesse auf maximal 101x130 begrenzen + resize($filename, 101, 130); + + //in DB speichern + //File oeffnen + $fp = fopen($filename,'r'); + //auslesen + $content = fread($fp, filesize($filename)); + fclose($fp); + //in base64-Werte umrechnen + $content = base64_encode($content); + $person = new person(); + if($person->load($_GET['person_id'])) + { + //base64 Wert in die Datenbank speichern + $person->foto = $content; + $person->new = false; + if($person->save()) + { + $fs = new fotostatus(); + $fs->person_id=$person->person_id; + $fs->fotostatus_kurzbz='hochgeladen'; + $fs->datum = date('Y-m-d'); + $fs->insertamum = date('Y-m-d H:i:s'); + $fs->insertvon = $user; + $fs->updateamum = date('Y-m-d H:i:s'); + $fs->updatevon = $user; + if(!$fs->save(true)) + echo '
Fehler beim Setzen des Bildstatus
'; + else + { + + echo "
Bild wurde erfolgreich gespeichert
+ "; + } + } + else + echo '
'.$person->errormsg.'
'; + } + else + echo '
'.$person->errormsg.'
'; + } + else + echo '
'.$p->t('profil/nurJPGBilder').'
'; + } } -function cropCss() { - return ' - '; -} +//echo '
'; +echo $p->t('profil/BilduploadInfotext',array($p->t('dms_link/bildRichtlinien'))).'

+
+ '.$p->t('profil/Bild').':
+ +
+ '; ?> +
diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 4a13fe2f2..d2a3801f0 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -259,8 +259,4 @@ define('STATUSGRUND_ID_EINSTIEG_SOMMERSEMESTER', null); // Studiengangs_kz des Studiengangs "Qualifikationskurse". Der Studiengang hat eine Sonderstellung zB für das Bewerbungstool. define('STUDIENGANG_KZ_QUALIFIKATIONKURSE', null); - -// EinsteigerInnen ins Sommersemester werden mit einem Statusgrund versehen. -// Die ID dieses Statusgrundes kann hier eingegeben werden. Es wird zB vom Infocenter-Tool gesetzt und im Bewerbungstool abgefragt -define('STATUSGRUND_ID_EINSTIEG_SOMMERSEMESTER', null); ?> diff --git a/content/akteupload.php b/content/akteupload.php index d29be6670..f8c459845 100644 --- a/content/akteupload.php +++ b/content/akteupload.php @@ -168,7 +168,7 @@ if(isset($_POST['submitbild'])) if(isset($_GET['person_id'])) { $dokument = new dokument(); - $dokument->getAllDokumente('Zeugnis'); + $dokument->getAllDokumente('Zeugnis,DiplSupp,Bescheid'); echo " diff --git a/include/dokument.class.php b/include/dokument.class.php index 2d7f66563..a2eab0e68 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -36,6 +36,7 @@ class dokument extends basis_db public $bezeichnung_mehrsprachig; public $dokumentbeschreibung_mehrsprachig; public $ausstellungsdetails = false; + public $stufe; public $prestudent_id; public $mitarbeiter_uid; @@ -428,6 +429,7 @@ class dokument extends basis_db $dok->nachreichbar = $this->db_parse_bool($row->nachreichbar); $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); $dok->ausstellungsdetails = $this->db_parse_bool($row->ausstellungsdetails); + $dok->stufe = $row->stufe; $this->result[] = $dok; } return true; @@ -467,6 +469,7 @@ class dokument extends basis_db $dok->nachreichbar = $this->db_parse_bool($row->nachreichbar); $dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); $dok->ausstellungsdetails = $this->db_parse_bool($row->ausstellungsdetails); + $dok->stufe = $row->stufe; $this->result[] = $dok; } @@ -545,6 +548,7 @@ class dokument extends basis_db $this->pflicht = $this->db_parse_bool($row->pflicht); $this->nachreichbar = $this->db_parse_bool($row->nachreichbar); $this->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig',$row); + $this->stufe = $row->stufe; return true; } else @@ -605,7 +609,7 @@ class dokument extends basis_db $qry.=" beschreibung_mehrsprachig[$idx],"; } - $qry.=' pflicht, nachreichbar, onlinebewerbung) + $qry.=' pflicht, nachreichbar, onlinebewerbung, stufe) VALUES ('. $this->db_add_param($this->dokument_kurzbz).','. $this->db_add_param($this->studiengang_kz,FHC_INTEGER).','; @@ -615,7 +619,8 @@ class dokument extends basis_db $qry.= $this->db_add_param($this->pflicht,FHC_BOOLEAN).','. $this->db_add_param($this->nachreichbar,FHC_BOOLEAN).','. - $this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')'; + $this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).','. + $this->db_add_param($this->stufe,FHC_INTEGER).')'; } else { @@ -628,7 +633,8 @@ class dokument extends basis_db $qry.=" beschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).","; } $qry.=' pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).', - nachreichbar='.$this->db_add_param($this->nachreichbar, FHC_BOOLEAN).' + nachreichbar='.$this->db_add_param($this->nachreichbar, FHC_BOOLEAN).', + stufe='.$this->db_add_param($this->stufe, FHC_INTEGER).' WHERE dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).' AND studiengang_kz='.$this->db_add_param($this->studiengang_kz); @@ -714,6 +720,7 @@ class dokument extends basis_db $dok->dokumentbeschreibung_mehrsprachig = $sprache->parseSprachResult('dokumentbeschreibung_mehrsprachig', $row); $dok->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig', $row); $dok->ausstellungsdetails = $this->db_parse_bool($row->ausstellungsdetails); + $dok->stufe = $row->stufe; $this->result[] = $dok; } @@ -838,7 +845,8 @@ class dokument extends basis_db */ public function getStudiengaengeDokument($dokument_kurzbz, $person_id = null) { - $qry = " SELECT DISTINCT studiengang_kz,typ||kurzbz AS kuerzel, bezeichnung, english FROM public.tbl_dokumentstudiengang + $qry = " SELECT DISTINCT studiengang_kz,typ||kurzbz AS kuerzel, bezeichnung, english, stufe + FROM public.tbl_dokumentstudiengang JOIN public.tbl_prestudent USING (studiengang_kz) JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING (studiengang_kz) diff --git a/include/frage.class.php b/include/frage.class.php index 8a7d4750e..cafb0c0fd 100644 --- a/include/frage.class.php +++ b/include/frage.class.php @@ -509,6 +509,11 @@ class frage extends basis_db $level[$row->level]=round(($row->anzahl/$fragengesamt)*$maxfragen); } } + // Wenn ein Level besonders viele Fragen und eines nur eine Frage (nach dem Runden) hat, + // kann es durch Rundungsfehler vorkommen, dass bei der Ausgabe ein Level ausgelassen wird. + // Deshalb wird das array hier aufsteigend sortiert. So wird ggf. vom Level mit den meisten Fragen + // die letzte ausgelassen. Hier wäre eine sauberere Lösung besser. + asort($level); // Von jedem Gebiet muss mindestens eine Frage kommen foreach ($level as $key=>$row) diff --git a/include/gebiet.class.php b/include/gebiet.class.php index 98a2535a9..2491259c4 100644 --- a/include/gebiet.class.php +++ b/include/gebiet.class.php @@ -368,12 +368,9 @@ class gebiet extends basis_db $qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)." AND not demo AND level is not null GROUP BY level"; if($this->db_query($qry)) { - if($row = $this->db_fetch_object()) + if($this->db_num_rows() > $this->maxfragen) { - if($row->anzahl>$this->maxfragen) - { - //$this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n"; - } + $this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n"; } } } diff --git a/include/statistik.class.php b/include/statistik.class.php index c9615d557..89ae1c752 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -164,9 +164,9 @@ class statistik extends basis_db public function getGruppe($gruppe,$publish=null) { $qry = "SELECT * FROM public.tbl_statistik WHERE gruppe=".$this->db_add_param($gruppe); - if ($publish==true) + if ($publish===true) $qry.=' AND publish '; - elseif ($publish==false) + elseif ($publish===false) $qry.=' AND NOT publish '; $qry.=' ORDER BY bezeichnung;'; diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index dcac98148..4e720daef 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3019,6 +3019,17 @@ if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1")) } +// Add column Stufe to tbl_dokumentstudiengang +if(!$result = @$db->db_query("SELECT stufe FROM public.tbl_dokumentstudiengang LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_dokumentstudiengang ADD COLUMN stufe smallint;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_dokumentstudiengang: '.$db->db_last_error().'
'; + else + echo '
public.tbl_dokumentstudiengang: Spalte stufe hinzugefuegt'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -3181,7 +3192,7 @@ $tabellen=array( "public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"), "public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id","bezeichnung_mehrsprachig","dokumentbeschreibung_mehrsprachig","ausstellungsdetails"), "public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"), - "public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar"), + "public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar","stufe"), "public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"), "public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"), "public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr", "bezeichnung"), diff --git a/vilesci/stammdaten/studiengang_dokumente.php b/vilesci/stammdaten/studiengang_dokumente.php index 898ace746..d5b1ff534 100644 --- a/vilesci/stammdaten/studiengang_dokumente.php +++ b/vilesci/stammdaten/studiengang_dokumente.php @@ -34,6 +34,7 @@ $dokument_kurzbz = isset($_REQUEST['dokument_kurzbz']) ? $_REQUEST['dokument_kur $onlinebewerbung = isset($_REQUEST['onlinebewerbung']); $pflicht = isset($_POST['pflicht']); $nachreichbar = isset($_POST['nachreichbar']); +$stufe = isset($_REQUEST['stufe']) ? $_REQUEST['stufe'] : ''; $sprache = new sprache(); $sprache->getAll(true, 'index'); @@ -64,6 +65,7 @@ if($action == 'add') $dokument->onlinebewerbung = $onlinebewerbung; $dokument->pflicht = $pflicht; $dokument->nachreichbar = $nachreichbar; + $dokument->stufe = $stufe; $beschreibung_mehrsprachig = array(); foreach($sprache->result as $row_sprache) @@ -128,6 +130,44 @@ if($action === 'togglepflicht') } } +// Ändern der Stufe per Ajax +$changeStufe = filter_input(INPUT_POST, 'changeStufe', FILTER_VALIDATE_BOOLEAN); +if ($changeStufe && isset($_POST['stufe']) && isset($_POST['studiengang_kz'])) +{ + if (!$stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT)) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => '"'.$_POST['stufe'].'" ist kein gültiger Wert für die Stufe' + )); + exit(); + } + + $studiengang_kz = filter_input(INPUT_POST, 'studiengang_kz', FILTER_VALIDATE_INT); + $dokument_kurzbz = filter_input(INPUT_POST, 'dokument_kurzbz'); + + $dokument = new dokument(); + $dokument->loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz); + $dokument->stufe = $stufe; + + if (!$dokument->saveDokumentStudiengang()) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => $p->t('global/fehlerBeiDerParameteruebergabe') + )); + exit(); + } + else + { + echo json_encode(array( + 'status' => 'ok', + 'msg' => 'Status erfolgreich aktualisiert' + )); + exit(); + } +} + if($action === 'togglenachreichbar') { if(!$rechte->isBerechtigt('assistenz', $stg_kz, 'su')) @@ -188,10 +228,25 @@ echo ' Zuordnung Studiengang - Dokumente @@ -399,7 +493,7 @@ else
- '; echo ''; foreach ($studiengang->result as $stg) { @@ -450,9 +544,10 @@ else } if($rechte->isBerechtigt('assistenz', $stg_kz, 'su')) { - echo' Online-Bewerbung - Pflicht - Nachreichbar + echo' Online-Bewerbung + Pflicht + Nachreichbar + Stufe '; } echo' @@ -488,9 +583,29 @@ else } if($rechte->isBerechtigt('assistenz', $stg_kz, 'su')) { - echo' - - + echo' +
'.$checked_onlinebewerbung.'
+ + + + + +
'.$checked_pflicht.'
+ + + + + +
'.$checked_nachreichbar.'
+ + + + + + + + + '; if($rechte->isBerechtigt('assistenz', $stg_kz, 'su')) echo ''; @@ -546,6 +661,9 @@ else nachreichbar?'checked="checked"':'').'> + + + ';