diff --git a/system/sync/sync_stpldev_stpl.php b/system/sync/sync_stpldev_stpl.php
index 03b8ac446..0cd854c54 100644
--- a/system/sync/sync_stpldev_stpl.php
+++ b/system/sync/sync_stpldev_stpl.php
@@ -25,12 +25,12 @@
* an die Betroffenen Lektoren und Studenten
* Uebersichtsmails werden an LV-Planung und Administration geschickt
*/
-require_once('../../config/vilesci.config.inc.php');
-require_once('../../config/global.config.inc.php');
-require_once('../../include/functions.inc.php');
-require_once('../../include/studiensemester.class.php');
-require_once('../../include/mail.class.php');
-require_once('../../include/datum.class.php');
+require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
+require_once(dirname(__FILE__).'/../../config/global.config.inc.php');
+require_once(dirname(__FILE__).'/../../include/functions.inc.php');
+require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
+require_once(dirname(__FILE__).'/../../include/mail.class.php');
+require_once(dirname(__FILE__).'/../../include/datum.class.php');
echo '
@@ -51,6 +51,15 @@ else
$mailstudents=(boolean)true;
+// Commandline Paramter parsen bei Aufruf ueber Cronjob
+// zb php sync_stpldev_stpl.php --sendmail false
+$longopt = array(
+ "sendmail:",
+);
+$commandlineparams = getopt('', $longopt);
+if(isset($commandlineparams['sendmail']) && $commandlineparams['sendmail']=='false')
+ $sendmail=false;
+
$datum = new datum();
$count_del=0;
@@ -81,6 +90,7 @@ $datum_ende=$ss->ende;
if(defined('LVPLAN_SYNC_ENDE') && LVPLAN_SYNC_ENDE!='')
$datum_ende=LVPLAN_SYNC_ENDE;
+$db =new basis_db();
$stgwhere = '';
$stgwheredev = '';
if(isset($_GET['custom']))
@@ -88,12 +98,12 @@ if(isset($_GET['custom']))
$sendmail = isset($_GET['mail']);
$mailstudents = (isset($_GET['nostudentmail'])?false:true);
$studiengang_kz=$_GET['studiengang_kz'];
- $stgwhere = " AND studiengang_kz='".addslashes($studiengang_kz)."'";
- $stgwheredev = " AND vw_stundenplandev.studiengang_kz='".addslashes($studiengang_kz)."'";
+ $stgwhere = " AND studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
+ $stgwheredev = " AND vw_stundenplandev.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
$datum_begin = $datum->formatDatum($_GET['von'],'Y-m-d');
$datum_ende = $datum->formatDatum($_GET['bis'],'Y-m-d');
}
-$db =new basis_db();
+
// Beginnzeiten holen
$qry = "SELECT stunde,to_char(beginn, 'HH24:MI') AS beginn FROM lehre.tbl_stunde";
$beginnzeit_arr=array();
@@ -109,7 +119,7 @@ if($result = $db->db_query($qry))
function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz)
{
$db = new basis_db();
-
+
$students = array();
if($gruppe_kurzbz=='')
{
@@ -121,15 +131,15 @@ function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gr
public.tbl_benutzer ON (uid=student_uid)
WHERE
tbl_benutzer.aktiv=true AND
- studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
- studiengang_kz = '".addslashes($studiengang_kz)."' AND
- semester = '".addslashes($semester)."'";
+ studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
+ studiengang_kz = ".$db->db_add_param($studiengang_kz)." AND
+ semester = ".$db->db_add_param($semester);
if(trim($verband)!='')
{
- $qry.=" AND verband = '".addslashes($verband)."'";
+ $qry.=" AND verband = ".$db->db_add_param($verband);
if(trim($gruppe)!='')
{
- $qry.=" AND gruppe = '".addslashes($gruppe)."'";
+ $qry.=" AND gruppe = ".$db->db_add_param($gruppe);
}
}
}
@@ -142,8 +152,8 @@ function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gr
LEFT JOIN
public.tbl_benutzer USING (uid)
WHERE
- gruppe_kurzbz='".addslashes($gruppe_kurzbz)."' AND
- studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
+ gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz)." AND
+ studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
tbl_benutzer.aktiv=true
";
@@ -183,9 +193,16 @@ Dies ist eine automatische Mail!
Es haben sich folgende Aenderungen in Ihrem
echo 'Neue Datensätze werden geholt. ('.date('H:i:s').')
';flush();
$message_stpl .= 'Neue Datensätze werden geholt. ('.date('H:i:s').')';
-$sql_query="SELECT * FROM lehre.vw_stundenplandev WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' ".$stgwhere." AND
- NOT EXISTS
- (SELECT stundenplan_id FROM lehre.tbl_stundenplan WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' AND stundenplan_id=stundenplandev_id)
+$sql_query="SELECT * FROM lehre.vw_stundenplandev
+ WHERE
+ datum>=".$db->db_add_param($datum_begin)."
+ AND datum<=".$db->db_add_param($datum_ende)." ".$stgwhere."
+ AND NOT EXISTS
+ (SELECT stundenplan_id FROM lehre.tbl_stundenplan
+ WHERE
+ datum>=".$db->db_add_param($datum_begin)."
+ AND datum<=".$db->db_add_param($datum_ende)."
+ AND stundenplan_id=stundenplandev_id)
ORDER BY datum, stunde;";
@@ -203,32 +220,41 @@ else
$sql_query='INSERT INTO lehre.tbl_stundenplan
(stundenplan_id,unr,mitarbeiter_uid,datum,stunde,ort_kurzbz,studiengang_kz,semester,verband,gruppe,
gruppe_kurzbz,titel,'.(LVPLAN_ANMERKUNG_ANZEIGEN?'anmerkung,':'').'fix,updateamum,updatevon,insertamum,insertvon,lehreinheit_id) VALUES'; //spalte anmerkung nur syncen, wenn im Config aktiv
- $sql_query.="($row->stundenplandev_id,$row->unr,'$row->uid','$row->datum',$row->stunde,'$row->ort_kurzbz',
- $row->studiengang_kz,$row->semester";
+ $sql_query.="(".$db->db_add_param($row->stundenplandev_id).",".
+ $db->db_add_param($row->unr).",".
+ $db->db_add_param($row->uid).",".
+ $db->db_add_param($row->datum).",".
+ $db->db_add_param($row->stunde).",".
+ $db->db_add_param($row->ort_kurzbz).",".
+ $db->db_add_param($row->studiengang_kz).",".
+ $db->db_add_param($row->semester);
if ($row->verband==null)
$sql_query.=',NULL';
else
- $sql_query.=",'$row->verband'";
+ $sql_query.=",".$db->db_add_param($row->verband);
if ($row->gruppe==null)
$sql_query.=',NULL';
else
- $sql_query.=",'$row->gruppe'";
+ $sql_query.=",".$db->db_add_param($row->gruppe);
if ($row->gruppe_kurzbz==null)
$sql_query.=',NULL';
else
- $sql_query.=",'$row->gruppe_kurzbz'";
- $sql_query.=",'$row->titel'";
+ $sql_query.=",".$db->db_add_param($row->gruppe_kurzbz);
+ $sql_query.=",".$db->db_add_param($row->titel);
if (LVPLAN_ANMERKUNG_ANZEIGEN) //spalte anmerkung nur syncen, wenn im Config aktiv
- $sql_query.=",'$row->anmerkung'";
+ $sql_query.=",".$db->db_add_param($row->anmerkung);
if ($row->fix=='t')
$sql_query.=',TRUE';
else
$sql_query.=',FALSE';
- $sql_query.=",'$row->updateamum','$row->updatevon','$row->insertamum','$row->insertvon'";
+ $sql_query.=",".$db->db_add_param($row->updateamum).','.
+ $db->db_add_param($row->updatevon).','.
+ $db->db_add_param($row->insertamum).','.
+ $db->db_add_param($row->insertvon);
if ($row->lehreinheit_id==null)
$sql_query.=',NULL';
else
- $sql_query.=",$row->lehreinheit_id";
+ $sql_query.=','.$db->db_add_param($row->lehreinheit_id);
$sql_query.=');';
//echo $sql_query;
if (!$result_insert = $db->db_query($sql_query))
@@ -273,14 +299,14 @@ else
if ($mailstudents)
{
$studenten = getStudentsFromGroup($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $ss->studiensemester_kurzbz);
-
+
foreach ($studenten as $student)
{
if (!isset($message[$student]->isneu))
{
if(!isset($message[$student]))
$message[$student] = new stdClass();
-
+
$message[$student]->isneu=true;
$message[$student]->mailadress=$student.'@'.DOMAIN;
$message[$student]->message_begin=$message_begin.'
';
@@ -310,9 +336,14 @@ else
echo '
Alte Datensätze werden geholt.('.date('H:i:s').')
';flush();
$message_stpl .='
Alte Datensätze werden geholt.('.date('H:i:s').')
';
-$sql_query="SELECT * FROM lehre.vw_stundenplan WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' ".$stgwhere."
+$sql_query="SELECT * FROM lehre.vw_stundenplan
+ WHERE datum>=".$db->db_add_param($datum_begin)."
+ AND datum<=".$db->db_add_param($datum_ende)." ".$stgwhere."
AND NOT EXISTS
- (SELECT stundenplandev_id FROM lehre.tbl_stundenplandev WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' AND stundenplandev_id=stundenplan_id);";
+ (SELECT stundenplandev_id FROM lehre.tbl_stundenplandev
+ WHERE datum>=".$db->db_add_param($datum_begin)."
+ AND datum<=".$db->db_add_param($datum_ende)."
+ AND stundenplandev_id=stundenplan_id);";
if (!$result = $db->db_query($sql_query))
{
echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error();
@@ -323,8 +354,8 @@ else
echo '
Alte Datensätze werden gelöscht.
';flush();
while ($row = $db->db_fetch_object($result))
{
- $sql_query='DELETE FROM lehre.tbl_stundenplan WHERE stundenplan_id='.$row->stundenplan_id;
-
+ $sql_query='DELETE FROM lehre.tbl_stundenplan WHERE stundenplan_id='.$db->db_add_param($row->stundenplan_id);
+
if (!$result_delete=$db->db_query($sql_query))
{
echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error();
@@ -351,6 +382,8 @@ else
$message[$row->uid]->isalt=true;
$message[$row->uid]->mailadress=$row->uid.'@'.DOMAIN;
$message[$row->uid]->message_begin=$message_begin.'
';
+ if(!isset($message[$row->uid]->message))
+ $message[$row->uid]->message='';
$message[$row->uid]->message.='Gelöschte Stunden:
| Ort | Verband | LektorIn | Datum | Std (Beginnzeit) | Lehrfach | Info |
';
}
@@ -367,14 +400,14 @@ else
if ($mailstudents)
{
$studenten = getStudentsFromGroup($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $ss->studiensemester_kurzbz);
-
+
foreach ($studenten as $student)
{
if (!isset($message[$student]->isalt))
{
if(!isset($message[$student]))
$message[$student] = new stdClass();
-
+
$message[$student]->isalt=true;
$message[$student]->mailadress=$student.'@'.DOMAIN;
$message[$student]->message_begin=$message_begin.'
';
@@ -405,8 +438,8 @@ else
echo '
Geänderte Datensätze werden geholt.('.date('H:i:s').')
';flush();
$message_stpl.='
Geänderte Datensätze werden geholt.('.date('H:i:s').')
';
$sql_query="SELECT vw_stundenplandev.*, vw_stundenplan.datum AS old_datum, vw_stundenplan.stunde AS old_stunde,
- vw_stundenplan.ort_kurzbz AS old_ort_kurzbz, vw_stundenplan.lektor AS old_lektor,
- vw_stundenplan.uid AS old_uid, vw_stundenplan.titel AS old_titel
+ vw_stundenplan.ort_kurzbz AS old_ort_kurzbz, vw_stundenplan.lektor AS old_lektor,
+ vw_stundenplan.uid AS old_uid, vw_stundenplan.titel AS old_titel
FROM lehre.vw_stundenplandev, lehre.vw_stundenplan
WHERE vw_stundenplan.stundenplan_id=vw_stundenplandev.stundenplandev_id AND (
vw_stundenplandev.unr!=vw_stundenplan.unr OR
@@ -422,13 +455,13 @@ $sql_query="SELECT vw_stundenplandev.*, vw_stundenplan.datum AS old_datum, vw_st
coalesce(vw_stundenplandev.titel,'')!=coalesce(vw_stundenplan.titel,'') OR
vw_stundenplandev.fix!=vw_stundenplan.fix OR
vw_stundenplandev.lehreinheit_id!=vw_stundenplan.lehreinheit_id )
- AND vw_stundenplandev.datum>='".addslashes($datum_begin)."'
- AND vw_stundenplandev.datum<='".addslashes($datum_ende)."' ".$stgwheredev.";";
+ AND vw_stundenplandev.datum>=".$db->db_add_param($datum_begin)."
+ AND vw_stundenplandev.datum<=".$db->db_add_param($datum_ende)." ".$stgwheredev.";";
//vw_stundenplandev.anmerkung!=vw_stundenplan.anmerkung OR --> von kindlm am 16.03.2012 aus obigem SQL entfernt, da nicht relevant fuer tbl_stundenplan und nur fuer intern gedacht
//echo $sql_query.'
';
-
-
+
+
if (!$result = $db->db_query($sql_query))
{
echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error();
@@ -441,7 +474,7 @@ else
{
//echo '.';flush();
// Alten Eintrag aus tbl_stundenplan holen
- $sql_query="SELECT * FROM lehre.tbl_stundenplandev WHERE stundenplandev_id='".addslashes($row->stundenplandev_id)."';";
+ $sql_query="SELECT * FROM lehre.tbl_stundenplandev WHERE stundenplandev_id=".$db->db_add_param($row->stundenplandev_id).";";
if (!$result_old = $db->db_query($sql_query))
{
echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error();
@@ -452,21 +485,26 @@ else
// Datensaetze aendern
$sql_query="UPDATE lehre.tbl_stundenplan SET
- unr=$row->unr,mitarbeiter_uid='$row->uid',datum='$row->datum',stunde=$row->stunde,
- ort_kurzbz='$row->ort_kurzbz',studiengang_kz=$row->studiengang_kz,semester=$row->semester";
+ unr=".$db->db_add_param($row->unr).
+ ",mitarbeiter_uid=".$db->db_add_param($row->uid).
+ ",datum=".$db->db_add_param($row->datum).
+ ",stunde=".$db->db_add_param($row->stunde).
+ ",ort_kurzbz=".$db->db_add_param($row->ort_kurzbz).
+ ",studiengang_kz=".$db->db_add_param($row->studiengang_kz).
+ ",semester=".$db->db_add_param($row->semester);
if ($row->verband==null)
$sql_query.=',verband=NULL';
else
- $sql_query.=",verband='$row->verband'";
+ $sql_query.=",verband=".$db->db_add_param($row->verband);
if ($row->gruppe==null)
$sql_query.=',gruppe=NULL';
else
- $sql_query.=",gruppe='$row->gruppe'";
+ $sql_query.=",gruppe=".$db->db_add_param($row->gruppe);
if ($row->gruppe_kurzbz==null)
// $sql_query.=",gruppe_kurzbz=NULL, titel=$row->titel"; --> Das war die urspruengliche query. row->titel von kindlm am 16.03.2012 entfernt und in eigenes if geschrieben.
$sql_query.=',gruppe_kurzbz=NULL';
else
- $sql_query.=",gruppe_kurzbz='$row->gruppe_kurzbz'";
+ $sql_query.=",gruppe_kurzbz=".$db->db_add_param($row->gruppe_kurzbz);
//$sql_query.=",titel='$row->titel',anmerkung='$row->anmerkung'"; --> anmerkung auskommentiert vom kindlm am 16.03.2012 da nicht relevant fuer tbl_stundenplan und nur fuer intern gedacht
if ($row->titel=='')
$sql_query.=',titel=NULL';
@@ -476,12 +514,12 @@ else
$sql_query.=',fix=TRUE';
else
$sql_query.=',fix=FALSE';
- $sql_query.=",updateamum='$row->updateamum',updatevon='$row->updatevon'";
+ $sql_query.=",updateamum=".$db->db_add_param($row->updateamum).",updatevon=".$db->db_add_param($row->updatevon);
if ($row->lehreinheit_id==null)
$sql_query.=',lehreinheit_id=NULL';
else
- $sql_query.=",lehreinheit_id=$row->lehreinheit_id";
- $sql_query.=" WHERE stundenplan_id=$row->stundenplandev_id;";
+ $sql_query.=",lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
+ $sql_query.=" WHERE stundenplan_id=".$db->db_add_param($row->stundenplandev_id).";";
echo $sql_query.'
';
if (!$result_update=$db->db_query($sql_query))
{
@@ -508,6 +546,8 @@ else
$message[$row->uid]->isset=true;
$message[$row->uid]->mailadress=$row->uid.'@'.DOMAIN;
$message[$row->uid]->message_begin=$message_begin.'
';
+ if(!isset($message[$row->uid]->message))
+ $message[$row->uid]->message='';
$message[$row->uid]->message.='Geänderte Stunden:
| Status | Ort | Verband | LektorIn | Datum | Std (Beginnzeit) | Lehrfach | Info |
';
}
@@ -588,14 +628,14 @@ else
if ($mailstudents)
{
$studenten = getStudentsFromGroup($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $ss->studiensemester_kurzbz);
-
+
foreach ($studenten as $student)
{
if (!isset($message[$student]->isset))
{
if(!isset($message[$student]))
$message[$student] = new stdClass();
-
+
$message[$student]->isset=true;
$message[$student]->mailadress=$student.'@'.DOMAIN;
$message[$student]->message_begin=$message_begin.'
';
@@ -611,7 +651,7 @@ else
$message[$student]->message.=''.$row->old_stunde.' ('.$beginnzeit_arr[$row->old_stunde].') | ';
$message[$student]->message.=''.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.') | ';
$message[$student]->message.=''.$row->old_titel.' | ';
-
+
$message[$student]->message.="\n";
$message[$student]->message.='| Jetzt: | ';
$myclass=($row->ort_kurzbz!=$row->old_ort_kurzbz?'marked':'unmarked');