, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Syncronisiert die Tabelle Stundenplandev mit der Tabelle Stundenplan * und versendet Benachrichtigungsmails mit den geänderten Stunden * an die Betroffenen Lektoren und Studenten * Uebersichtsmails werden an LV-Planung und Administration geschickt */ 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'); require_once(dirname(__FILE__).'/../../include/phrasen.class.php'); $p_de = new phrasen('German'); $p_en = new phrasen('English'); echo ' LV-Plan-Synchro (stpldev-stpl) '; if (isset($_GET['sendmail'])) { if ($_GET['sendmail']=='true') $sendmail=(boolean)true; else $sendmail=(boolean)false; } else $sendmail=(boolean)true; $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; $count_ins=0; $count_upd=0; $count_err=0; // error log fuer jeden Studiengang $error_log=array(); // Mails an die Lektoren und Verbaende $message=array(); // Nachrichten fuer die LV-Planung $message_stpl=' '; // error_log $message_sync=''; // Mail Headers festlegen $headers= "MIME-Version: 1.0\r\n"; $headers.="Content-Type: text/html; charset=UTF-8\r\n"; $stsem = new studiensemester(); $studiensemester = $stsem->getaktorNearest(); $ss=new studiensemester($studiensemester); $datum_begin=$ss->start; $datum_ende=$ss->ende; //$datum_begin='2012-08-03'; //$datum_ende='2013-02-02'; // $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'])) { $sendmail = isset($_GET['mail']); $mailstudents = (isset($_GET['nostudentmail'])?false:true); $studiengang_kz=$_GET['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'); } $message_summary = ''; // Beginnzeiten holen $qry = "SELECT stunde,to_char(beginn, 'HH24:MI') AS beginn FROM lehre.tbl_stunde"; $beginnzeit_arr=array(); if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { $beginnzeit_arr[$row->stunde]=$row->beginn; } } // ************* FUNCTIONS **************** // function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz) { $db = new basis_db(); $students = array(); if($gruppe_kurzbz=='') { $qry = "SELECT distinct student_uid FROM public.tbl_studentlehrverband LEFT JOIN public.tbl_benutzer ON (uid=student_uid) WHERE tbl_benutzer.aktiv=true AND 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 = ".$db->db_add_param($verband); if(trim($gruppe)!='') { $qry.=" AND gruppe = ".$db->db_add_param($gruppe); } } } else { $qry = "SELECT distinct uid as student_uid FROM public.tbl_benutzergruppe LEFT JOIN public.tbl_benutzer USING (uid) WHERE gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_benutzer.aktiv=true "; } if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $students[]=$row->student_uid; } } return $students; } // **************************************** // $message_begin=' '.$p_de->t('lvplan/automatischeMail').'
'.$p_de->t('lvplan/folgendeAenderungen').'
'.$p_en->t('lvplan/automatischeMail').'
'.$p_en->t('lvplan/folgendeAenderungen').'
'; /************************************************** * Datensaetze holen die neu sind */ 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>=".$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;"; if (!$result = $db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); } else { echo 'Neue Datensätze werden angelegt.
';flush(); while ($row = $db->db_fetch_object($result)) { //echo '.';flush(); $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.="(".$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.=",".$db->db_add_param($row->verband); if ($row->gruppe==null) $sql_query.=',NULL'; else $sql_query.=",".$db->db_add_param($row->gruppe); if ($row->gruppe_kurzbz==null) $sql_query.=',NULL'; else $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.=",".$db->db_add_param($row->anmerkung); if ($row->fix=='t') $sql_query.=',TRUE'; else $sql_query.=',FALSE'; $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.=','.$db->db_add_param($row->lehreinheit_id); $sql_query.=');'; //echo $sql_query; if (!$result_insert = $db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $count_err++; } else { $count_ins++; if ($count_ins%10==0) { echo '-'; flush(); } // Mails vorbereiten // Lektoren if (mb_substr($row->uid,0,1)!='_') { if (!isset($message[$row->uid]->isneu)) { if(!isset($message[$row->uid])) $message[$row->uid] = new stdClass(); $message[$row->uid]->isneu=true; $message[$row->uid]->mailadress=$row->uid.'@'.DOMAIN; $message[$row->uid]->message_begin=$message_begin.'
'; $message[$row->uid]->message=''.$p_de->t('lvplan/neueStunden').' / '.$p_en->t('lvplan/neueStunden').'
'; } $message[$row->uid]->message.="\n"; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; } // Verband 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.'
'; $message[$student]->message=''.$p_de->t('lvplan/neueStunden').' / '.$p_en->t('lvplan/neueStunden').'
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$row->ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'
'; } $message[$student]->message.="\n"; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; } } } } foreach($message as $msg) if($msg->isneu) $msg->message.='
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$row->ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'

