function print_upcoming_event($e, $date)
 {
     global $display_link, $link_target, $SERVER_URL, $charset, $login, $display_tzid, $showTime, $showPopups, $eventinfo, $username, $hcalendar_output, $UPCOMING_DISPLAY_CAT_ICONS;
     $popupid = 'pop' . $e->getId() . '-' . $date;
     $private = $confidential = false;
     // Access: P=Public, R=Private, C=Confidential
     if ($e->getAccess() == 'R') {
         // not a public event, so we will just display "Private"
         $private = true;
     } else {
         if ($e->getAccess() == 'C') {
             // not a public event, so we will just display "Confidential"
             $confidential = true;
         }
     }
     if (!empty($SERVER_URL) && !$private && !$confidential) {
         echo "<div class=\"vevent\">\n";
         if ($display_link) {
             if ($showPopups) {
                 $timestr = '';
                 if ($e->isAllDay()) {
                     $timestr = translate('All day event');
                 } else {
                     if ($e->getTime() >= 0) {
                         $timestr = display_time($e->getDatetime());
                         if ($e->getDuration() > 0) {
                             $timestr .= ' - ' . display_time($e->getEndDateTime());
                         }
                     }
                 }
                 $eventinfo .= build_entry_popup('eventinfo-' . $popupid, $username, $e->getDescription(), $timestr, site_extras_for_popup($e->getId()), $e->getLocation(), $e->getName(), $e->getId());
             }
             $link = "<a class=\"entry\" id=\"{$popupid}\" title=\"" . htmlspecialchars($e->getName()) . '" href="' . $SERVER_URL . 'view_entry.php?id=' . $e->getID() . "&amp;date={$date}&amp;user="******"\" target=\"{$link_target}\"";
             }
             $link .= '>';
             if (empty($UPCOMING_DISPLAY_CAT_ICONS) || $UPCOMING_DISPLAY_CAT_ICONS != 'N') {
                 $catNum = abs($e->getCategory());
                 if ($catNum > 0) {
                     $catIcon = 'icons/cat-' . $catNum . '.gif';
                     if (file_exists($catIcon)) {
                         echo $link . '<img src="' . $catIcon . '" alt="category icon" border="0"/></a>';
                     }
                 }
             }
             echo $link;
         }
     }
     if ($private) {
         echo '[' . translate('Private') . ']';
     } else {
         if ($confidential) {
             echo '[' . translate('Confidential') . ']';
         } else {
             echo '<span class="summary">' . htmlspecialchars($e->getName()) . '</span>';
         }
     }
     if ($display_link && !empty($SERVER_URL) && !$private) {
         echo '</a>';
     }
     //added for hCalendar
     if ($hcalendar_output) {
         echo '<abbr class="dtstart" title="' . export_ts_utc_date($e->getDateTimeTS()) . '">' . $e->getDateTime() . "</abbr>\n";
         echo '<abbr class="dtend" title="' . export_ts_utc_date($e->getEndDateTimeTS()) . '">' . $e->getEndDateTimeTS() . "</abbr>\n";
         echo '<span class="description">' . $e->getDescription() . "</span>\n";
         if (strlen($e->getLocation()) > 0) {
             echo '<span class="location">' . $e->getLocation() . "</span>\n";
         }
         $categories = get_categories_by_id($e->getId(), $username);
         $category = implode(', ', $categories);
         if (strlen($category) > 0) {
             echo '<span class="categories">' . htmlentities($category) . "</span>\n";
         }
         if (strlen($e->getUrl()) > 0) {
             echo '<span class="url">' . $e->getUrl() . "</span>\n";
         }
         $rrule = export_recurrence_ical($e->getId());
         if (strlen($rrule) > 6) {
             echo '<span class="rrule">' . substr($rrule, 6) . "</span>\n";
         }
     }
     if ($showTime) {
         //show event time if requested (default=don't show)
         if ($e->isAllDay()) {
             echo ' (' . translate('All day event') . ")\n";
         } else {
             if ($e->getTime() != -1) {
                 echo ' (' . display_time($e->getDateTime(), $display_tzid) . ")\n";
             }
         }
     }
     echo "</div>\n";
 }
예제 #2
0
파일: xcal.php 프로젝트: rhertzog/lcs
function export_time($date, $duration, $time, $texport, $vtype = 'E')
{
    global $TIMEZONE, $vtimezone_data, $use_vtimezone;
    $ret = $vtimezone_exists = '';
    $eventstart = date_to_epoch($date . ($time > 0 ? $time : 0), $time > 0);
    $eventend = $eventstart + $duration * 60;
    if ($time == 0 && $duration == 1440 && strcmp($texport, 'ical') == 0) {
        // all day.
        if ($use_vtimezone && ($vtimezone_data = get_vtimezone($TIMEZONE, $dtstart))) {
            $vtimezone_exists = true;
            $dtstart = $date . 'T000000';
            $ret .= 'DTSTART;TZID=' . $TIMEZONE . ':' . $dtstart . "\r\n";
        } else {
            $ret .= "DTSTART;VALUE=DATE:{$date}\r\n";
        }
    } else {
        if ($time == -1) {
            // untimed event: this is the same regardless of timezone. For example,
            // New Year's Day starts at 12am localtime regardless of timezone.
            $ret .= "DTSTART;VALUE=DATE:{$date}\r\n";
        } else {
            // timed  event
            $utc_start = export_ts_utc_date($eventstart);
            $dtstart = $date . 'T000000';
            if ($use_vtimezone && ($vtimezone_data = get_vtimezone($TIMEZONE, $dtstart))) {
                $vtimezone_exists = true;
                $ret .= 'DTSTART;TZID=' . $TIMEZONE . ':' . $utc_start . "\r\n";
            } else {
                $ret .= "DTSTART:{$utc_start}\r\n";
            }
        }
    }
    if (strcmp($texport, 'ical') == 0) {
        $utc_dtstamp = export_ts_utc_date(time());
        $ret .= "DTSTAMP:{$utc_dtstamp}\r\n";
        // We don' want DTEND for VTODOs
        if ($vtype == 'T' || $vtype == 'N') {
            return $ret;
        }
        if ($time == 0 && $duration == 1440) {
            // all day event: better to use end date than duration since
            // duration will be 23hr and 25hrs on DST switch-over days.
            if ($vtimezone_exists) {
                $ret .= 'DTEND;TZID=' . $TIMEZONE . ':' . date('Ymd', $eventend) . "T000000\r\n";
            } else {
                $ret .= 'DTEND;VALUE=DATE:' . gmdate('Ymd', $eventend) . "\r\n";
            }
        } else {
            if ($time == -1) {
                // untimed event
                $ret .= "DTEND;VALUE=DATE:{$date}\r\n";
            } else {
                if ($time > 0) {
                    // timed  event
                    if ($vtimezone_exists) {
                        $ret .= 'DTEND;TZID=' . $TIMEZONE . ':' . date('Ymd', $eventend) . "T000000\r\n";
                    } else {
                        $utc_end = export_ts_utc_date($eventend);
                        $ret .= "DTEND:{$utc_end}\r\n";
                    }
                }
            }
        }
    } elseif (strcmp($texport, 'vcal') == 0) {
        $utc_end = export_ts_utc_date($eventend);
        $ret .= "DTEND:{$utc_end}\r\n";
    } else {
        $ret .= "DURATION:P{$str_duration}\r\n";
    }
    return $ret;
}