From ddd54542ce40202e1fe77a25a3623e1e5a2e6ee8 Mon Sep 17 00:00:00 2001 From: adisposkofh Date: Fri, 31 Jul 2026 14:44:13 +0200 Subject: [PATCH] redirecting old coodle urls to new coodle --- cis/public/coodle.php | 1156 +------------------------------- cis/public/freebusy_coodle.php | 75 +-- cis/public/ical_coodle.php | 131 +--- 3 files changed, 17 insertions(+), 1345 deletions(-) diff --git a/cis/public/coodle.php b/cis/public/coodle.php index 05eaa41df..9d547a67e 100644 --- a/cis/public/coodle.php +++ b/cis/public/coodle.php @@ -20,1160 +20,18 @@ * Andreas Österreicher */ require_once('../../config/cis.config.inc.php'); -require_once('../../include/phrasen.class.php'); -require_once('../../include/functions.inc.php'); require_once('../../include/coodle.class.php'); -require_once('../../include/datum.class.php'); -require_once('../../include/mail.class.php'); -require_once('../../include/benutzer.class.php'); -require_once('../../include/reservierung.class.php'); -require_once('../../include/stunde.class.php'); -require_once('../../include/stundenplan.class.php'); -require_once('../../include/mitarbeiter.class.php'); -require_once('../../include/globals.inc.php'); -header("Content-Type: text/html; charset=utf-8"); - -$sprache = getSprache(); -$p = new phrasen($sprache); -$sprache_obj = new sprache(); -$sprache_obj->load($sprache); -$sprache_index = $sprache_obj->index; -$datum_obj = new datum(); -$message = ''; -$mailMessage = ''; -$saveOk = null; -$ersteller = false; -$abgeschlossen = false; - -$coodle_id = (isset($_GET['coodle_id']) ? $_GET['coodle_id'] : ''); +$coodleId = (isset($_GET['coodle_id']) ? $_GET['coodle_id'] : ''); +$accessKey = (isset($_GET['zugangscode']) ? $_GET['zugangscode'] : ''); $coodle = new coodle(); -if (!$coodle->load($coodle_id)) +if (!$coodle->load($coodleId)) die($coodle->errormsg); -// Überprüfen ob Coodle Status laufend oder abgeschlossen hat -if (!$coodle->checkStatus($coodle_id)) - die($p->t('coodle/umfrageNichtGueltig')); - -// authentifizierung -if (!isset($_GET['zugangscode'])) -{ - $uid = get_uid(); - if (!$coodle->checkBerechtigung($coodle_id, $uid)) - die($p->t('coodle/keineBerechtigung')); - - // überprüfen ob ersteller gleich uid ist - if ($coodle->ersteller_uid == $uid) - $ersteller = true; -} -else -{ - if (!$coodle->checkBerechtigung($coodle_id, '', $_GET['zugangscode'])) - die($p->t('coodle/keineBerechtigung')); -} - -// checkboxen speichern -if (isset($_POST['save'])) -{ - $coodle_help = new coodle(); - $error = false; - $teilnehmer_uid = ''; - - // Ressource ID von Zugangscode oder UID holen und Beiträge löschen - if (isset($_GET['zugangscode'])) - { - // Einträge löschen - $coodle_help->getRessourceFromUser($coodle_id, '', $_GET['zugangscode']); - $coodle_ressource_termin = $coodle_help->deleteRessourceTermin($coodle_id, $coodle_help->coodle_ressource_id); - $teilnehmer_uid = $coodle_help->coodle_ressource_id; - } - else - { - if ($coodle_help->RessourceExists($coodle_id, $uid)) - { - $coodle_help->getRessourceFromUser($coodle_id, $uid); - $coodle_ressource_termin = $coodle_help->deleteRessourceTermin($coodle_id, $coodle_help->coodle_ressource_id); - $teilnehmer_uid = $coodle_help->coodle_ressource_id; - } - } - - // Einträge speichern - foreach ($_POST as $key => $value) - { - if (mb_substr($key, 0, 5) == 'check') - { - $termin = explode('_', $key); - $ressource_id = $termin[1]; - $termin_id = $termin[2]; - - $coodle_ressource_termin = new coodle(); - $coodle_ressource_termin->coodle_ressource_id = $ressource_id; - $coodle_ressource_termin->coodle_termin_id = $termin_id; - $coodle_ressource_termin->new = true; - - if (!$coodle_ressource_termin->saveRessourceTermin()) - $error = true; - } - } - - if ($error) - { - $message .= '
- Error! '.$p->t('global/fehlerBeimSpeichernDerDaten').' -
'; - } - else - { - $coodle_help->load($coodle_id); - // email an ersteller senden wenn option aktiviert - if ($coodle_help->mailversand && (!isset($_POST['auswahl_termin']))) - sendBenachrichtigung($coodle_id, $teilnehmer_uid); - - $saveOk = true; - } -} - -// endgültige auswahl des termins speichern -if (isset($_POST['auswahl_termin'])) -{ - if ($ersteller) - { - $auswahl = $_POST['auswahl_termin']; - if ($auswahl != '') - { - // setzte auswahl von termin_id auf true - $coodle_help = new coodle(); - $coodle_help->loadTermin($auswahl); - $coodle_help->auswahl = true; - - // alle termine der coodle_id auf false setzen - if (!$coodle_help->setTerminFalse($coodle_id)) - exit('Fehler beim Update aufgetreten'); - - if (!$coodle_help->saveTermin(false)) - { - $message .= '
- Error! '.$p->t('global/fehlerBeimSpeichernDerDaten').' -
'; - } - else - { - $saveOk = true; - } - - $coodle_status = new coodle(); - $coodle_status->load($coodle_id); - $coodle_status->coodle_status_kurzbz = 'abgeschlossen'; - $coodle_status->new = false; - $coodle_status->save(); - - sendEmail($coodle_id); - - if ($coodle_help->datum < RES_TAGE_LEKTOR_BIS) - { - // Raum reservieren - $coodle_raum = new coodle(); - $coodle_raum->getRaumeFromId($coodle_id); - - // Ende Uhrzeit berechnen - $date = new DateTime($coodle_help->datum.' '.$coodle_help->uhrzeit); - $interval = new DateInterval('PT'.$coodle->dauer.'M'); - $date->add($interval); - $uhrzeit_ende = $date->format('H:i:s'); - - foreach ($coodle_raum->result as $raum) - { - $stunde = new stunde(); - $stunden = $stunde->getStunden($coodle_help->uhrzeit, $uhrzeit_ende); - - // Pruefen ob der Raum frei ist - if (!RaumBelegt($raum->ort_kurzbz, $coodle_help->datum, $stunden)) - { - $reservierung_error = false; - // Stunden reservieren - foreach ($stunden as $stunde) - { - $raum_reservierung = new reservierung(); - $raum_reservierung->studiengang_kz = '0'; - $raum_reservierung->uid = $uid; - $raum_reservierung->ort_kurzbz = $raum->ort_kurzbz; - $raum_reservierung->datum = $coodle_help->datum; - $raum_reservierung->stunde = $stunde; - $raum_reservierung->titel = mb_substr($coodle->titel, 0, 10); - $raum_reservierung->beschreibung = mb_substr($coodle->titel, 0, 32); - $raum_reservierung->insertamum = date('Y-m-d H:i:s'); - $raum_reservierung->insertvon = $uid; - - // $message.= "Reserviere $raum->ort_kurzbz Stunde $stunde:"; - if (!$raum_reservierung->save(true)) - $reservierung_error = true; - } - $message .= '
- '.$p->t('coodle/raumErfolgreichReserviert', array($raum->ort_kurzbz)).' -
'; - } - else - { - $message .= '
- '.$p->t('coodle/raumBelegt', array($raum->ort_kurzbz)).' -
'; - } - } - } - else - { - $message .= '
- '.$p->t('coodle/raumNichtReserviert', array($datum_obj->formatDatum(RES_TAGE_LEKTOR_BIS, 'd.m.Y'))).' -
'; - } - } - } - else - { - $message .= '
- '.$p->t('global/keineBerechtigung').' -
'; - } -} - -$coodle->load($coodle_id); - -if ($coodle->coodle_status_kurzbz == 'abgeschlossen') - $abgeschlossen = true; - -if (isset($_GET['resend'])) -{ - if ($ersteller && $abgeschlossen) - sendEmail($coodle_id); -} - -?> - - - - - - - - - <?php echo $p->t('coodle/terminauswahl'); ?> - - - -
-
- '.$p->t('coodle/coodle').''; - - if (!isset($_GET['zugangscode'])) - { - echo ''.$p->t('coodle/zurueckZurUebersicht').''; - echo '