'; } /************************************************** * Datensaetze holen die alt sind */ 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>=".$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>=".$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(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); } 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='.$db->db_add_param($row->stundenplan_id); if (!$result_delete=$db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $count_err++; } else { $count_del++; if ($count_del%10==0) { echo '-'; flush(); } // Mails vorbereiten // Lektoren if (mb_substr($row->uid,0,1)!='_') { if (!isset($message[$row->uid]->isalt)) { if(!isset($message[$row->uid])) $message[$row->uid] = new stdClass(); $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.=''.$p_de->t('lvplan/geloeschteStunden').' / '.$p_en->t('lvplan/geloeschteStunden').'
'; } $message[$row->uid]->message.="\n"; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; } // Verband 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.'
'; if(!isset($message[$student]->message)) $message[$student]->message=''; $message[$student]->message.=''.$p_de->t('lvplan/geloeschteStunden').' / '.$p_en->t('lvplan/geloeschteStunden').'
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$row->ort_kurzbz.''.strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'
'; } $message[$student]->message.="\n"; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; } } } } foreach($message as $msg) if(isset($msg->isalt)) $msg->message.='
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$row->ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'

'; } /************************************************** * Datensaetze holen die anders sind */ 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.anmerkung AS old_anmerkung FROM lehre.vw_stundenplandev, lehre.vw_stundenplan WHERE vw_stundenplan.stundenplan_id=vw_stundenplandev.stundenplandev_id AND ( vw_stundenplandev.unr!=vw_stundenplan.unr OR vw_stundenplandev.uid!=vw_stundenplan.uid OR vw_stundenplandev.datum!=vw_stundenplan.datum OR vw_stundenplandev.stunde!=vw_stundenplan.stunde OR vw_stundenplandev.ort_kurzbz!=vw_stundenplan.ort_kurzbz OR vw_stundenplandev.studiengang_kz!=vw_stundenplan.studiengang_kz OR vw_stundenplandev.semester!=vw_stundenplan.semester OR vw_stundenplandev.verband!=vw_stundenplan.verband OR vw_stundenplandev.gruppe!=vw_stundenplan.gruppe OR vw_stundenplandev.gruppe_kurzbz!=vw_stundenplan.gruppe_kurzbz OR coalesce(vw_stundenplandev.titel,'')!=coalesce(vw_stundenplan.titel,'') OR vw_stundenplandev.fix!=vw_stundenplan.fix OR"; if (LVPLAN_ANMERKUNG_ANZEIGEN) $sql_query .= " coalesce(vw_stundenplandev.anmerkung,'')!=coalesce(vw_stundenplan.anmerkung,'') OR"; $sql_query .= " vw_stundenplandev.lehreinheit_id!=vw_stundenplan.lehreinheit_id ) AND vw_stundenplandev.datum>=".$db->db_add_param($datum_begin)." AND vw_stundenplandev.datum<=".$db->db_add_param($datum_ende)." ".$stgwheredev.";"; //echo $sql_query.'
'; if (!$result = $db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); } else { echo '
Datensätze werden geändert.
';flush(); while ($row = $db->db_fetch_object($result)) { //echo '.';flush(); // Alten Eintrag aus tbl_stundenplan holen $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(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); } else $row_old=$db->db_fetch_object($result_old); // Datensaetze aendern $sql_query="UPDATE lehre.tbl_stundenplan SET 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=".$db->db_add_param($row->verband); if ($row->gruppe==null) $sql_query.=',gruppe=NULL'; else $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=".$db->db_add_param($row->gruppe_kurzbz); if (LVPLAN_ANMERKUNG_ANZEIGEN) //spalte anmerkung nur syncen, wenn im Config aktiv $sql_query.=",anmerkung=".$db->db_add_param($row->anmerkung); if ($row->titel=='') $sql_query.=',titel=NULL'; else $sql_query.=",titel=".$db->db_add_param($row->titel); if ($row->fix=='t') $sql_query.=',fix=TRUE'; else $sql_query.=',fix=FALSE'; $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=".$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)) { echo $sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); $count_err++; } else { $count_upd++; if ($count_upd%10==0) { echo '-'; flush(); } // Mails vorbereiten // Lektoren if (mb_substr($row->uid,0,1)!='_') { if (!isset($message[$row->uid]->isset)) { if(!isset($message[$row->uid])) $message[$row->uid] = new stdClass(); $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.=''.$p_de->t('lvplan/geaenderteStunden').' / '.$p_en->t('lvplan/geaenderteStunden').'
'; } $message[$row->uid]->message.="\n"; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.=''; $message[$row->uid]->message.="\n"; $message[$row->uid]->message.=''; $myclass=($row->ort_kurzbz!=$row->old_ort_kurzbz?'marked':'unmarked'); $message[$row->uid]->message.=''; $myclass='unmarked'; $message[$row->uid]->message.=''; $myclass=($row->lektor!=$row->old_lektor?'marked':'unmarked'); $message[$row->uid]->message.=''; $myclass=(($row->datum!=$row->old_datum)?'marked':'unmarked'); $message[$row->uid]->message.=''; $myclass=(($row->stunde!=$row->old_stunde)?'marked':'unmarked'); $message[$row->uid]->message.=''; $myclass='unmarked'; $message[$row->uid]->message.=''; $myclass=($row->titel!=$row->old_titel?'marked':'unmarked'); $message[$row->uid]->message.=''; } //wenn sich der Lektor geaendert hat dann auch den vorherigen lektor informieren //sofern es kein dummylektor ist if($row->uid!=$row->old_uid) { if (mb_substr($row->old_uid,0,1)!='_') { if (!isset($message[$row->old_uid]->isset)) { if(!isset($message[$row->old_uid])) $message[$row->old_uid] = new stdClass(); $message[$row->old_uid]->isset=true; $message[$row->old_uid]->mailadress=$row->old_uid.'@'.DOMAIN; $message[$row->old_uid]->message_begin=$message_begin.'
'; if(!isset($message[$row->old_uid]->message)) $message[$row->old_uid]->message = ''; $message[$row->old_uid]->message.=''.$p_de->t('lvplan/geaenderteStunden').' / '.$p_en->t('lvplan/geaenderteStunden').'
'.$p_de->t('lvplan/status').'
'.$p_en->t('lvplan/status').'
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$p_de->t('lvplan/vorher').' / '.$p_en->t('lvplan/vorher').': '.$row->old_ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->old_lektor.''.$row->old_datum.''.$row->old_stunde.' ('.$beginnzeit_arr[$row->old_stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->old_titel.'
'.$p_de->t('lvplan/jetzt').' / '.$p_en->t('lvplan/jetzt').': '.$row->ort_kurzbz.''.strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'
----------------
'; } $message[$row->old_uid]->message.="\n"; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.=''; $message[$row->old_uid]->message.="\n"; $message[$row->old_uid]->message.=''; $myclass=($row->ort_kurzbz!=$row->old_ort_kurzbz?'marked':'unmarked'); $message[$row->old_uid]->message.=''; $myclass='unmarked'; $message[$row->old_uid]->message.=''; $myclass=($row->lektor!=$row->old_lektor?'marked':'unmarked'); $message[$row->old_uid]->message.=''; $myclass=(($row->datum!=$row->old_datum)?'marked':'unmarked'); $message[$row->old_uid]->message.=''; $myclass=(($row->stunde!=$row->old_stunde)?'marked':'unmarked'); $message[$row->old_uid]->message.=''; $myclass='unmarked'; $message[$row->old_uid]->message.=''; $myclass=($row->titel!=$row->old_titel?'marked':'unmarked'); $message[$row->old_uid]->message.=''; } } // Verband 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.'
'; if(!isset($message[$student]->message)) $message[$student]->message=''; $message[$student]->message.=''.$p_de->t('lvplan/geaenderteStunden').' / '.$p_en->t('lvplan/geaenderteStunden').'
'.$p_de->t('lvplan/status').'
'.$p_en->t('lvplan/status').'
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$p_de->t('lvplan/vorher').' / '.$p_en->t('lvplan/vorher').': '.$row->old_ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->old_lektor.''.$row->old_datum.''.$row->old_stunde.' ('.$beginnzeit_arr[$row->old_stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->old_titel.'
'.$p_de->t('lvplan/jetzt').' / '.$p_en->t('lvplan/jetzt').': '.$row->ort_kurzbz.''.strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'
----------------
'; } $message[$student]->message.="\n"; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.=''; $message[$student]->message.="\n"; $message[$student]->message.=''; $myclass=($row->ort_kurzbz!=$row->old_ort_kurzbz?'marked':'unmarked'); $message[$student]->message.=''; $myclass='unmarked'; $message[$student]->message.=''; $myclass=($row->lektor!=$row->old_lektor?'marked':'unmarked'); $message[$student]->message.=''; $myclass=(($row->datum!=$row->old_datum)?'marked':'unmarked'); $message[$student]->message.=''; $myclass=(($row->stunde!=$row->old_stunde)?'marked':'unmarked'); $message[$student]->message.=''; $myclass='unmarked'; $message[$student]->message.=''; $myclass=($row->titel!=$row->old_titel?'marked':'unmarked'); $message[$student]->message.=''; } } } } foreach($message as $msg) if(isset($msg->isset)) $msg->message.='
'.$p_de->t('lvplan/status').'
'.$p_en->t('lvplan/status').'
'.$p_de->t('lvplan/raum').'
'.$p_en->t('lvplan/raum').'
'.$p_de->t('lvplan/lehrverband').'
'.$p_en->t('lvplan/lehrverband').'
'.$p_de->t('lvplan/lektor').'
'.$p_en->t('lvplan/lektor').'
'.$p_de->t('global/datum').'
'.$p_en->t('global/datum').'
'.$p_de->t('lvplan/stdBeginn').'
'.$p_en->t('lvplan/stdBeginn').'
'.$p_de->t('lvplan/lehrfach').'
'.$p_en->t('lvplan/lehrfach').'
'.$p_de->t('lvplan/info').'
'.$p_en->t('lvplan/info').'
'.$p_de->t('lvplan/vorher').' / '.$p_en->t('lvplan/vorher').': '.$row->old_ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->old_lektor.''.$row->old_datum.''.$row->old_stunde.' ('.$beginnzeit_arr[$row->old_stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->old_titel.'
'.$p_de->t('lvplan/jetzt').' / '.$p_en->t('lvplan/jetzt').': '.$row->ort_kurzbz.''.mb_strtoupper($row->stg_typ.$row->stg_kurzbz).'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->gruppe_kurzbz.''.$row->lektor.''.$row->datum.''.$row->stunde.' ('.$beginnzeit_arr[$row->stunde].')'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')'.$row->titel.'
----------------

'; } /************************************************** * Mails an Lektoren und Studenten schicken */ $message_help = ''; if ($sendmail) { foreach ($message as $msg) { $mail = new mail($msg->mailadress,MAIL_LVPLAN,'LV-Plan Update','Sie muessen diese Mail als HTML-Mail anzeigen um die LV-Plan Änderungen anzuzeigen'); $mail->setHTMLContent($msg->message_begin.$msg->message); if ($mail->send()) { echo 'Mail an '.$msg->mailadress.' wurde verschickt!
'; $message_stpl.='Mail an '.$msg->mailadress.' wurde verschickt!
'; if ($message_help != $msg->message) { $message_summary .= $msg->message; $message_summary .= '


'; $message_help = $msg->message; } } else { echo 'Mail an '.$msg->mailadress.' konnte nicht verschickt werden!
'; $message_sync.='Mail an '.$msg->mailadress.' konnte ***nicht*** verschickt werden!
'; } } } if(defined('LVPLAN_HORDE_SYNC') && LVPLAN_HORDE_SYNC===true) { // Alle User bei denen sich der LVPlan veraendert hat // werden in ein File gesichert. Bei diesen Personen wird der LVPlan im Horde aktualisiert $users=array(); foreach ($message as $uid=>$msg) { $users[]=$uid; } $uidfile = DOC_ROOT.'../system/hordelvplansync/lvplanupdate.txt'; // Letzte Durchlaufzeit des Scripts holen // anhand der Aenderungszeit des Textfiles mit den UIDs if(!$lastmod = filemtime($uidfile)) $lastmod=time()-86400; // Wenn die Zeit nicht ermittelt werden kann, werden die letzten 24 Std genommen // Zusaetzlich jene holen, bei denen sich die Reservierungen geaendert haben $qry = "SELECT * FROM campus.tbl_reservierung WHERE insertamum>'".date('Y-m-d H:i:s',$lastmod)."'"; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { $users[] = $row->uid; //Wenn fuer eine Gruppe reserviert wurde, dann die Personen aus der Gruppe holen if($row->semester!='' || $row->verband!='' || $row->gruppe!='' || $row->gruppe_kurzbz!='') { $studenten = getStudentsFromGroup($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $ss->studiensemester_kurzbz); $users = array_merge($users, $studenten); } } } // geaenderte User in Textfile schreiben $users = array_unique($users); if(count($users)>0) { if($fp = fopen($uidfile, 'a')) { foreach($users as $uid) { fwrite($fp, $uid."\n"); } fclose($fp); //Horde Syncro starten //chdir(DOC_ROOT.'../system/hordelvplansync/'); //exec('php5 synchordelvplan.php lvplanupdate.txt >>/var/log/sync/synchordelvplan.log 2>&1'); } } } // Mail an Admin $message_tmp=$count_upd.' Datensätze wurden geändert.
'.$count_ins.' Datensätze wurden hinzugefügt.
'.$count_del.' Datensätze wurden gelöscht.
'.$count_err.' Fehler sind dabei aufgetreten!

'; echo '
'.$message_tmp; //Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann $message_stpl = wordwrap($message_stpl, 70); $message_summary = wordwrap($message_summary, 70); $message_sync=''.$message_tmp.$message_sync.$message_stpl.'

Details

'.$message_summary.''; $mail = new mail(MAIL_ADMIN,MAIL_LVPLAN,'LV-Plan Update Zusammenfassung','Sie muessen diese Mail als HTML-Mail anzeigen um die LV-Plan Änderungen anzuzeigen'); $mail->setHTMLContent($message_sync); $mail->send(); $message_stpl=''.$message_tmp.$message_stpl.'

Details

'.$message_summary.''; $mail = new mail(MAIL_LVPLAN, MAIL_LVPLAN, 'LV-Plan Update Zusammenfassung', 'Sie muessen diese Mail als HTML-Mail anzeigen um die LV-Plan Änderungen anzuzeigen'); $mail->setHTMLContent($message_stpl); $mail->send(); ?>