Пример #1
0
 // Check UAC.
 $can_email = 'Y';
 if (access_is_enabled()) {
     $can_email = access_user_calendar('email', $participants[$i], $login);
 }
 // Don't send mail if we are editing a non-user calendar and we are the admin.
 if (!$is_nonuser_admin && $can_email == 'Y') {
     // Only send mail if their email address is filled in.
     $do_send = get_pref_setting($participants[$i], $newevent ? 'EMAIL_EVENT_ADDED' : 'EMAIL_EVENT_UPDATED');
     $htmlmail = get_pref_setting($participants[$i], 'EMAIL_HTML');
     $t_format = get_pref_setting($participants[$i], 'TIME_FORMAT');
     $user_TIMEZONE = get_pref_setting($participants[$i], 'TIMEZONE');
     set_env('TZ', $user_TIMEZONE);
     $user_language = get_pref_setting($participants[$i], 'LANGUAGE');
     user_load_variables($participants[$i], 'temp');
     if (boss_must_be_notified($login, $participants[$i]) && !empty($tempemail) && $do_send == 'Y' && $send_user_mail && $SEND_EMAIL != 'N') {
         // We send to creator if they want it.
         if ($send_own != 'Y' && $participants[$i] == $login) {
             continue;
         }
         reset_language(empty($user_language) || $user_language == 'none' ? $LANGUAGE : $user_language);
         $fmtdate = $timetype == 'T' ? date('Ymd', $eventstart) : gmdate('Ymd', $eventstart);
         $msg = str_replace('XXX', $tempfullname, $helloStr) . "\n\n" . str_replace('XXX', $login_fullname, $newevent || empty($old_status[$participants[$i]]) ? $newAppStr : $updAppStr) . "\n" . str_replace('XXX', $name, $subjStr) . "\n\n" . str_replace('XXX', $description, $descStr) . "\n" . str_replace('XXX', date_to_str($fmtdate), $dateStr) . "\n" . ($timetype != 'T' ? '' : str_replace('XXX', display_time('', 2, $eventstart, $t_format), $timeStr) . "\n") . $extra_email_data . str_replace('XXX', generate_application_name(), $REQUIRE_APPROVALS == 'Y' ? translate('Please look on XXX to accept or reject this appointment.') : translate('Please look on XXX to view this appointment.'));
         // Add URL to event, if we can figure it out.
         if (!empty($SERVER_URL)) {
             // DON'T change & to & here. Email will handle it.
             $url = $SERVER_URL . 'view_entry.php?id=' . $id . '&em=1';
             if ($htmlmail == 'Y') {
                 $url = activate_urls($url);
             }
             $msg .= "\n\n" . $url;
Пример #2
0
 $res = dbi_query($sql);
 if ($res) {
     $row = dbi_fetch_row($res);
     $name = $row[0];
     $eventdate = $row[1];
     $eventtime = $row[2];
     dbi_free_result($res);
 }
 // TODO: switch transation language based on user so each user
 // gets message in their selected language.
 for ($i = 0; $i < count($partlogin); $i++) {
     // Log the deletion
     activity_log($id, $login, $partlogin[$i], $LOG_DELETE, "");
     $do_send = get_pref_setting($partlogin[$i], "EMAIL_EVENT_DELETED");
     user_load_variables($partlogin[$i], "temp");
     if ($partlogin[$i] != $login && $do_send == "Y" && boss_must_be_notified($login, $partlogin[$i]) && strlen($tempemail) && $send_email != "N") {
         $msg = translate("Hello") . ", " . $tempfullname . ".\n\n" . translate("An appointment has been canceled for you by") . " " . $login_fullname . ". " . translate("The subject was") . " \"" . $name . "\"\n" . translate("Date") . ": " . date_to_str($thisdate) . "\n";
         if ($eventtime != '-1') {
             $msg .= translate("Time") . ": " . display_time($eventtime);
         }
         $msg .= "\n\n";
         if (strlen($login_email)) {
             $extra_hdrs = "From: {$login_email}\r\nX-Mailer: " . translate($application_name);
         } else {
             $extra_hdrs = "From: {$email_fallback_from}\r\nX-Mailer: " . translate($application_name);
         }
         mail($tempemail, translate($application_name) . " " . translate("Notification") . ": " . $name, html_to_8bits($msg), $extra_hdrs);
     }
 }
 // Instead of deleting from the database... mark it as deleted
 // by setting the status for each participant to "D" (instead
Пример #3
0
     $time = sprintf("%06d", $row[2]);
     dbi_free_result($res);
 }
 $eventstart = date_to_epoch($fmtdate . $time);
 $TIME_FORMAT = 24;
 for ($i = 0, $cnt = count($partlogin); $i < $cnt; $i++) {
     // Log the deletion.
     activity_log($id, $login, $partlogin[$i], $log_delete, '');
     // Check UAC.
     $can_email = access_is_enabled() ? access_user_calendar('email', $partlogin[$i], $login) : false;
     // Don't email the logged in user.
     if ($can_email && $partlogin[$i] != $login) {
         set_env('TZ', get_pref_setting($partlogin[$i], 'TIMEZONE'));
         $user_language = get_pref_setting($partlogin[$i], 'LANGUAGE');
         user_load_variables($partlogin[$i], 'temp');
         if (!$is_nonuser_admin && $partlogin[$i] != $login && get_pref_setting($partlogin[$i], 'EMAIL_EVENT_DELETED') == 'Y' && boss_must_be_notified($login, $partlogin[$i]) && !empty($tempemail) && $SEND_EMAIL != 'N') {
             reset_language(empty($user_language) || $user_language == 'none' ? $LANGUAGE : $user_language);
             // Use WebCalMailer class.
             $mail->WC_Send($login_fullname, $tempemail, $tempfullname, $name, str_replace('XXX', $tempfullname, translate('Hello, XXX.')) . ".\n\n" . str_replace('XXX', $login_fullname, translate('XXX has canceled an appointment.')) . "\n" . str_replace('XXX', $name, translate('Subject XXX')) . "\"\n" . str_replace('XXX', date_to_str($thisdate), translate('Date XXX')) . "\n" . (!empty($eventtime) && $eventtime != '-1' ? str_replace('XXX', display_time('', 2, $eventstart, get_pref_setting($partlogin[$i], 'TIME_FORMAT')), translate('Time XXX')) : '') . "\n\n", get_pref_setting($partlogin[$i], 'EMAIL_HTML'), $login_email);
         }
     }
 }
 // Instead of deleting from the database...
 // mark it as deleted by setting the status for each participant to "D"
 // (instead of "A"/Accepted, "W"/Waiting-on-approval or "R"/Rejected).
 if ($override_repeat) {
     dbi_execute('INSERT INTO webcal_entry_repeats_not
 ( cal_id, cal_date, cal_exdate ) VALUES ( ?, ?, ? )', array($id, $date, 1));
     // Should we log this to the activity log???
 } else {
     // If it's a repeating event, delete any event exceptions that were entered.