From 89efabf50eebe81d3b4ba8cf1814912ec7dca228 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Thu, 4 Mar 2010 08:55:51 +0000 Subject: [PATCH] --- cis/private/tools/projektabgabe.php | 534 ++++++++++-------- .../tools/projektabgabe_autocomplete.php | 136 +++++ 2 files changed, 444 insertions(+), 226 deletions(-) create mode 100644 cis/private/tools/projektabgabe_autocomplete.php diff --git a/cis/private/tools/projektabgabe.php b/cis/private/tools/projektabgabe.php index febe60eeb..eb206b17e 100644 --- a/cis/private/tools/projektabgabe.php +++ b/cis/private/tools/projektabgabe.php @@ -1,227 +1,309 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ -/******************************************************************************************************* - * projektabgabe - * projektabgabe ermöglicht den Download aller Abgaben eines Stg. - * fuer Diplom- und Bachelorarbeiten - *******************************************************************************************************/ - -require_once('../../../config/cis.config.inc.php'); -// ------------------------------------------------------------------------------------------ -// Datenbankanbindung -// ------------------------------------------------------------------------------------------ - -require_once('../../../include/functions.inc.php'); -require_once('../../../include/studiengang.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/benutzerberechtigung.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/mail.class.php'); - if (!$db = new basis_db()) - $db=false; -$aktion=''; -if(isset($_REQUEST['aktion'])) -{ - $aktion=$_REQUEST['aktion']; -} -$zipfile=''; -$stg_kz=(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:0); -$abgabetyp=(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:''); -if(!is_numeric($stg_kz) && $stg_kz!='') - exit(); -$htmlstr=''; -$datum_obj = new datum(); -$user = get_uid(); -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); -$berechtigung_kurzbz = 'lehre/abgabetool:download'; - -if(isset($_GET['id']) && isset($_GET['uid'])) -{ - if($rechte->isBerechtigt($berechtigung_kurzbz)) - { - if(!is_numeric($_GET['id']) || $_GET['id']=='') - die('Fehler bei Parameteruebergabe'); - - $file = $_GET['id'].'_'.$_GET['uid'].'.pdf'; - $filename = PAABGABE_PATH.$file; - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="'.$file.'"'); - readfile($filename); - } - else - { - die("Sie haben hierzu keine Berechtigung!"); - } - exit(); -} -if($aktion!='zip') -{ - $s = new studiengang(); - $s->loadArray($rechte->getStgKz($berechtigung_kurzbz),'typ,kurzbz'); - - echo'
'; - - echo " Studiengang: "; - echo " Abgabetyp: "; - - echo "  
"; - } -if($stg_kz!='') -{ - $s=new studiengang(); - if(!$s->load($stg_kz)) - { - die("Studiengang konnte nicht geladen werden!"); - } - if($rechte->isBerechtigt($berechtigung_kurzbz, $s->oe_kurzbz)) - { - $qry="SELECT * - FROM (SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit - JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) - LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - LEFT JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - AND public.tbl_benutzer.aktiv - AND lehre.tbl_projektarbeit.note IS NULL - AND public.tbl_studiengang.studiengang_kz='$stg_kz'"; - $qry.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz='$abgabetyp'"; - $qry.=" ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy - ORDER BY nachname"; - //echo $qry."
"; - if(!$erg=$db->db_query($qry)) - { - die('Fehler beim Laden der Betreuungen!'); - } - else - { - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= " - - "; - $htmlstr .= " - "; - $htmlstr .= "\n"; - $i = 0; - while($row=$db->db_fetch_object($erg)) - { - $htmlstr .= ""; - if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$row->uid.'.pdf')) - { - $htmlstr .= " "; - } - else - { - $htmlstr .= " "; - } - //$htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= ""; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - $htmlstr .= "\n"; - if($aktion=='zip') - { - if($zipfile=='') - { - $zipfile = $row->paabgabe_id.'_'.$row->uid.'.pdf'; - } - else - { - $zipfile .= " ".$row->paabgabe_id.'_'.$row->uid.'.pdf'; - } - } - } - } - } - else - { - die("Keine Zugriffsberechtigung!"); - } -} -if($zipfile=='') -{ - ?> - - - Projektabgabe - - - - - - - - "; -} -else -{ - //Zip File erstellen - chdir(PAABGABE_PATH); - $zipausgabe=tempnam("/tmp", "PAA").".zip"; - exec("zip ".$zipausgabe." ".$zipfile); - //echo $zipausgabe; - //echo "
zip -r ".$zipausgabe." ".$zipfile; - if(file_exists($zipausgabe)) - { - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename="Abgabe_'.$s->kuerzel.'.zip"'); - echo file_get_contents($zipausgabe); - unlink($zipausgabe); - } - else - { - echo "
Fehler bei der Dateierstellung!"; - } -} + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ +/******************************************************************************************************* + * projektabgabe + * projektabgabe ermöglicht den Download aller Abgaben eines Stg. + * fuer Diplom- und Bachelorarbeiten + *******************************************************************************************************/ + +require_once('../../../config/cis.config.inc.php'); +// ------------------------------------------------------------------------------------------ +// Datenbankanbindung +// ------------------------------------------------------------------------------------------ + +require_once('../../../include/functions.inc.php'); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/mail.class.php'); + if (!$db = new basis_db()) + $db=false; +$aktion=''; +if(isset($_REQUEST['aktion'])) +{ + $aktion=$_REQUEST['aktion']; +} +$zipfile=''; +$stg_kz=(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:''); +if(!is_numeric($stg_kz) && $stg_kz!='') + exit(); + +$abgabetyp=(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:''); +$termin=(isset($_REQUEST['termin'])?$_REQUEST['termin']:''); + +$htmlstr=''; +$datum_obj = new datum(); +$user = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +$berechtigung_kurzbz = 'lehre/abgabetool:download'; + +if(isset($_GET['id']) && isset($_GET['uid'])) +{ + if($rechte->isBerechtigt($berechtigung_kurzbz)) + { + if(!is_numeric($_GET['id']) || $_GET['id']=='') + die('Fehler bei Parameteruebergabe'); + + $file = $_GET['id'].'_'.$_GET['uid'].'.pdf'; + $filename = PAABGABE_PATH.$file; + header('Content-Type: application/octet-stream'); + header('Content-disposition: attachment; filename="'.$file.'"'); + readfile($filename); + } + else + { + die("Sie haben hierzu keine Berechtigung!"); + } + exit(); +} + +if($zipfile=='') +{ + ?> + + + Projektabgabe + + + + + + + + + + + + loadArray($rechte->getStgKz($berechtigung_kurzbz),'typ,kurzbz'); + + echo''; + + echo " Studiengang: "; + + + echo " Abgabetyp: "; + + + $qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD-MM-YYYY') as termin_anzeige + FROM lehre.tbl_projektarbeit + JOIN campus.tbl_paabgabe USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + AND public.tbl_benutzer.aktiv + AND lehre.tbl_projektarbeit.note IS NULL + "; + if ($stg_kz!='') + $qry_termin.=" AND public.tbl_studiengang.studiengang_kz='$stg_kz'"; + if ($abgabetyp!='') + $qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz='$abgabetyp'"; + $qry_termin.=" ORDER BY termin desc"; + + + echo ' Termin '; + + ?> + + "; + } + +##if($stg_kz!='' || $abgabetyp!='' || $termin!='') +if(isset($_REQUEST['ok'])) +{ + $s=new studiengang(); + if($stg_kz!='' && !$s->load($stg_kz)) + { + die("Studiengang konnte nicht geladen werden!"); + } + + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt($berechtigung_kurzbz, $s->oe_kurzbz)) + { + $qry=""; +## $qry.="SELECT * FROM ("; + $qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit + JOIN campus.tbl_paabgabe USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + AND public.tbl_benutzer.aktiv + AND lehre.tbl_projektarbeit.note IS NULL + "; + if ($stg_kz!='') + $qry.=" AND public.tbl_studiengang.studiengang_kz='$stg_kz'"; + if ($abgabetyp!='') + $qry.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz='$abgabetyp'"; + if ($termin!='') + $qry.=" AND campus.tbl_paabgabe.datum='$termin'"; + $qry.=" ORDER BY nachname "; +## $qry.=" ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy "; +## $qry.=" ORDER BY nachname"; + if($stg_kz=='' && $abgabetyp=='' && $termin=='') + { + $qry.=" limit 100 "; + } + //echo $qry."
"; + if(!$erg=$db->db_query($qry)) + { + die('Fehler beim Laden der Betreuungen!'); + } + else + { + $htmlstr .= "
downloadTerminAbgabetypUIDVornameNachnameTypTitel
uid' target='_blank'>PDF    link".$datum_obj->formatDatum($row->termin,'d.m.Y')."$abgabetyp$row->uid".$row->vorname."".$row->nachname."".$row->projekttyp_kurzbz."".$row->titel."
\n"; + $htmlstr .= "\n"; + $htmlstr .= " + + "; + $htmlstr .= " + "; + $htmlstr .= "\n"; + $i = 0; + while($row=$db->db_fetch_object($erg)) + { + $htmlstr .= ""; + if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$row->uid.'.pdf')) + { + $htmlstr .= " "; + } + else + { + $htmlstr .= " "; + } + //$htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= ""; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + if($aktion=='zip') + { + if($zipfile=='') + { + $zipfile = $row->paabgabe_id.'_'.$row->uid.'.pdf'; + } + else + { + $zipfile .= " ".$row->paabgabe_id.'_'.$row->uid.'.pdf'; + } + } + } + } + } + else + { + die("Keine Zugriffsberechtigung!"); + } +} + +if($zipfile=='') +{ + echo $htmlstr; + echo " + "; +} +else +{ + //Zip File erstellen + chdir(PAABGABE_PATH); + $zipausgabe=tempnam("/tmp", "PAA").".zip"; + exec("zip ".$zipausgabe." ".$zipfile); + //echo $zipausgabe; + //echo "
zip -r ".$zipausgabe." ".$zipfile; + if(file_exists($zipausgabe)) + { + header('Content-Type: application/octet-stream'); + header('Content-disposition: attachment; filename="Abgabe_'.$s->kuerzel.'.zip"'); + echo file_get_contents($zipausgabe); + unlink($zipausgabe); + } + else + { + echo "
Fehler bei der Dateierstellung!"; + } +} ?> \ No newline at end of file diff --git a/cis/private/tools/projektabgabe_autocomplete.php b/cis/private/tools/projektabgabe_autocomplete.php new file mode 100644 index 000000000..2bd0de249 --- /dev/null +++ b/cis/private/tools/projektabgabe_autocomplete.php @@ -0,0 +1,136 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ +/******************************************************************************************************* + * Autocomplete + * projektabgabe ermöglicht den Download aller Abgaben eines Stg. + * fuer Diplom- und Bachelorarbeiten + *******************************************************************************************************/ + header( 'Expires: -1' ); + header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); + header( 'Cache-Control: no-store, no-cache, must-revalidate' ); + header( 'Pragma: no-cache' ); + header('Content-Type: text/html;charset=UTF-8'); + +// ---------------- Vilesci Include Dateien einbinden + require_once('../../../config/cis.config.inc.php'); + include_once('../../../include/basis_db.class.php'); + require_once('../../../include/benutzerberechtigung.class.php'); +// ------------------------------------------------------------------------------------------ +// Datenbankanbindung +// ------------------------------------------------------------------------------------------ + + if (!$db = new basis_db()) + die('Datenbank kann nicht geoeffnet werden. Zurück'); + + require_once('../../../include/functions.inc.php'); + if (!$uid = get_uid()) + die('Keine UID gefunden ! Zurück'); + + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($uid); + $berechtigung_kurzbz = 'lehre/abgabetool:download'; + if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt($berechtigung_kurzbz)) + die('Sie haben hierzu keine Berechtigung ! Zurück'); + +// ------------------------------------------------------------------------------------------ +// Initialisierung +// ------------------------------------------------------------------------------------------ + $errormsg=array(); + +// ------------------------------------------------------------------------------------------ +// Parameter Aufruf uebernehmen +// ------------------------------------------------------------------------------------------ + + $stg_kz=trim(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:''); + $abgabetyp=trim(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:''); + + $work=trim(isset($_REQUEST['work'])?$_REQUEST['work']:(isset($_REQUEST['ajax'])?$_REQUEST['ajax']:false)); + $work=strtolower($work); + +# Direktaufruf Test $work='work_termin_select'; + +// ------------------------------------------------------------------------------------------ +// Datenlesen +// ------------------------------------------------------------------------------------------ +/* jQuery autocomplete +lineSeparator = (default value: "\n") + The character that separates lines in the results from the backend. +cellSeparator (default value: "|") + The character that separates cells in the results from the backend. +*/ + switch ($work) + { + case 'work_termin_select': + + $qry=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD.MM.YYYY') as termin_anzeige + FROM lehre.tbl_projektarbeit + JOIN campus.tbl_paabgabe USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + AND public.tbl_benutzer.aktiv + AND lehre.tbl_projektarbeit.note IS NULL + "; + if ($stg_kz!='') + $qry.=" AND public.tbl_studiengang.studiengang_kz='$stg_kz'"; + if ($abgabetyp!='') + $qry.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz='$abgabetyp'"; + $qry.=" ORDER BY termin desc"; + + $pArt=''; + $pDistinct=false; + $pFields=''; + $pTable=''; + $matchcode=''; + $pWhere=''; + $pOrder=''; + $pLimit=''; + $pSql=$qry; + $json=array(); + if (!$oRresult=$db->SQL($pArt,$pDistinct,$pFields,$pTable,$pWhere,$pOrder,$pLimit,$pSql)) + { + array_push($json, array ('oTermin' => '','oTerminAnzeige' => $db->errormsg )); + } + else if ($oRresult) + { + for ($i=0;$i $oRresult[$i]->termin,'oTerminAnzeige' => $oRresult[$i]->termin_anzeige )); + } + } + else + { + array_push($json, array ('oTermin' => '','oTerminAnzeige' => 'Fehler' )); + } + echo json_encode($json); + break; + + default: + echo " Funktion $work fehlt! "; + break; + } + exit(); +?>
downloadTerminAbgabetypUIDVornameNachnameTypTitel
uid' target='_blank'>PDF    link".$datum_obj->formatDatum($row->termin,'d.m.Y')."".$abgabetyp." ".$row->uid." ".$row->vorname." ".$row->nachname." ".$row->projekttyp_kurzbz." ".$row->titel."