'; - } - - if ($saveOk === true) - { - echo ' -
- '.$p->t('global/erfolgreichgespeichert').' -
-
- '.$p->t('coodle/zurueckZurUmfrage').' -
'; - } - else - { - echo '
'; - - $coodle_help = new coodle(); - $coodle_help->load($coodle_id); - - $alt = strtotime($coodle_help->insertamum); - - $differenz = time() - $alt; - $differenz = $differenz / 86400; - $benutzer = new benutzer(); - $benutzer->load($coodle->ersteller_uid); - // $ersteller_name = trim($benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost); - $ersteller_name = trim($benutzer->vorname.' '.$benutzer->nachname); - echo '

'.$coodle->titel.'

'; - $erstellt = array( - $ersteller_name, - round($differenz) - ); - echo ''.$p->t('coodle/erstelltVon', $erstellt).'
'; - echo ''.$p->t('coodle/dauer').': '.$coodle->dauer.' min.

'; - - echo $coodle->beschreibung; - - echo '
'; - - if ($abgeschlossen) - { - $datum = new datum(); - $coodle_abgeschlossen = new coodle(); - $termin_id = $coodle_abgeschlossen->getTerminAuswahl($coodle_id); - $coodle_abgeschlossen->loadTermin($termin_id); - echo '
'.$p->t('coodle/umfrageAbgeschlossen', array( - substr($tagbez[$sprache_index][$datum->formatDatum($coodle_abgeschlossen->datum, 'N')], 0, 2).', '. - $datum->formatDatum($coodle_abgeschlossen->datum, 'd.m.Y').' '. - $datum->formatDatum($coodle_abgeschlossen->uhrzeit, 'H:i') - )).'
'; - } - - echo '
-
'; - - $coodle_ressourcen = new coodle(); - $coodle_ressourcen->getRessourcen($coodle_id); - $mailadressen = '?subject=Coodle%20Umfrage%20'.htmlspecialchars($coodle->titel).'&bcc='; - - foreach ($coodle_ressourcen->result as $ressource) - { - $name = ''; - $benutzer = new benutzer(); - - // wenn uid gesetzt ist nimm uid - if ($ressource->uid != '') - { - $benutzer->load($ressource->uid); - // $name .= ($benutzer->titelpre!='')?$benutzer->titelpre.' ':''; - $name .= $benutzer->vorname.' '; - $name .= $benutzer->nachname.' '; - // $name .= $benutzer->titelpost; - - $mailadressen .= $ressource->uid.'@'.DOMAIN.';'; - - $ressource->anzeigename = $name; - $ressource->vorname = $benutzer->vorname; - $ressource->nachname = $benutzer->nachname; - } - - // wenn uid nicht gesetzt ist nimm zugangscode - if ($ressource->zugangscode != '' && $ressource->uid == '') - { - $name = $ressource->name; - $ressource->anzeigename = $name; - $ressource->vorname = $name; - $ressource->nachname = $name; - - $mailadressen .= ';'.$ressource->email; - } - } - - // alle termine der coodle umfrage holen - $coodle_termine = new coodle(); - $coodle_termine->getTermine($coodle_id); - - $datum = new datum(); - $datum_colspan = ''; - - echo "
-
- - - "; - // Für Colspan bei Datum - $max_colspan = array(); - foreach ($coodle_termine->result as $termin) - { - $max_colspan[] .= $termin->datum; - } - - foreach ($coodle_termine->result as $termin) - { - $class_auswahl = 'normal'; - $time = strtotime($termin->uhrzeit); - $coodle_auswahl = new coodle(); - - // Falls es schon eine Auswahl gibt - hervorheben - if ($coodle_auswahl->checkTerminAuswahl($coodle_id, $termin->coodle_termin_id)) - { - $class_auswahl = 'auswahl'; - } - - // Colspan für Datum berechnen - $count = array_count_values($max_colspan); - $colspan = $count[$termin->datum]; - - if ($datum_colspan != $termin->datum && $termin->datum != '1900-01-01') - { - echo ""; - } - - $datum_colspan = $termin->datum; - } - if ($ersteller) - { - echo ''; - } - echo ""; - echo ''; - - foreach ($coodle_termine->result as $termin) - { - $class_auswahl = 'normal_uhrzeit'; - $time = strtotime($termin->uhrzeit); - // Endzeit berechnen - $ende = $time + ($coodle->dauer * 60); - - $coodle_auswahl = new coodle(); - - // Falls es schon eine Auswahl gibt - hervorheben - if ($coodle_auswahl->checkTerminAuswahl($coodle_id, $termin->coodle_termin_id)) - { - $class_auswahl = 'auswahl_uhrzeit'; - } - - if ($termin->datum != '1900-01-01') - { - echo ""; - } - else - { - echo ''; - } - } - echo ""; - - // Sortiert die Ressourcen alphabetisch nach anzeigename - function sortRessourcen($a, $b) - { - return strcmp($a->nachname.''.$a->vorname, $b->nachname.''.$b->vorname); - } - - usort($coodle_ressourcen->result, "sortRessourcen"); - - $owner = false; - // ressourcen durchlaufen - foreach ($coodle_ressourcen->result as $ressource) - { - $owner = false; - // Ist der User ident mit einer Ressource - if (isset($_GET['zugangscode']) && $_GET['zugangscode'] == $ressource->zugangscode) - { - $owner = true; - } - if (!isset($_GET['zugangscode']) && $ressource->uid == $uid) - { - $owner = true; - } - - if ($coodle_help->teilnehmer_anonym && !$owner) - { - continue; - } - else - { - // Ort-Ressourcen ueberspringen - if ($ressource->ort_kurzbz != '') - { - continue; - } - - $class = 'normal'; - // eigene Reihe farbig hervorheben - if ($owner) - { - $class = 'owner'; - } - // Bei anonymen TeilnehmerInnen entfaellt das Hervorheben - if ($coodle_help->teilnehmer_anonym) - { - $class = 'normal'; - } - - echo ""; - - $termin_datum = ''; - $disabled = false; - $checked = false; - - $coodle_ressource = new coodle(); - if (isset($_GET['zugangscode'])) - { - $coodle_ressource->getRessourceFromUser($coodle_id, '', $_GET['zugangscode']); - if ($ressource->coodle_ressource_id != $coodle_ressource->coodle_ressource_id) - { - $disabled = true; - } - } - else - { - $coodle_ressource->getRessourceFromUser($coodle_id, $uid); - if ($ressource->coodle_ressource_id != $coodle_ressource->coodle_ressource_id) - { - $disabled = true; - } - } - - if ($abgeschlossen) - { - $disabled = true; - } - - // termine zu ressourcen anzeigen - foreach ($coodle_termine->result as $termin) - { - $checked = false; - $style = ''; - if ($coodle_termine->checkTermin($termin->coodle_termin_id, $ressource->coodle_ressource_id)) - { - $checked = true; - } - - if ($termin_datum != '' && $termin_datum != $termin->datum) - { - $style = 'style="border-left: 1px solid #DCDDDF;"'; - } - - if ($coodle_help->termine_anonym && !$owner && !$ersteller) - { - echo ""; - } - else - { - if ($disabled) - { - if ($checked) - { - echo ''; - } - else - { - echo ''; - } - } - else - { - // Der 01.01.1900 wird fuer "Keine Auswahl" verwendet. Beim anklicken der Checkbox werden alle anderen Checkboxen deaktiviert - echo ' '; - } - } - - $termin_datum = $termin->datum; - } - if ($ersteller) - { - echo ""; - } - echo ''; - } - } - - $disabled = $abgeschlossen ? 'disabled' : ''; - - // Counter fuer Anzahl der Auswahlen pro Termin - $counter_arr = array(); - foreach ($coodle_termine->result as $termin) - { - $countTermine = new coodle(); - $countTermine->countTermin($termin->coodle_termin_id); - - $counter_arr[] = $countTermine->anzahl; - } - if ($coodle_help->teilnehmer_anonym) - { - echo ''; - } - elseif ($coodle_help->termine_anonym) - { - echo ''; - } - - echo ''; - foreach ($coodle_termine->result as $termin) - { - $countTermine = new coodle(); - $countTermine->countTermin($termin->coodle_termin_id); - - if ($countTermine->anzahl == max($counter_arr)) - { - echo ''; - } - else - { - echo ''; - } - } - if ($ersteller) - { - echo ''; - } - echo ""; - - if ($ersteller) - { - // buttons für auswahl des endgültigen termins - echo ''; - foreach ($coodle_termine->result as $termin) - { - $checked = ($termin->auswahl) ? 'checked' : ''; - if ($termin->datum != '1900-01-01') - { - echo ''; - } - else - { - echo ''; - } - } - echo ''; - echo ""; - } - - echo ' '; - echo ' -
- ".substr($monatsname[$sprache_index][$datum->formatDatum($termin->datum, 'n') - 1], 0, 3)."
- ".$datum->formatDatum($termin->datum, 'd')."
- ".substr($tagbez[$sprache_index][$datum->formatDatum($termin->datum, 'N')], 0, 2)." -
'; - if ($ersteller && $abgeschlossen) - { - echo ''; - } - echo '".date('H:i', $time)." -
".date('H:i', $ende)."  
'.$p->t('coodle/keinTerminMoeglich').'
".$ressource->anzeigename." -
- -
-
Die TeilnehmerInnen dieser Umfrage sind anonym
Die Terminwahl dieser Umfrage erfolgt anonym
Summe der Einträge'.$p->t('coodle/keineAuswahl').'
'.$p->t('coodle/auswahlEndtermin').'
'; - if ($saveOk === true) - { - echo ' -
- '.$p->t('global/erfolgreichgespeichert').' -
'; - } - echo '
'; - } - - // Benutzer mit CIS-Account können die Terminzusagen als iCal importieren - if (isset($uid) && $uid != '') - { - echo '

