, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Syncronisiert die Tabelle Stundenplandev mit der Tabelle Stundenplan * und versendet Benachrichtigungsmails mit den geaenderten 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'); $sendmail = (boolean)true; if (isset($_GET['sendmail'])) { if ($_GET['sendmail']=='true') $sendmail = (boolean)true; else $sendmail = (boolean)false; } $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; // Mails an die Lektoren und Verbaende $message = array(); // Nachrichten fuer die LV-Planung $message_stpl = ' '; $message_sync = ''; $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 Datensaetze werden geholt. ('.date('H:i:s').')'."\n"; 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()."\n"; $message_sync .= $sql_query.' fehlgeschlagen!'.$db->db_last_error(); } else { echo 'Neue Datensaetze werden angelegt.'."\n"; flush(); while ($row = $db->db_fetch_object($result)) { $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 .= ');'; if (!$result_insert = $db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!'.$db->db_last_error()."\n"; $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 Datensaetze werden geholt.('.date('H:i:s').')'."\n"; 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()."\n"; $message_sync.=$sql_query.' fehlgeschlagen!
'.$db->db_last_error(); } else { echo 'Alte Datensaetze werden geloescht.'."\n"; 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()."\n"; $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 'Geaenderte Datensaetze werden geholt.('.date('H:i:s').')'."\n"; 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.";"; if (!$result = $db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!'.$db->db_last_error()."\n"; $message_sync .= $sql_query.' fehlgeschlagen!
'.$db->db_last_error(); } else { echo 'Datensaetze werden geaendert.'."\n"; flush(); while ($row = $db->db_fetch_object($result)) { // 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()."\n"; $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'; 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).";"; if (!$result_update = $db->db_query($sql_query)) { echo $sql_query.' fehlgeschlagen!'.$db->db_last_error()."\n"; $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!'."\n"; $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!'."\n"; $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); } } } // 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 $count_upd.' Datensaetze wurden geaendert.'."\n". $count_ins.' Datensaetze wurden hinzugefuegt.'."\n". $count_del.' Datensaetze wurden geloescht.'."\n". $count_err.' Fehler sind dabei aufgetreten!'."\n"; //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_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); if (!$mail->send()) echo 'Error occurred while sending email to '.MAIL_ADMIN."\n"; // Message stpl $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); if (!$mail->send()) echo 'Error occurred while sending email to '.MAIL_LVPLAN."\n"; ?>