This commit is contained in:
Christian Paminger
2007-01-29 12:10:46 +00:00
parent 64e81bd24b
commit 7180919b31
6 changed files with 521 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
<?php
/**
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
*/
include('../../config.inc.php');
include('../../../include/functions.inc.php');
if (!$conn = @pg_pconnect($conn_string))
die("Es konnte keine Verbindung zum Server aufgebaut werden.");
if(!($result=pg_exec($conn, "SELECT p.uid, nachname, vornamen FROM tbl_person as p join tbl_mitarbeiter using(uid) WHERE tbl_mitarbeiter.lektor=true AND p.uid NOT LIKE '\\\\_%' ORDER BY nachname")))
die(pg_errormessage($conn));
$num_rows=pg_numrows($result);
?>
<HTML>
<HEAD>
<TITLE>Mailinglisten</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" href="../../../skin/vilesci.css" type="text/css">
</HEAD>
<BODY class="background_main">
<H3>MailingListen </H3>
<?php
// File Operations
$name='tw_lkt.txt';
$name=strtolower($name);
$fp=fopen('../../../../mlists/'.$name,"w");
$crlf="\n";
for ($i=0; $i<$num_rows; $i++)
{
$row=pg_fetch_object($result, $i);
fwrite($fp, '#'.$row->nachname.' '.$row->vornamen.$crlf.$row->uid.$crlf);
}
fclose($fp);
echo $name.' created<br>';
?>
<P><BR>
Die Mailinglisten der Lektoren wurden erstellt. <BR>
Sie k&ouml;nnen nun die erstellten Datein auf den Mail-Server kopieren (<A href="mlists_copy.php">Copy
Lists</A>).</P>
<P><A href="index.html" class="linkblue">&lt;&lt; Zur&uuml;ck</A></P>
</BODY>
</HTML>
+31
View File
@@ -0,0 +1,31 @@
<HTML>
<HEAD>
<TITLE>Copy mLists</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" href="../../../include/styles.css" type="text/css">
</HEAD>
<BODY class="background_main">
<H3>Copy mLists</H3>
<?php
function mysystem($command)
{
if (!($p=popen("($command)2>&1","r")))
{
return 126;
}
while (!feof($p))
{
$line=fgets($p,1000);
$out .= $line;
}
pclose($p);
return $out;
}
$var="../../../../mlists/copymlists.sh";
echo mysystem($var);
?>
Verarbeitung erledigt!
</BODY>
</HTML>
+107
View File
@@ -0,0 +1,107 @@
<?php
/**
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
*/
include('../../config.inc.php');
include('../../../include/functions.inc.php');
include('../../../include/globals.inc.php');
if (!$conn = @pg_pconnect(CONN_STRING))
die("Es konnte keine Verbindung zum Server aufgebaut werden.");
if(!($result_stg=pg_exec($conn, "SELECT studiengang_kz, bezeichnung, kurzbz FROM tbl_studiengang ORDER BY kurzbz ASC")))
die(pg_errormessage($conn));
$num_rows=pg_numrows($result_stg);
?>
<HTML>
<HEAD>
<TITLE>Mailinglisten</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" href="../../../skin/vilesci.css" type="text/css">
</HEAD>
<BODY class="background_main">
<H3>MailingListen </H3>
<?php
$crlf="\n";
for ($i=0; $i<$num_rows; $i++)
{
$row=pg_fetch_object($result_stg, $i);
$stg_id=$row->studiengang_kz;
$stg_kzbz=$row->kurzbz;
$sql_query="SELECT * FROM tbl_mailgrp WHERE studiengang_kz=$stg_id ORDER BY mailgrp_kurzbz";
//echo $sql_query;
if(!($result_mg=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_mg=pg_numrows($result_mg);
// Mailgroups
for ($j=0; $j<$nr_mg; $j++)
{
$row_mg=pg_fetch_object($result_mg, $j);
$mg_kurzbz=$row_mg->mailgrp_kurzbz;
$sql_query='SELECT uid, nachname, vornamen '.
'FROM tbl_person as p join tbl_personmailgrp using(uid) '.
'WHERE tbl_personmailgrp.mailgrp_kurzbz=\''.$mg_kurzbz.'\' '."AND p.uid NOT LIKE '\\\\_%'".
'ORDER BY nachname';
//echo $sql_query;
if(!($result_person=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
// File Operations
$name=$mg_kurzbz.'.txt';
$name=strtolower($name);
$fp=fopen('../../../../mlists/'.$name,"w");
//$fp=fopen('../../../../mlists/'.$name,"w");
$nr_person=pg_numrows($result_person);
for ($p=0; $p<$nr_person; $p++)
{
$row=pg_fetch_object($result_person, $p);
fwrite($fp, '#'.$row->nachname.' '.$row->vornamen.$crlf.$row->uid.$crlf);
}
fclose($fp);
echo $name.' created<br>';
flush();
}
}
//Zusammenbauen der Studiengaenge die keine Alias Adressen bekommen
$noalias_kz='';
foreach($noalias as $var)
{
if($noalias_kz!='')
$noalias_kz.=',';
$noalias_kz.=$var;
}
//$qry = "SELECT vornamen, nachname, uid, alias FROM tbl_person where alias<>'' ORDER BY nachname, vornamen";
$qry = "SELECT vornamen, nachname, uid, alias FROM tbl_person LEFT JOIN tbl_student using(uid)
WHERE alias<>'' AND (studiengang_kz NOT IN($noalias_kz) OR studiengang_kz is null)
ORDER BY nachname, vornamen";
if($result = pg_query($conn, $qry))
{
$fp=fopen('../../../../mlists/tw_alias.txt',"w");
while($row=pg_fetch_object($result))
{
fwrite($fp,"# ".$row->nachname." ".$row->vornamen.$crlf);
fwrite($fp,$row->alias.": ".$row->uid.$crlf);
}
fclose($fp);
echo 'tw_alias.txt created<br>';
}
else
{
echo 'tw_alias.txt failed<br>';
}
?>
<P><BR>
Die Mailinglisten wurden erstellt. <BR>
Sie k&ouml;nnen nun die erstellten Datein auf den Mail-Server kopieren (<A href="mlists_copy.php">Copy
Lists</A>).</P>
<P><A href="index.html" class="linkblue">&lt;&lt; Zur&uuml;ck</A></P>
</BODY>
</HTML>
+217
View File
@@ -0,0 +1,217 @@
<?php
/****************************************************************************
* 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('../../config.inc.php');
include('../../../include/functions.inc.php');
?>
<HTML>
<HEAD>
<TITLE>Mailinglisten</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
</HEAD>
<BODY>
<H3>MailingListen abgleich</H3>
<?php
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden.\n';
// aktuelles Studiensemester ermitteln
$sql_query="SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE start<=now() ORDER BY start DESC LIMIT 1";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
if($row=pg_fetch_object($result))
$studiensemester=$row->studiensemester_kurzbz;
else
$error_msg.=pg_errormessage($conn).$sql_query;
// **************************************************************
// LektorenVerteiler abgleichen
$mlist_name='tw_lkt';
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo $mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name' AND uid NOT IN (SELECT uid FROM tbl_mitarbeiter WHERE lektor)";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
{
$sql_query="DELETE FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name' AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT uid FROM tbl_mitarbeiter WHERE lektor AND uid NOT LIKE '\\\\_%' AND uid NOT IN (SELECT uid FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
{
$sql_query="INSERT INTO tbl_personmailgrp VALUES ('$row->uid','$mlist_name', now(), 'mlists_generate.php')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// **************************************************************
// Verteiler fuer alle fixAngestellten abgleichen
$mlist_name='tw_fix';
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo '<BR>'.$mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name' AND uid NOT IN (SELECT uid FROM tbl_mitarbeiter WHERE fixangestellt)";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
{
$sql_query="DELETE FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name' AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT uid FROM tbl_mitarbeiter WHERE fixangestellt AND uid NOT LIKE '\\\\_%' AND uid NOT IN (SELECT uid FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
{
$sql_query="INSERT INTO tbl_personmailgrp VALUES ('$row->uid','$mlist_name', now(), 'mlists_generate.php')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// **************************************************************
// Verteiler fuer alle fixen Lektoren abgleichen
$mlist_name='tw_fix_lkt';
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo '<BR>'.$mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name' AND uid NOT IN (SELECT uid FROM tbl_mitarbeiter WHERE fixangestellt AND lektor)";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
{
$sql_query="DELETE FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name' AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT uid FROM tbl_mitarbeiter WHERE fixangestellt AND lektor AND uid NOT LIKE '\\\\_%' AND uid NOT IN (SELECT uid FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$mlist_name')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
{
$sql_query="INSERT INTO tbl_personmailgrp VALUES ('$row->uid','$mlist_name', now(), 'mlists_generate.php')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// **************************************************************
// Lektoren-Verteiler innerhalb der Studiengaenge abgleichen
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo '<BR>Lektoren-Verteiler der Studiengaenge werden abgeglichen!<BR>';
flush();
$sql_query="SELECT uid,mailgrp_kurzbz FROM tbl_personmailgrp
WHERE mailgrp_kurzbz LIKE '%\\\\_lkt' AND mailgrp_kurzbz!='tw_lkt' AND mailgrp_kurzbz!='tw_fix_lkt'
AND (uid,mailgrp_kurzbz) NOT IN
(SELECT lektor,lower(kurzbz || '_lkt')
FROM tbl_lehrveranstaltung NATURAL JOIN tbl_studiengang
WHERE studiensemester_kurzbz='$studiensemester' AND lektor 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))
{
$sql_query="DELETE FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$row->mailgrp_kurzbz' AND uid='$row->uid'";
if(!@pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// Lektoren holen die noch nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT lektor,lower(kurzbz || '_lkt') AS mlist_name FROM tbl_lehrveranstaltung NATURAL JOIN tbl_studiengang
WHERE studiensemester_kurzbz='$studiensemester'
AND lektor NOT LIKE '\\\\_%' AND kurzbz!='TW' AND (lektor,lower(kurzbz || '_lkt')) NOT IN
(SELECT uid,mailgrp_kurzbz FROM tbl_personmailgrp
WHERE mailgrp_kurzbz LIKE '%\\\\_lkt' AND mailgrp_kurzbz!='tw_lkt' AND mailgrp_kurzbz!='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))
{
$sql_query="INSERT INTO tbl_personmailgrp VALUES ('$row->lektor','$row->mlist_name', now(), 'mlists_generate.php')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// **************************************************************
// Studentenverteiler abgleichen
// Studenten holen die nicht mehr in den Verteiler gehoeren
echo '<BR>Studenten-Verteiler werden abgeglichen!<BR>';
flush();
$sql_query="SELECT mailgrp_kurzbz,uid FROM tbl_personmailgrp NATURAL JOIN tbl_einheit WHERE (uid, mailgrp_kurzbz) NOT IN (SELECT uid, mailgrp_kurzbz FROM tbl_einheitstudent NATURAL JOIN tbl_einheit WHERE mailgrp_kurzbz IS NOT NULL)";
//echo $sql_query;
if(!($result=@pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn).$sql_query;
while($row=pg_fetch_object($result))
{
$sql_query="DELETE FROM tbl_personmailgrp WHERE mailgrp_kurzbz='$row->mailgrp_kurzbz' AND uid='$row->uid'";
if(!@pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
// Studenten holen die noch nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT * FROM tbl_einheitstudent NATURAL JOIN tbl_einheit WHERE mailgrp_kurzbz IS NOT NULL
AND (uid,mailgrp_kurzbz) NOT IN (SELECT uid,mailgrp_kurzbz FROM tbl_personmailgrp)";
//echo $sql_query;
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn).$sql_query;
while($row=pg_fetch_object($result))
{
$sql_query="INSERT INTO tbl_personmailgrp VALUES ('$row->uid','$row->mailgrp_kurzbz', now(), 'mlists_generate.php')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
echo '-';
flush();
}
echo $error_msg;
?>
<BR>
<P>
Die Mailinglisten wurden abgeglichen. <BR>
</P>
</BODY>
</HTML>
+32
View File
@@ -0,0 +1,32 @@
<HTML>
<HEAD>
<TITLE>Copy mLists</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" href="../../../include/styles.css" type="text/css">
</HEAD>
<BODY class="background_main">
<H3>Copy mLists</H3>
<?php
function mysystem($command)
{
if (!($p=popen("($command)2>&1","r")))
{
return 126;
}
while (!feof($p))
{
$line=fgets($p,1000);
$out .= $line;
}
pclose($p);
return $out;
}
$var="../../../../mlists/student/copymlists.sh";
echo mysystem($var);
?>
Verarbeitung erledigt!<BR>
<A href="index.html" class="linkblue">&lt;&lt;Zur&uuml;ck</A>
</BODY>
</HTML>
+89
View File
@@ -0,0 +1,89 @@
<?php
/**
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
*/
include('../../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_exec($conn, "SELECT studiengang_kz, bezeichnung, kurzbz FROM tbl_studiengang ORDER BY kurzbz ASC")))
die(pg_errormessage($conn));
$num_rows=pg_numrows($erg);
?>
<HTML>
<HEAD>
<TITLE>Mailinglisten</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK rel="stylesheet" href="../../../skin/vilesci.css" type="text/css">
</HEAD>
<BODY class="background_main">
<H3>MailingListen </H3>
<?php
for ($i=0; $i<$num_rows; $i++)
{
$row=pg_fetch_object($erg, $i);
$stg_id=$row->studiengang_kz;
$stg_kzbz=$row->kurzbz;
$sql_query="SELECT DISTINCT semester FROM tbl_student WHERE studiengang_kz=$stg_id AND uid NOT LIKE '\\\\_%' AND semester<10 ORDER BY semester";
//echo $sql_query;
if(!($result_sem=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_sem=pg_numrows($result_sem);
for ($j=0; $j<$nr_sem; $j++)
{
$row_sem=pg_fetch_object($result_sem, $j);
echo $stg_kzbz.'-'.$row_sem->semester.'<br>';
$sql_query="SELECT DISTINCT verband FROM tbl_student WHERE studiengang_kz=$stg_id AND semester=$row_sem->semester AND uid NOT LIKE '\\\\_%' ORDER BY verband";
//echo $sql_query;
if(!($result_ver=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_ver=pg_numrows($result_ver);
for ($k=0; $k<$nr_ver; $k++)
{
$row_ver=pg_fetch_object($result_ver, $k);
$sql_query="SELECT DISTINCT gruppe FROM tbl_student WHERE gruppe!='' AND gruppe IS NOT NULL AND studiengang_kz=$stg_id AND semester=$row_sem->semester AND verband='$row_ver->verband' AND uid NOT LIKE '\\\\_%' ORDER BY gruppe";
//echo $sql_query;
if(!($result_grp=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_grp=pg_numrows($result_grp);
for ($l=0; $l<$nr_grp; $l++)
{
$row_grp=pg_fetch_object($result_grp, $l);
$stgid=$stg_id;
$sem=$row_sem->semester;
$ver=$row_ver->verband;
$grp=$row_grp->gruppe;
$sql_query='SELECT p.uid, p.nachname, p.vornamen FROM tbl_student join tbl_person as p using(uid) WHERE studiengang_kz='.$stgid.' AND semester='.$sem.' AND verband=\''.strtoupper($ver).'\' AND gruppe='.$grp." AND p.uid NOT LIKE '\\\\_%' ORDER BY p.nachname";
//echo $sql_query;
if(!($result_student=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
// File Operations
$name=$stg_kzbz.$sem.$ver.$grp.'.txt';
$name=strtolower($name);
$fp=fopen('../../../../mlists/student/'.$name,"w");
//$fp=fopen('../../../../mlists/student/'.$name,"w");
$crlf="\n";
$numrows_student=pg_numrows($result_student);
for ($s=0; $s<$numrows_student; $s++)
{
$row=pg_fetch_object($result_student, $s);
fwrite($fp, '#'.$row->nachname.' '.$row->vornamen.$crlf.$row->uid.$crlf);
}
fclose($fp);
echo $name.', ';
flush();
}
echo 'created<br>';
}
}
}
?>
Finished!!! <BR>
<A href="index.html" class="linkblue">&lt;&lt;Zur&uuml;ck</A>
</BODY>
</HTML>