- - Sie können ihre vorläufigen Terminzusagen in ihr Kalendersystem einbinden.
- Importieren Sie dazu die .ics-Datei des folgenden Links in ihren Kalender:
- - '.APP_ROOT.'cis/public/ical_coodle.php/cipher_encryption/'.encryptData($uid, LVPLAN_CYPHER_KEY).' - -

- Die Datei enthält ihre Terminzusagen aus allen laufenden Umfragen . -
'; - } - - if ($ersteller && $abgeschlossen) - { - echo '  '; - } - echo '
'; - - echo '
'.$message; - - echo $mailMessage; - - ?> -
-
- - - -load($coodle_id)) - { - die("Fehler beim senden aufgetreten"); - } - - $mitarbeiter = new mitarbeiter(); - $person = new person(); - $teilnehmer = new coodle(); - - $teilnehmer->getRessourceFromId($teilnehmer_id); - if ($teilnehmer->zugangscode != '') - $tn = $teilnehmer->name; - else - { - $mitarbeiter->load($teilnehmer->uid); - $person->load($mitarbeiter->person_id); - $tn = $person->vorname." ".$person->nachname; - } - $mitarbeiter->load($coodle_send->ersteller_uid); - $person->load($mitarbeiter->person_id); - - $email = ''; - - $name = ''; - $name .= ($person->titelpre != '') ? $person->titelpre.' ' : ''; - $name .= $person->vorname.' '.$person->nachname; - $name .= ($person->titelpost != '') ? ' '.$person->titelpost : ''; - - if ($person->geschlecht == 'w') - $email .= 'Sehr geehrte Frau '.$name."!

