} 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'); }
/** * 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')); } }
$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";
<br> <div class="wrapper"> <h4>' . $p->t('coodle/laufendeUmfragen') . '</h4> <table id="myTableFiles" class="tablesorter"> <thead> <tr> <th>' . $p->t('coodle/titel') . '</th> <th>' . $p->t('coodle/letzterStatus') . '</th> <th>' . $p->t('coodle/ersteller') . '</th> <th>' . $p->t('coodle/endedatum') . '</th> <th>' . $p->t('coodle/aktion') . '</th> </tr> </thead><tbody>'; $beendeteUmfragen = ''; $datum = new datum(); $coodle = new coodle(); $coodle->loadStatus(); $coodle->getCoodleFromUser($uid); foreach ($coodle->result as $c) { $benutzer = new benutzer(); $benutzer->load($c->ersteller_uid); $ersteller = $benutzer->nachname . ' ' . $benutzer->vorname; $row = '<tr> <td>' . $coodle->convert_html_chars($c->titel) . '</td> <td>' . $coodle->convert_html_chars($coodle->status_arr[$c->coodle_status_kurzbz]) . '</td> <td>' . $coodle->convert_html_chars($ersteller) . '</td> <td>' . $coodle->convert_html_chars($datum->formatDatum($c->endedatum, 'd.m.Y')) . '</td> <td nowrap> '; // Bearbeiten Button if ($c->coodle_status_kurzbz == 'neu' && $uid == $c->ersteller_uid) {
* * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Andreas Oesterreicher <*****@*****.**> */ /** * Cronjob zur Versendung von Infomails wenn Coodle Umfragen Beendet sind */ require_once '../config/vilesci.config.inc.php'; require_once '../include/coodle.class.php'; require_once '../include/phrasen.class.php'; require_once '../include/benutzer.class.php'; require_once '../include/mail.class.php'; $coodle = new coodle(); $coodle->getCoodleBeendet(); $p = new phrasen(); foreach ($coodle->result as $row) { $benutzer = new benutzer($row->ersteller_uid); $subject = 'Ablauf der Coodle Umfrage'; $mailtext = ''; $mailtexthtml = ''; switch ($benutzer->geschlecht) { case 'm': $mailtext .= "Sehr geehrter Herr " . $benutzer->vorname . ' ' . $benutzer->nachname . "!\n\n"; $mailtexthtml .= "Sehr geehrter Herr " . $benutzer->vorname . ' ' . $benutzer->nachname . "!<br><br>"; break; case 'w': $mailtext .= "Sehr geehrte Frau " . $benutzer->vorname . ' ' . $benutzer->nachname . "!\n\n"; $mailtexthtml .= "Sehr geehrte Frau " . $benutzer->vorname . ' ' . $benutzer->nachname . "!<br><br>";
$coodle->coodle_status_kurzbz = 'neu'; } $coodle->titel = $titel; $coodle->beschreibung = $beschreibung; $coodle->dauer = $dauer; $coodle->endedatum = $datum_obj->formatDatum($endedatum, 'Y-m-d'); $coodle->updateamum = date('Y-m-d H:i:s'); $coodle->updatevon = $user; if ($coodle->save()) { $message .= '<span class="ok">' . $p->t('global/erfolgreichgespeichert') . '</span>'; } else { $message .= '<span class="error">' . $coodle->errormsg . '</span>'; } } elseif (isset($_GET['coodle_id'])) { // Bearbeiten $coodle = new coodle(); if ($coodle->load($_GET['coodle_id'])) { if ($coodle->ersteller_uid != $user) { die($p->t('global/keineBerechtigungFuerDieseSeite')); } if ($coodle->coodle_status_kurzbz != 'neu') { // Wenn bereits gestartet, abgeschlosse oder storniert, // kann nicht mehr bearbeitet werden die($p->t('coodle/umfrageNichtGueltig')); } } else { die('Error:' . $coodle->errormsg); } } else { // Neu $coodle = new coodle();
$bezeichnung = $benutzer->nachname . ' ' . $benutzer->vorname; } elseif ($row->ort_kurzbz != '') { $typ = 'Ort'; $id = $row->ort_kurzbz; $ort = new ort(); $ort->load($row->ort_kurzbz); $bezeichnung = $ort->bezeichnung; } elseif ($row->email != '') { $typ = 'Extern'; $id = $row->email; $bezeichnung = $row->name; } echo 'addRessourceToContent("' . $db->convert_html_chars($id) . '", "' . $db->convert_html_chars($typ) . '", "' . $db->convert_html_chars($bezeichnung) . '");'; } // Bereits eingetragene Terminvorschlaege laden $coodletermin = new coodle(); if (!$coodletermin->getTermine($coodle_id)) { die('Fehler:' . $coodletermin->errormsg); } foreach ($coodletermin->result as $row) { echo ' var eventObject = { id: "' . $db->convert_html_chars($row->coodle_termin_id) . '", title: "' . $db->convert_html_chars($event_titel) . '", start: "' . $db->convert_html_chars($row->datum) . 'T' . $db->convert_html_chars($row->uhrzeit) . '", allDay: false, termin: true }; $("#calendar").fullCalendar("renderEvent", eventObject, true); ';