diff --git a/include/fop.class.php b/include/fop.class.php index 34779c1a3..ea838746b 100644 --- a/include/fop.class.php +++ b/include/fop.class.php @@ -1,22 +1,46 @@ create_pdf($xml, $xsl); +/* Copyright (C) 2006 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 , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Erstellt ein PDF mithilfe Apache FOP + * + * $xml = file_get_contents('/path/to/your/xmlfile.xml'); + * $xsl = file_get_contenst('/path/to/your/xslfile.xsl'); + * $fop = new fop(); + * $pdf_filename = $fop->create_pdf($xml, $xsl); */ class fop { var $xml; var $xsl; - function fop() + /** + * Konstruktor + */ + public function __construct() { //Apache FOP } - function generatePdf($xml, $xsl, $filename, $destination) + public function generatePdf($xml, $xsl, $filename, $destination) { $tmppdf = tempnam('/tmp', 'FAS_FOP'); diff --git a/rdf/lehrverbandsgruppe.rdf.php b/rdf/lehrverbandsgruppe.rdf.php index b8c4e6ed2..7b90da345 100644 --- a/rdf/lehrverbandsgruppe.rdf.php +++ b/rdf/lehrverbandsgruppe.rdf.php @@ -331,10 +331,10 @@ function draw_orgformsubmenu($stg_kz, $orgform) echo ' '.$row->gruppe_kurzbz.' ('.$row->bezeichnung.') - - studiengang_kz; ?> - semester; ?> - gruppe_kurzbz; ?> + '.$stg_kurzbz.' + '.$stg_kz.' + '.$row->semester.' + '.$row->gruppe_kurzbz.' '.$orgform.' '; diff --git a/system/mlists/mlists_create.php b/system/mlists/mlists_create.php index 933d5e7f0..0082a4a46 100644 --- a/system/mlists/mlists_create.php +++ b/system/mlists/mlists_create.php @@ -1,21 +1,40 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . */ - require_once('../../vilesci/config.inc.php'); +/** + * Gerneriert die Textfiles fuer die Mailverteiler + * der Gruppen und das Textfile fuer die Aliase + */ + require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/globals.inc.php'); require_once('../../include/studiensemester.class.php'); - - if (!$conn = pg_pconnect(CONN_STRING)) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - if(!($result_stg=pg_query($conn, "SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) - die(pg_errormessage($conn)); - $num_rows=pg_num_rows($result_stg); - $ss=new studiensemester($conn); + $db = new basis_db(); + + if(!($result_stg = $db->db_query("SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) + die($db->db_last_error()); + $num_rows=$db->db_num_rows($result_stg); + $ss=new studiensemester(); $ss_nearest=$ss->getNearest(); - ?> @@ -27,7 +46,6 @@

MailingListen

- studiengang_kz; $stg_kzbz=$row->kurzbz; - $sql_query="SELECT * FROM public.tbl_gruppe WHERE studiengang_kz=$stg_id AND mailgrp=true ORDER BY gruppe_kurzbz"; - //echo $sql_query; - if(!($result_mg=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); - $nr_mg=pg_num_rows($result_mg); + $sql_query="SELECT * FROM public.tbl_gruppe WHERE studiengang_kz='".addslashes($stg_id)."' AND mailgrp=true ORDER BY gruppe_kurzbz"; + + if(!($result_mg = $db->db_query($sql_query))) + die($db->db_last_error()); + $nr_mg=$db->db_num_rows($result_mg); // Mailgroups for ($j=0; $j<$nr_mg; $j++) { - $row_mg=pg_fetch_object($result_mg, $j); + $row_mg = $db->db_fetch_object($result_mg, $j); $mg_kurzbz=$row_mg->gruppe_kurzbz; $sql_query='SELECT tbl_benutzergruppe.uid, nachname, vorname '. 'FROM campus.vw_benutzer, public.tbl_benutzergruppe '. 'WHERE vw_benutzer.uid=tbl_benutzergruppe.uid AND '. "UPPER(gruppe_kurzbz)=UPPER('$mg_kurzbz') AND tbl_benutzergruppe.uid NOT LIKE '\\\\_%' ". "AND (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$ss_nearest') AND aktiv ORDER BY nachname;"; - //echo $sql_query; - if(!($result_person=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); + + if(!($result_person = $db->db_query($sql_query))) + die($db->db_last_error()); // File Operations $name=$mg_kurzbz.'.txt'; - $name=strtolower($name); + $name=mb_strtolower($name); $fp=fopen('../../../mlists/'.$name,"w"); //$fp=fopen('../../../../mlists/'.$name,"w"); - $nr_person=pg_num_rows($result_person); + $nr_person=$db->db_num_rows($result_person); for ($p=0; $p<$nr_person; $p++) { - $row=pg_fetch_object($result_person, $p); + $row = $db->db_fetch_object($result_person, $p); fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf); } fclose($fp); @@ -87,10 +105,10 @@ WHERE alias<>'' AND (studiengang_kz NOT IN($noalias_kz) OR studiengang_kz is null) tbl_benutzer.aktiv ORDER BY nachname, vorname"; - if($result = pg_query($conn, $qry)) + if($result = $db->db_query($qry)) { $fp=fopen('../../../mlists/tw_alias.txt',"w"); - while($row=pg_fetch_object($result)) + while($row = $db->db_fetch_object($result)) { fwrite($fp,"# ".$row->nachname." ".$row->vorname.$crlf); fwrite($fp,$row->alias.": ".$row->uid.$crlf); diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index d953a9cde..d4130dcf6 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -1,18 +1,36 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ /**************************************************************************** * Script: mlists_generate.php * Descr: Das Skript generiert Mailinglisten in der Datenbanken * fuer Einheiten, Lektoren und fix Angestellte. - * Verzweigungen: nach einheit_det.php - * von einheit_menue.php * Author: Christian Paminger * Erstellt: 12.9.2005 * Update: 14.9.2005 von Christian Paminger *****************************************************************************/ -include('../../vilesci/config.inc.php'); -include('../../include/functions.inc.php'); -include('../../include/studiensemester.class.php'); +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiensemester.class.php'); $error_msg=''; ?> @@ -25,30 +43,29 @@ $error_msg='';

MailingListen abgleich

db_query($sql_query))) + $error_msg.=$db->db_last_error(); + if($row = $db->db_fetch_object($result)) $studiensemester=$row->studiensemester_kurzbz; else - $error_msg.=pg_errormessage($conn).$sql_query; + $error_msg.= $db->db_last_error().$sql_query; - $stsem_obj = new studiensemester($conn); + $stsem_obj = new studiensemester(); - if(substr($studiensemester,0,1)=='W') + if(mb_substr($studiensemester,0,1)=='W') $stsem2 = $stsem_obj->getPreviousFrom($studiensemester); else $stsem2 = $stsem_obj->getNextFrom($studiensemester); function setGeneriert($gruppe) { - global $conn; + $db = new basis_db(); $qry = "UPDATE public.tbl_gruppe SET generiert=true WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($gruppe)."')"; - @pg_query($conn, $qry); + $db->db_query($qry); } // ************************************************************** @@ -58,27 +75,29 @@ $error_msg=''; // Lektoren holen die nicht mehr in den Verteiler gehoeren echo $mlist_name.' wird abgeglichen!
'; flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv)"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($mlist_name)."') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv)"; + + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + + while($row = $db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } // Lektoren holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.= $db->db_last_error(); + while($row = $db->db_fetch_object($result)) { $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -91,26 +110,26 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND funktion_kurzbz='ass')"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } // Personen holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT distinct mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND tbl_benutzerfunktion.funktion_kurzbz='ass' AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row=$db->db_fetch_object($result)) { $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -123,26 +142,26 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND funktion_kurzbz='stgl')"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row=$db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } // Personen holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND tbl_benutzerfunktion.funktion_kurzbz='stgl' AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row=$db->db_fetch_object($result)) { $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -155,26 +174,26 @@ $error_msg=''; echo '
'.$mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND aktiv)"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row=$db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } // Lektoren holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result=$db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row=$db->db_fetch_object($result)) { $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -187,26 +206,26 @@ $error_msg=''; echo '
'.$mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE aktiv AND fixangestellt AND lektor)"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row=$db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } // Lektoren holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) { $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -229,13 +248,13 @@ $error_msg=''; (studiensemester_kurzbz='$studiensemester' OR studiensemester_kurzbz='$stsem2') AND mitarbeiter_uid NOT LIKE '\\\\_%')"; //echo $sql_query; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn).$sql_query; - while($row=pg_fetch_object($result)) + if(!($result=$db->db_query($sql_query))) + $error_msg.=$db->db_last_error().$sql_query; + while($row=$db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -254,14 +273,14 @@ $error_msg=''; (SELECT uid, UPPER(gruppe_kurzbz) FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz LIKE '%\\\\_LKT' AND UPPER(gruppe_kurzbz)!=UPPER('tw_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('tw_fix_lkt'))"; //echo $sql_query; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn).$sql_query; - while($row=pg_fetch_object($result)) + if(!($result=$db->db_query($sql_query))) + $error_msg.=$db->db_last_error().$sql_query; + while($row=$db->db_fetch_object($result)) { $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='".strtoupper($row->mlist_name)."'"; - if($res = pg_query($conn, $sql_query)) + if($res = $db->db_query($sql_query)) { - if(pg_num_rows($res)<=0) + if($db->db_num_rows($res)<=0) { setGeneriert($row->mlist_name); $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, @@ -269,7 +288,7 @@ $error_msg=''; insertamum, insertvon) VALUES('".strtoupper($row->mlist_name)."',$row->studiengang_kz, 0,'$row->mlist_name',". "'$row->mlist_name', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!pg_query($conn, $sql_query)) + if(!$db->db_query($sql_query)) echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; } } @@ -277,8 +296,8 @@ $error_msg=''; echo "
Fehler:$sql_query"; $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->mitarbeiter_uid','".strtoupper($row->mlist_name)."', now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -289,29 +308,29 @@ $error_msg=''; echo 'Studentenvertreterverteiler werden abgeglichen!
'; flush(); $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE gruppe_kurzbz LIKE '%_STDV' AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND studiengang_kz=tbl_gruppe.studiengang_kz) AND tbl_gruppe.studiengang_kz!='0'"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result=$db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } // Studenten holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT uid, (SELECT gruppe_kurzbz FROM public.tbl_gruppe WHERE studiengang_kz=tbl_benutzerfunktion.studiengang_kz AND gruppe_kurzbz like '%_STDV') as gruppe_kurzbz FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE studiengang_kz=tbl_benutzerfunktion.studiengang_kz AND gruppe_kurzbz Like '%_STDV')"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) { if($row->gruppe_kurzbz!='') { setGeneriert($row->gruppe_kurzbz); - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -321,13 +340,13 @@ $error_msg=''; flush(); setGeneriert('TW_STDV'); $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='TW_STDV' AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv')"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) { $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('tw_stdv') AND uid='$row->uid'"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } @@ -335,13 +354,13 @@ $error_msg=''; // Studenten holen die nicht im Verteiler sind echo '
'; $sql_query="SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND uid NOT in(Select uid from public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)= UPPER('TW_STDV'))"; - if(!($result=pg_query($conn, $sql_query))) - $error_msg.=pg_errormessage($conn); - while($row=pg_fetch_object($result)) + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) { $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','TW_STDV', now(), 'mlists_generate')"; - if(!pg_query($conn, $sql_query)) - $error_msg.=pg_errormessage($conn).$sql_query; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; echo '-'; flush(); } diff --git a/system/mlists/student_lists_create.php b/system/mlists/student_lists_create.php index 70315bbef..b0bcb2929 100644 --- a/system/mlists/student_lists_create.php +++ b/system/mlists/student_lists_create.php @@ -1,14 +1,34 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . */ - include('../../vilesci/config.inc.php'); - include('../../include/functions.inc.php'); - if (!$conn = @pg_pconnect(CONN_STRING)) - die("Es konnte keine Verbindung zum Server aufgebaut werden."); - if(!($erg=pg_query($conn, "SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) - die(pg_errormessage($conn)); - $num_rows=pg_num_rows($erg); +/** + * Generiert die Listen fuer die Mailverteiler der Studenten + */ + require_once('../../config/vilesci.config.inc.php'); + require_once('../../include/functions.inc.php'); + + $db = new basis_db(); + if(!($erg=$db->db_query("SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) + die($db->db_last_error()); + $num_rows=$db->db_num_rows($erg); ?> @@ -24,107 +44,65 @@ db_fetch_object($erg, $i); $stg_kz=$row->studiengang_kz; $stg_kzbz=$row->kurzbz; $sql_query="SELECT DISTINCT semester FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND student_uid NOT LIKE '\\\\_%' AND semester<10 AND semester>0 ORDER BY semester"; - //echo $sql_query; - if(!($result_sem=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); - $nr_sem=pg_num_rows($result_sem); + + if(!($result_sem = $db->db_query($sql_query))) + die($db->db_last_error()); + $nr_sem=$db->db_num_rows($result_sem); for ($j=0; $j<$nr_sem; $j++) { - $row_sem=pg_fetch_object($result_sem, $j); + $row_sem=$db->db_fetch_object($result_sem, $j); echo $stg_kzbz.'-'.$row_sem->semester.'
'; - /* // Semestergruppen falls vorhanden - $sem=$row_sem->semester; - $sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE studiengang_kz='.$stg_kz.' AND semester='.$sem." AND (verband IS NULL OR verband='') AND (gruppe='' OR gruppe IS NULL) AND uid NOT LIKE '\\\\_%' ORDER BY nachname;"; - //echo $sql_query; - if(!($result_student=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); - // File Operations - if (pg_num_rows($result_student)>0) - { - $name=$stg_kzbz.$sem.'.txt'; - $name=strtolower($name); - $fp=fopen('../../../mlists/student/'.$name,"w"); - $crlf="\n"; - while ($row=pg_fetch_object($result_student)) - fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf); - fclose($fp); - echo $name.', '; - flush(); - }*/ - $sql_query="SELECT DISTINCT verband FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND semester=$row_sem->semester AND student_uid NOT LIKE '\\\\_%' ORDER BY verband"; - //echo $sql_query; - if(!($result_ver=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); - $nr_ver=pg_num_rows($result_ver); + + if(!($result_ver = $db->db_query($sql_query))) + die($db->db_last_error()); + $nr_ver=$db->db_num_rows($result_ver); for ($k=0; $k<$nr_ver; $k++) { - $row_ver=pg_fetch_object($result_ver, $k); - - /* // Verbandsgruppen falls vorhanden - $sem=$row_sem->semester; - $ver=$row_ver->verband; - $sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE studiengang_kz='.$stg_kz.' AND semester='.$sem.' AND verband=\''.strtoupper($ver)."' AND (gruppe='' OR gruppe IS NULL) AND uid NOT LIKE '\\\\_%' ORDER BY nachname;"; - //echo $sql_query; - if(!($result_student=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); - // File Operations - if (pg_num_rows($result_student)>0) - { - $name=$stg_kzbz.$sem.$ver.'.txt'; - $name=strtolower($name); - $fp=fopen('../../../mlists/student/'.$name,"w"); - $crlf="\n"; - while ($row=pg_fetch_object($result_student)) - fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf); - fclose($fp); - echo $name.', '; - flush(); - }*/ + $row_ver = $db->db_fetch_object($result_ver, $k); if ( ($row_ver->verband==' ' || $row_ver->verband=='') ) $row_ver->verband='A'; - // if (strtoupper($row_ver->verband)=='A') - $sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND semester=$row_sem->semester AND (verband='$row_ver->verband' OR verband='' OR verband=' ') AND student_uid NOT LIKE '\\\\_%' ORDER BY gruppe"; - //else - // $sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE gruppe!='' AND gruppe IS NOT NULL AND studiengang_kz=$stg_kz AND semester=$row_sem->semester AND verband='$row_ver->verband' AND student_uid NOT LIKE '\\\\_%' ORDER BY gruppe"; - //echo $sql_query; - if(!($result_grp=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); - $nr_grp=pg_num_rows($result_grp); + + $sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND semester=$row_sem->semester AND (verband='$row_ver->verband' OR verband='' OR verband=' ') AND student_uid NOT LIKE '\\\\_%' ORDER BY gruppe"; + + if(!($result_grp = $db->db_query($sql_query))) + die($db->db_last_error()); + $nr_grp = $db->db_num_rows($result_grp); + for ($l=0; $l<$nr_grp; $l++) { - $row_grp=pg_fetch_object($result_grp, $l); + $row_grp = $db->db_fetch_object($result_grp, $l); $stgid=$stg_kz; $sem=$row_sem->semester; $ver=$row_ver->verband; $grp=$row_grp->gruppe; - //echo '
-'.$ver.'-
'; + if ($grp=='' || $grp==' ' || is_null($grp)) $grp='1'; if ($grp=='1') $sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE aktiv AND studiengang_kz='.$stgid.' AND semester='.$sem." AND (verband='".strtoupper($ver)."' OR verband='' OR verband=' ') AND (gruppe='".$grp."' OR gruppe='' OR gruppe=' ') AND uid NOT LIKE '\\\\_%' ORDER BY nachname"; else $sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE aktiv AND studiengang_kz='.$stgid.' AND semester='.$sem.' AND verband=\''.strtoupper($ver).'\' AND gruppe='.$grp." AND uid NOT LIKE '\\\\_%' ORDER BY nachname"; - //echo $sql_query; - if(!($result_student=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); + + if(!($result_student = $db->db_query($sql_query))) + die($db->db_last_error()); // File Operations $name=$stg_kzbz.$sem.$ver.$grp.'.txt'; - $name=strtolower($name); + $name=mb_strtolower($name); $fp=fopen('../../../mlists/student/'.$name,"w"); - //$fp=fopen('../../../../mlists/student/'.$name,"w"); + $crlf="\n"; - $numrows_student=pg_num_rows($result_student); + $numrows_student = $db->db_num_rows($result_student); for ($s=0; $s<$numrows_student; $s++) { - $row=pg_fetch_object($result_student, $s); + $row = $db->db_fetch_object($result_student, $s); fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf); } fclose($fp); @@ -140,15 +118,15 @@ $sql_query="SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz,uid, nachname, vorname, semester, lower(verband) AS verband, gruppe FROM campus.vw_student JOIN tbl_studiengang USING (studiengang_kz) WHERE uid NOT LIKE '\\\\_%' AND semester<10 AND semester>0 AND vw_student.aktiv AND (substring(uid from 1 for 1)<'0' OR substring(uid from 1 for 1)>'9')"; - echo $sql_query; - if(!($result=pg_query($conn, $sql_query))) - die(pg_errormessage($conn)); + + if(!($result = $db->db_query($sql_query))) + die($db->db_last_error()); // File Operations $name='student_lehrverband.txt'; $fp=fopen('../../../mlists/student/'.$name,"w"); $crlf="\n"; // Wunsch von Kopper: ^t^t^t# - while ($row=pg_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) fwrite($fp, $row->kurzbz."\t".$row->semester.$row->verband.$row->gruppe."\t".$row->uid."\t#".$row->nachname.' '.$row->vorname.$crlf); fclose($fp); echo $name.', ';