예제 #1
0
        } else {
            die('CoodleID fehlt');
        }
        if (isset($_POST['coodle_termin_id'])) {
            $coodle_termin_id = $_POST['coodle_termin_id'];
        } else {
            die('CoodleTerminID fehlt');
        }
        $coodle = new coodle();
        if (!$coodle->load($coodle_id)) {
            die('Fehler: ' . $coodle->errormsg);
        }
        if ($coodle->ersteller_uid != $user) {
            die('Diese Aktion ist nur durch den Ersteller der Umfrage möglich');
        }
        $coodletermin = new coodle();
        if (!$coodletermin->loadTermin($coodle_termin_id)) {
            die('Fehler: ' . $coodletermin->errormsg);
        }
        if ($coodle->coodle_id != $coodletermin->coodle_id) {
            die('Termin und Umfrage passen nicht zusammen!');
        }
        if ($coodletermin->deleteTermin($coodle_termin_id)) {
            echo 'true';
        } else {
            echo $coodletermin->errormsg;
        }
        break;
    default:
        die('Invalid Work Parameter');
}
예제 #2
0
/**
 * Funktion sendet den ausgewählten Termin an alle Ressourcen aus der übergebenen Coodleumfrage
 * @global phrasen $p
 * @param type $coodle_id
 * @param type $auswahl 
 */
function sendEmail($coodle_id)
{
    global $mailMessage;
    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 .= 'ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=' . $partstat . ';CN=' . $name . "\n :MAILTO:" . $mail . "\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);
    //Ical File erstellen
    $ical = "BEGIN:VCALENDAR\nPRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN\nVERSION:2.0\nMETHOD:PUBLISH\nBEGIN:VTIMEZONE\nTZID:Europe/Vienna\nBEGIN:DAYLIGHT\nTZOFFSETFROM:+0100\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\nDTSTART:19810329T020000\nTZNAME:GMT+02:00\nTZOFFSETTO:+0200\nEND:DAYLIGHT\nBEGIN:STANDARD\nTZOFFSETFROM:+0200\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\nDTSTART:19961027T030000\nTZNAME:GMT+01:00\nTZOFFSETTO:+0100\nEND:STANDARD\nEND:VTIMEZONE\nBEGIN:VEVENT\nORGANIZER:MAILTO:" . $erstellername . " <" . $coodle->ersteller_uid . "@" . DOMAIN . "\n" . $teilnehmer . "\nDTSTART;TZID=Europe/Vienna:" . $dtstart . "\nDTEND;TZID=Europe/Vienna:" . $dtend . "\nLOCATION:" . $ort . "\nTRANSP:OPAQUE\nSEQUENCE:0\nUID:FHCompleteCoodle" . $coodle_id . "\nDTSTAMP;TZID=Europe/Vienna:" . $dtstamp . "\nDESCRIPTION:" . strip_tags(html_entity_decode($coodle->beschreibung, ENT_QUOTES, 'UTF-8')) . "\nSUMMARY:" . strip_tags($coodle->titel) . "\nPRIORITY:5\nCLASS:PUBLIC\nEND:VEVENT\nEND:VCALENDAR";
    if (count($coodle_ressource->result) > 0) {
        foreach ($coodle_ressource->result as $row) {
            if ($row->uid != '') {
                $benutzer = new benutzer();
                if (!$benutzer->load($row->uid)) {
                    $mailMessage .= "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 . '!<br><br>
                Die Terminumfrage zum Thema "' . $coodle_ressource->convert_html_chars($coodle->titel) . '" ist beendet.
                <br>
                Der Termin wurde auf den <b>' . $datum->formatDatum($coodle_help->datum, 'd.m.Y') . ' ' . $coodle_help->uhrzeit . '</b> festgelegt.
                <br><br>' . nl2br($sign);
            $text = $anrede . "!\n\nDie Terminumfrage zum Thema \"" . $coodle_help->convert_html_chars($coodle->titel) . '"\\" ist beendet.\\n
                Der Termin wurde auf den <b>' . $datum->formatDatum($coodle_help->datum, 'd.m.Y') . ' ' . $coodle_help->uhrzeit . "</b> festgelegt\n.\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()) {
                $mailMessage .= $p->t('coodle/mailVersandtAn', array($email)) . "<br>";
            }
        }
    } else {
        die($p->t('coodle/keineRessourcenVorhanden'));
    }
}
예제 #3
0
            $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";