"; - else - $email .= "Sehr geehrter Herr ".$name."!

"; - - $link = APP_ROOT.'cis/public/coodle.php?coodle_id='.urlencode($coodle_id).'&uid='.urlencode($uid); - $email .= $tn.' hat einen Termin zu Ihrer Coodle-Umfrage mit dem Thema "'.$coodle->titel.'" ausgewählt.
Link zu Ihrer Coodle Umfrage

Mit freundlichen Grüßen

- Fachhochschule Technikum Wien
- Höchstädtplatz 6
- 1200 Wien'; - - $mail = new mail($coodle_send->ersteller_uid.'@'.DOMAIN, 'no-reply', 'Feedback zu Ihrer Coodle Umfrage "'.$coodle->titel.'"', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($email); - if (!$mail->send()) - die("Fehler beim senden des Mails aufgetreten"); -} - -/** - * Funktion sendet den ausgewählten Termin an alle Ressourcen aus der übergebenen Coodleumfrage - * - * @param type $coodle_id - * @param type $auswahl - * @global phrasen $p - */ -function sendEmail($coodle_id) -{ - global $mailMessage, $tagbez, $sprache_index; - global $p; - $coodle_help = new coodle(); - $termin_id = $coodle_help->getTerminAuswahl($coodle_id); - $coodle_help->loadTermin($termin_id); - - $coodle_ressource = new coodle(); - $coodle_ressource->getRessourcen($coodle_id); - $coodle = new coodle(); - $coodle->load($coodle_id); - $ort = ''; - $teilnehmer = ''; - foreach ($coodle_ressource->result as $row) - { - if ($row->ort_kurzbz != '') - { - if ($ort != '') - $ort .= ', '; - $ort .= "$row->ort_kurzbz"; - } - else - { - if ($row->uid != '') - { - $benutzer = new benutzer(); - $benutzer->load($row->uid); - $name = trim($benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost); - $mail = $row->uid.'@'.DOMAIN; - } - else - { - $mail = $row->email; - $name = $row->name; - } - $coodle_ressource_termin = new coodle(); - $partstat = ''; - if ($coodle_ressource_termin->checkTermin($termin_id, $row->coodle_ressource_id)) - $partstat = 'ACCEPTED'; - else - $partstat = 'TENTATIVE'; - - $teilnehmer .= $coodle->foldContentLine('ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT='.$partstat.';CN='.$name.":MAILTO:".$mail) . "\r\n"; - } - } - $date = new DateTime($coodle_help->datum.' '.$coodle_help->uhrzeit); - // Datum des Termins ins richtige Format bringen - $dtstart = $date->format('Ymd\THis'); - - // Ende Datum berechnen - $interval = new DateInterval('PT'.$coodle->dauer.'M'); - $date->add($interval); - $dtend = $date->format('Ymd\THis'); - $date = new DateTime(); - $dtstamp = $date->format('Ymd\THis'); - $benutzer = new benutzer(); - $benutzer->load($coodle->ersteller_uid); - $erstellername = trim($benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost); - - $beschreibung = "DESCRIPTION:" . strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8'), '
'); - $terminbeschreibung= $coodle->foldContentLine($beschreibung); - - // Ical File erstellen - $ical = "BEGIN:VCALENDAR\r\n" - ."PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN\r\n" - ."VERSION:2.0\r\n" - ."METHOD:PUBLISH\r\n" - ."BEGIN:VTIMEZONE\r\n" - ."TZID:Europe/Vienna\r\n" - ."BEGIN:DAYLIGHT\r\n" - ."TZOFFSETFROM:+0100\r\n" - ."RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\r\n" - ."DTSTART:19810329T020000\r\n" - ."TZNAME:GMT+02:00\r\n" - ."TZOFFSETTO:+0200\r\n" - ."END:DAYLIGHT\r\n" - ."BEGIN:STANDARD\r\n" - ."TZOFFSETFROM:+0200\r\n" - ."RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\r\n" - ."DTSTART:19961027T030000\r\n" - ."TZNAME:GMT+01:00\r\n" - ."TZOFFSETTO:+0100\r\n" - ."END:STANDARD\r\n" - ."END:VTIMEZONE\r\n" - ."BEGIN:VEVENT\r\n" - .$coodle->foldContentLine("ORGANIZER:MAILTO:".$erstellername." <".$coodle->ersteller_uid."@".DOMAIN).">\r\n" - .rtrim($teilnehmer)."\r\n" - ."DTSTART;TZID=Europe/Vienna:".$dtstart."\r\n" - ."DTEND;TZID=Europe/Vienna:".$dtend."\r\n" - ."LOCATION:".$ort."\r\n" - ."TRANSP:OPAQUE\r\n" - ."SEQUENCE:0\r\n" - ."UID:FHCompleteCoodle".$coodle_id."\r\n" - ."DTSTAMP;TZID=Europe/Vienna:".$dtstamp."\r\n" - .$terminbeschreibung."\r\n" - ."SUMMARY:".strip_tags($coodle->titel)."\r\n" - ."PRIORITY:5\r\n" - ."CLASS:PUBLIC\r\n" - ."END:VEVENT\r\n" - ."END:VCALENDAR\r\n"; - - if (count($coodle_ressource->result) > 0) - { - $mailMessageError = ''; - $mailMessageSuccess = '
'; - foreach ($coodle_ressource->result as $row) - { - if ($row->uid != '') - { - $benutzer = new benutzer(); - if (!$benutzer->load($row->uid)) - { - $mailMessageError .= "Fehler beim Laden des Benutzers ".$coodle_ressource->convert_html_chars($row->uid); - continue; - } - - if ($benutzer->geschlecht == 'w') - $anrede = "Sehr geehrte Frau "; - else - $anrede = "Sehr geehrter Herr "; - - $anrede .= $benutzer->titelpre.' '.$benutzer->vorname.' '.$benutzer->nachname.' '.$benutzer->titelpost; - - // Interner Teilnehmer - $email = $row->uid.'@'.DOMAIN; - } - elseif ($row->email != '') - { - // Externe Teilnehmer - $email = $row->email; - $anrede = 'Sehr geehrte(r) Herr/Frau '.$row->name; - } - else - { - // Raueme bekommen kein Mail - continue; - } - $anrede = trim($anrede); - $sign = $p->t('mail/signatur'); - - $datum = new datum(); - - $html = $anrede.'!

