function build_entry_label($event, $popupid, $can_access, $timestr, $time_only = 'N') { global $eventinfo, $login, $SUMMARY_LENGTH, $UAC_ENABLED, $user; $ret = ''; // Get reminders display string. $reminder = getReminders($event->getId(), true); $can_access = $UAC_ENABLED == 'Y' ? $can_access : 0; $not_my_entry = $login != $user && strlen($user) || $login != $event->getLogin() && strlen($event->getLogin()); $sum_length = $SUMMARY_LENGTH; if ($event->isAllDay() || $event->isUntimed()) { $sum_length += 6; } $tmpAccess = $event->getAccess(); $tmpId = $event->getId(); $tmpLogin = $event->getLogin(); $tmpName = $event->getName(); $tmp_ret = htmlspecialchars(substr($tmpName, 0, $sum_length) . (strlen($tmpName) > $sum_length ? '...' : '')); if ($not_my_entry && $tmpAccess == 'R' && !($can_access & PRIVATE_WT)) { if ($time_only != 'Y') { $ret = '(' . translate('Private') . ')'; } // translate ( 'This event is private' ) $eventinfo .= build_entry_popup($popupid, $tmpLogin, str_replace('XXX', translate('private'), translate('This event is XXX.')), ''); } else { if ($not_my_entry && $tmpAccess == 'C' && !($can_access & CONF_WT)) { if ($time_only != 'Y') { $ret = '(' . translate('Conf.') . ')'; } $eventinfo .= build_entry_popup($popupid, $tmpLogin, str_replace('XXX', translate('confidential'), translate('This event is XXX.')), ''); } else { if ($can_access == 0 && $UAC_ENABLED == 'Y') { if ($time_only != 'Y') { $ret = $tmp_ret; } $eventinfo .= build_entry_popup($popupid, $tmpLogin, '', $timestr, '', '', $tmpName, ''); } else { if ($time_only != 'Y') { $ret = $tmp_ret; } $eventinfo .= build_entry_popup($popupid, $tmpLogin, $event->getDescription(), $timestr, site_extras_for_popup($tmpId), $event->getLocation(), $tmpName, $tmpId, $reminder); } } } return $ret; }
$is_private = true; $description = $name = '[' . translate('Private') . ']'; } else { if ($cal_access == 'C' && !$is_my_event && !$is_assistant && !access_is_enabled()) { $is_confidential = true; $description = $name = '[' . translate('Confidential') . ']'; } } $event_date = $event_repeats && !empty($date) ? $date : ($event_time > 0 ? date('Ymd', date_to_epoch($orig_date . sprintf("%06d", $event_time))) : $orig_date); // Get category Info if ($CATEGORIES_ENABLED == 'Y') { $categories = get_categories_by_id($id, !empty($user) && strlen($user) && ($is_assistant || $is_admin) ? $user : $login, true); $category = implode(', ', $categories); } // get reminders $reminder = getReminders($id, true); echo ' <h2>' . $name . ($is_nonuser_admin || $is_admin && !empty($user) && $user == '__public__' ? ' ( ' . translate('Admin mode') . ' )' : '') . ($is_assistant ? ' ( ' . translate('Assistant mode') . ' )' : '') . '</h2> <table width="100%" summary=""> <tr> <td class="aligntop bold" width="10%">' . translate('Description') . ':</td> <td>'; if (!empty($ALLOW_HTML_DESCRIPTION) && $ALLOW_HTML_DESCRIPTION == 'Y') { $str = $description; // $str = str_replace ( '&', '&', $description ); $str = str_replace('&amp;', '&', $str); // If there is no HTML found, then go ahead and replace // the line breaks ("\n") with the HTML break. echo strstr($str, '<') && strstr($str, '>') ? $str : nl2br(activate_urls($str)); } else { echo nl2br(activate_urls(htmlspecialchars($description)));
$inclusions[] = $row[0]; } } dbi_free_result($res); } } if ($CATEGORIES_ENABLED == 'Y') { $catById = get_categories_by_id($id, $real_user, true); if (!empty($catById)) { $catNames = implode(', ', $catById); $catList = implode(',', array_keys($catById)); } } //end CATEGORIES_ENABLED test // Get reminders. $reminder = getReminders($id); $reminder_offset = empty($reminder) ? 0 : $reminder['offset']; $rem_status = count($reminder); $rem_use_date = !empty($reminder['date']); // Get participants. $res = dbi_execute('SELECT cal_login, cal_status FROM webcal_entry_user WHERE cal_id = ? AND cal_status IN ( \'A\', \'W\' )', array($id)); if ($res) { while ($row = dbi_fetch_row($res)) { $participants[$row[0]] = 1; $selectedStatus[$row[0]] = $row[1]; } dbi_free_result($res); } // Not allowed for tasks or journals. if ($eType == 'event' && !empty($ALLOW_EXTERNAL_USERS) && $ALLOW_EXTERNAL_USERS == 'Y') {
function make_xls() { $ids = $this->input->post('edit'); $reminders = getReminders("lembrete_id in (" . implode(',', $ids) . ")"); $content = ''; foreach ($reminders as $item) { // $status = $item['status']==0?'Não enviado':'Enviado'; // $content .= sprintf("<tr><td>%s</td><td>%s</td></tr>",$item['email'], $status); $content .= sprintf("<tr><td>%s</td></tr>", $item['email']); atualizaStatusLembrete($item['lembrete_id']); } $remindersHtml = "\n <table style='width:100%' summary='Lista de emails'>\n <thead>\n <tr>\n <th>Email</th>\n </tr>\n </thead>\n <tbody>\n {$content}\n </tbody>\n </table>"; $xlsUrl = $this->config->item('xls_path'); verifyPath($xlsUrl, 0777); $xlsUrl .= 'lista_de_emails.xls'; //date("d-m-Y", time()).".xls"; file_put_contents($xlsUrl, utf8_decode($remindersHtml)); redirect('admin'); die; }
function process_event($id, $name, $start, $end, $new_date = '') { global $debug, $is_task, $only_testing; // Get reminders array. $reminder = getReminders($id); if (!empty($reminder)) { if ($debug) { echo " Reminder set for event.<br />\n"; } $times_sent = $reminder['times_sent']; $repeats = $reminder['repeats']; $lastsent = $reminder['last_sent']; $related = $reminder['related']; // If we are working with a repeat or overdue task, and we have sent all the // reminders for the basic event, then reset the counter to 0. if (!empty($new_date)) { if ($times_sent == $repeats + 1) { if (!$is_task || $related == 'E' && date('Ymd', $new_date) != date('Ymd', $end)) { // Tasks only. $times_sent = 0; } } $new_offset = date_to_epoch($new_date) - ($start - $start % 86400); $start += $new_offset; $end += $new_offset; } if ($debug) { printf("Event %d: \"%s\" on %s at %s GMT<br />\n", $id, $name, gmdate('Ymd', $start), gmdate('H:i:s', $start)); } // It is pointless to send reminders after this time! $pointless = $end; $remB4 = $reminder['before'] == 'Y'; if (!empty($reminder['date'])) { // We're using a date. $remind_time = $reminder['timestamp']; } else { // We're using offsets. $offset = $reminder['offset'] * 60; // Convert to seconds. if ($related == 'S') { // Relative to start. $offset_msg = ($remB4 ? ' Mins Before Start: ' : ' Mins After Start: ') . $reminder['offset']; $remind_time = $remB4 ? $start - $offset : $start + $offset; } else { // Relative to end/due. $offset_msg = ($remB4 ? ' Mins Before End: ' : ' Mins After End: ') . $reminder['offset']; $remind_time = $remB4 ? $end - $offset : $end + $offset; $pointless = $remB4 ? $end : $end + $offset; } } // Factor in repeats if set. if ($repeats > 0 && $times_sent <= $repeats) { $remind_time += $reminder['duration'] * 60 * $times_sent; } if ($debug) { echo (empty($offset_msg) ? '' : $offset_msg . '<br />') . ' Event ' . ($related == 'S' ? 'start time is: ' . gmdate('m/d/Y H:i', $start) : 'end time is: ' . gmdate('m/d/Y H:i', $end)) . ' GMT<br /> Remind time is: ' . gmdate('m/d/Y H:i', $remind_time) . ' GMT<br /> Effective delivery time is: ' . date('m/d/Y H:i T', $remind_time) . '<br /> Last sent on: ' . ($lastsent == 0 ? 'NEVER' : date('m/d/Y H:i T', $lastsent)) . '<br /><br /> times_sent = ' . $times_sent . ' repeats = ' . $repeats . ' time = ' . date('His', time()) . ' remind_time = ' . date('His', $remind_time) . ' lastsent = ' . ($lastsent > 0 ? date('Ymd His', $lastsent) : " NEVER ") . ' pointless = ' . date('Ymd His', $pointless) . ' is_task = ' . ($is_task ? 'true' : 'false') . '<br />'; } if ($times_sent < $repeats + 1 && time() >= $remind_time && $lastsent <= $remind_time && (time() <= $pointless || $is_task)) { // Send a reminder. if ($debug) { echo ' SENDING REMINDER!<br />' . "\n"; } send_reminder($id, $start); // Now update the db... if ($debug) { echo '<br /> LOGGING REMINDER!<br /><br />' . "\n"; } log_reminder($id, $times_sent + 1); } } }
function export_alarm_ical($id, $date, $description, $task_complete = true) { global $cal_type; $ret = ''; $reminder = array(); // Don't send reminder for event in the past // unless this is a task that may be overdue if ($date < date('Ymd') && $task_complete == true) { return; } // get reminders $reminder = getReminders($id); if (!empty($reminder)) { // Sunbird requires this line if (!empty($reminder['offset'])) { $ret .= 'X-MOZILLA-ALARM-DEFAULT-LENGTH:' . $reminder['offset'] . "\r\n"; } $ret .= "BEGIN:VALARM\r\n"; $ret .= 'TRIGGER'; if (!empty($reminder['date'])) { $ret .= ';VALUE=DATE-TIME:' . $reminder['date'] . 'T' . $reminder['time'] . "Z\r\n"; } // related to entry end/due date/time if ($reminder['related'] == 'E') { $ret .= ';RELATED=END'; } if (empty($reminder['date'])) { // offset may be zero // before edge needs a '-' $sign = $reminder['before'] == 'Y' ? '-' : ''; $ret .= ':' . $sign . 'PT' . $reminder['offset'] . "M\r\n"; } if (!empty($reminder['repeats'])) { $ret .= 'REPEAT:' . $reminder['repeats'] . "\r\n"; $ret .= 'DURATION:PT' . $reminder['duration'] . "M\r\n"; } $ret .= 'ACTION:' . $reminder['action'] . "\r\n"; $array = export_fold_lines($description, 'utf8'); while (list($key, $value) = each($array)) { $ret .= "{$value}\r\n"; } $ret .= "END:VALARM\r\n"; } return $ret; }