- Die Terminumfrage zum Thema "'.$coodle_ressource->convert_html_chars($coodle->titel).'" ist beendet. -
- Der Termin wurde auf - '.substr($tagbez[$sprache_index][$datum->formatDatum($coodle_help->datum, 'N')], 0, 2).', '. - $datum->formatDatum($coodle_help->datum, 'd.m.Y').' '. - $datum->formatDatum($coodle_help->uhrzeit, 'H:i').' - festgelegt. -

'.nl2br($sign); - - $text = $anrede."!\n\nDie Terminumfrage zum Thema \"".$coodle_help->convert_html_chars($coodle->titel).'"\" ist beendet.\n - Der Termin wurde auf - '.substr($tagbez[$sprache_index][$datum->formatDatum($coodle_help->datum, 'N')], 0, 2).', '. - $datum->formatDatum($coodle_help->datum, 'd.m.Y').' '. - $datum->formatDatum($coodle_help->uhrzeit, 'H:i')." - festgelegt\n. - \n\n$sign"; - - $mail = new mail($email, 'no-reply@'.DOMAIN, 'Terminbestätigung - '.$coodle->titel, $text); - $mail->setHTMLContent($html); - // ICal Termineinladung hinzufuegen - $mail->addAttachmentPlain($ical, 'text/calendar', 'meeting.ics'); - if ($mail->send()) - { - $mailMessageSuccess .= $p->t('coodle/mailVersandtAn', array( - $email - ))."
"; - } - } - if ($mailMessageError != '') - { - $mailMessageError = '
'.$mailMessageError.'
'; - } - $mailMessageSuccess .= '
'; - $mailMessage = $mailMessageError.$mailMessageSuccess; - } - else - { - die($p->t('coodle/keineRessourcenVorhanden')); - } -} - -/** - * - * Prueft ob ein Raum belegt ist - * - * @param $ort_kurzbz - * @param $datum - * @param array $stunden - */ -function RaumBelegt($ort_kurzbz, $datum, $stunden) -{ - foreach ($stunden as $stunde) - { - // Reservierungen pruefen - $raum_reservierung = new reservierung(); - if ($raum_reservierung->isReserviert($ort_kurzbz, $datum, $stunde)) - { - return true; - } - - // Stundenplan abfragen - $stundenplan = new stundenplan('stundenplan'); - if ($stundenplan->isBelegt($ort_kurzbz, $datum, $stunde)) - { - return true; - } - - // Stundenplan DEV abfragen - $stundenplan = new stundenplan('stundenplandev'); - if ($stundenplan->isBelegt($ort_kurzbz, $datum, $stunde)) - { - return true; - } - } - return false; -} +$coodle->getRessourceFromUser($coodleId, '', $accessKey); +$redirectUrl = $coodle->uid ? APP_ROOT . 'cis.php/Cis/Coodle?id=' . $coodleId : APP_ROOT . 'cis.php/Cis/CoodleExternal/' . $coodleId . '/' . $accessKey; +header('Location: ' . $redirectUrl); +exit; ?> diff --git a/cis/public/freebusy_coodle.php b/cis/public/freebusy_coodle.php index a31f19139..9a33c4f6b 100644 --- a/cis/public/freebusy_coodle.php +++ b/cis/public/freebusy_coodle.php @@ -25,77 +25,10 @@ * http://www.example.com/cis/public/freebusy_coodle.php/oesi */ require_once('../../config/cis.config.inc.php'); -require_once('../../include/benutzer.class.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/coodle.class.php'); -require_once('../../include/ical.class.php'); -$uid = mb_substr($_SERVER['PATH_INFO'],1); +$uid = mb_substr($_SERVER['PATH_INFO'], 1); +$excludeSurveyQueryParam = isset($_GET['excludeSurvey']) ? '?excludeSurvey=' . $_GET['excludeSurvey'] : 'adis'; -$bn = new benutzer(); -if(!$bn->load($uid)) - die('User invalid'); - -header("Content-Type: text/calendar; charset=UTF-8"); - -echo "BEGIN:VCALENDAR\n"; -echo "VERSION:2.0\n"; -echo "PRODID:-//FH TECHNIKUM WIEN//EN\n"; -echo "METHOD:PUBLISH\n"; -echo 'ORGANIZER;CN=',$bn->vorname,' ',$bn->nachname,':mailto:',$uid,'@',DOMAIN,"\n"; -echo 'DTSTAMP;TZID=Europe/Vienna:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"\n"; -echo 'DTSTART;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000\n"; -echo 'DTEND;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000\n"; -echo 'URL:',APP_ROOT,'cis/public/freebusy_coodle.php/',$uid,"\n"; -echo "BEGIN:VFREEBUSY"; - -// Alle Umfragen holen an denen der User beteiligt ist -$umfragen = new coodle(); -$umfragen->getCoodleFromUser($uid); -foreach($umfragen->result as $umfrage) -{ - if($umfrage->coodle_status_kurzbz=='laufend') - { - // Bei laufenden Umfragen werden alle angekreuzten Vorschlaege zur FreeBusy hinzugefuegt - $ressource = new coodle(); - if($ressource_id = $ressource->RessourceExists($umfrage->coodle_id, $uid)) - { - // Terminvorschlaege laden die angekreuzt wurden - $termine = new coodle(); - $termine->getRessourceTermin($umfrage->coodle_id, $ressource_id); - foreach($termine->result as $termin) - { - //Start und Ende berechnen - $date = new DateTime($termin->datum.' '.$termin->uhrzeit); - $dtstart = $date->format('Ymd\THis'); - $interval =new DateInterval('PT'.$umfrage->dauer.'M'); - $date->add($interval); - $uhrzeit_ende = $date->format('H:i:s'); - $dtende = $date->format('Ymd\THis'); - echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende"; - } - } - } - elseif($umfrage->coodle_status_kurzbz=='abgeschlossen') - { - // Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt - $termin = new coodle(); - $coodle_termin_id=$termin->getTerminAuswahl($umfrage->coodle_id); - if($termin->loadTermin($coodle_termin_id)) - { - //Start und Ende berechnen - $date = new DateTime($termin->datum.' '.$termin->uhrzeit); - $dtstart = $date->format('Ymd\THis'); - $interval =new DateInterval('PT'.$umfrage->dauer.'M'); - $date->add($interval); - $uhrzeit_ende = $date->format('H:i:s'); - $dtende = $date->format('Ymd\THis'); - echo "\nFREEBUSY;TZID=Europe/Vienna: $dtstart/$dtende"; - } - } - // stornierte Umfragen werden nicht beruecksichtigt -} - -echo "\nEND:VFREEBUSY"; -echo "\nEND:VCALENDAR"; +header('Location: ' . APP_ROOT . 'cis.php/CoodleFreeBusy/' . $uid . $excludeSurveyQueryParam); +exit; ?> \ No newline at end of file diff --git a/cis/public/ical_coodle.php b/cis/public/ical_coodle.php index 38512c95a..0a2e4b8e0 100644 --- a/cis/public/ical_coodle.php +++ b/cis/public/ical_coodle.php @@ -23,140 +23,21 @@ * Aufruf: http://www.example.com/cis/public/ical_coodle.php/[uid] */ require_once('../../config/cis.config.inc.php'); -require_once('../../include/benutzer.class.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/coodle.class.php'); -require_once('../../include/ical.class.php'); - $params = mb_substr($_SERVER['PATH_INFO'],1); $paramsArray = explode('/',$params); -$private = false; +// redirect to new coodle ical if ($paramsArray[0] == 'cipher_encryption') { - $uid = decryptData($paramsArray[1],LVPLAN_CYPHER_KEY); - $private = true; + $encryptedKey = $paramsArray[1]; + header('Location: '.APP_ROOT.'cis.php/CoodleIcal/encrypted/' . $encryptedKey); + exit; } else { $uid = $paramsArray[0]; + header('Location: '.APP_ROOT.'cis.php/CoodleIcal/' . $uid); + exit; } - -$bn = new benutzer(); -if(!$bn->load($uid)) - die('User invalid'); - -header("Content-Type: text/calendar; charset=UTF-8"); -header("Content-disposition: filename=Coodle Terminzusagen.ics"); - -echo "BEGIN:VCALENDAR\n"; -echo "VERSION:2.0\n"; -echo "PRODID:-//FH TECHNIKUM WIEN//EN\n"; -//echo "METHOD:PUBLISH\n"; -//echo 'ORGANIZER;CN=',$bn->vorname,' ',$bn->nachname,':mailto:',$uid,'@',DOMAIN,"\n"; -//echo 'DTSTAMP;TZID=Europe/Vienna:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"\n"; -echo 'DTSTART;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000\n"; -echo 'DTEND;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000\n"; -echo "BEGIN:VTIMEZONE -TZID:Europe/Vienna -BEGIN:DAYLIGHT -TZOFFSETFROM:+0100 -RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU -DTSTART:19810329T020000 -TZNAME:GMT+02:00 -TZOFFSETTO:+0200 -END:DAYLIGHT -BEGIN:STANDARD -TZOFFSETFROM:+0200 -RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU -DTSTART:19961027T030000 -TZNAME:GMT+01:00 -TZOFFSETTO:+0100 -END:STANDARD -END:VTIMEZONE\n"; -//echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n"; - -// Alle Umfragen holen an denen der User beteiligt ist -$umfragen = new coodle(); -$umfragen->getCoodleFromUser($uid); -$i = 0; -if (count($umfragen->result) > 0) -{ - //echo "BEGIN:VEVENT"; -} -foreach($umfragen->result as $umfrage) -{ - if($umfrage->coodle_status_kurzbz=='laufend') - { - // Bei laufenden Umfragen werden alle angekreuzten Vorschlaege zur FreeBusy hinzugefuegt - $ressource = new coodle(); - if($ressource_id = $ressource->RessourceExists($umfrage->coodle_id, $uid)) - { - // Terminvorschlaege laden die angekreuzt wurden - $termine = new coodle($umfrage->coodle_id); - $termine->getRessourceTermin($umfrage->coodle_id, $ressource_id); - foreach($termine->result as $termin) - { - //Start und Ende berechnen - $date = new DateTime($termin->datum.' '.$termin->uhrzeit); - $dtstart = $date->format('Ymd\THis'); - $interval =new DateInterval('PT'.$umfrage->dauer.'M'); - $date->add($interval); - $uhrzeit_ende = $date->format('H:i:s'); - $dtende = $date->format('Ymd\THis'); - $ersteller = new benutzer($termine->ersteller_uid); - if ($private == true) - { - $summary = 'Coodle Terminoption '.strip_tags($termine->titel); - $description = 'Erstellt von '.$ersteller->vorname.' '.$ersteller->nachname; - } - else - { - $summary = 'Coodle Terminoption'; - $description = ''; - } - - echo "\nBEGIN:VEVENT"; - echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende; - echo "\nSUMMARY:".$summary; - echo "\nDESCRIPTION:".$description; - echo "\nDTSTART;TZID=Europe/Vienna:$dtstart"; - echo "\nDTEND;TZID=Europe/Vienna:$dtende"; - echo "\nTRANSP:OPAQUE"; - echo "\nEND:VEVENT"; - - $i++; - } - } - } - // Bei abgeschlossene Umfragen wird ein iCal File mitgeschickt, - // deshalb müssen diese Termine nicht berücksichtigt werden - /*elseif($umfrage->coodle_status_kurzbz=='abgeschlossen') - { - // Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt - $termin = new coodle(); - $coodle_termin_id=$termin->getTerminAuswahl($umfrage->coodle_id); - if($termin->loadTermin($coodle_termin_id)) - { - //Start und Ende berechnen - $date = new DateTime($termin->datum.' '.$termin->uhrzeit); - $dtstart = $date->format('Ymd\THis'); - $interval =new DateInterval('PT'.$umfrage->dauer.'M'); - $date->add($interval); - $uhrzeit_ende = $date->format('H:i:s'); - $dtende = $date->format('Ymd\THis'); - - echo "\nBEGIN:VEVENT"; - echo "\nSUMMARY:Coodle Terminzusage"; - echo "\nDTSTART;TZID=Europe/Vienna: $dtstart"; - echo "\nDTEND;TZID=Europe/Vienna: $dtende"; - echo "\nTRANSP:OPAQUE"; - echo "\nEND:VEVENT"; - } - }*/ - // stornierte Umfragen werden nicht beruecksichtigt -} - -echo "\nEND:VCALENDAR"; ?> \ No newline at end of file