Exemple #1
0
function print_date_entries_timebar($date, $user, $ssi)
{
    global $DISPLAY_UNAPPROVED, $events, $is_admin, $PUBLIC_ACCESS, $PUBLIC_ACCESS_CAN_ADD, $readonly, $totalSlots;
    $ret = '';
    $cnt = 0;
    $get_unapproved = $DISPLAY_UNAPPROVED == 'Y';
    $year = substr($date, 0, 4);
    $month = substr($date, 4, 2);
    $day = substr($date, 6, 2);
    $can_add = $readonly == 'N' || $is_admin;
    if ($PUBLIC_ACCESS == 'Y' && $PUBLIC_ACCESS_CAN_ADD != 'Y' && $GLOBALS['login'] == '__public__') {
        $can_add = false;
    }
    $cur_rep = 0;
    // Combine and sort the event arrays.
    $ev = combine_and_sort_events(get_entries($date, $get_unapproved), get_repeating_entries($user, $date));
    $evcnt = count($ev);
    for ($i = 0; $i < $evcnt; $i++) {
        if ($get_unapproved || $ev[$i]->getStatus() == 'A') {
            $ret .= print_entry_timebar($ev[$i], $date);
            $cnt++;
        }
    }
    return $ret . ($cnt == 0 ? '
            <tr>
              <td colspan="' . $totalSlots . '">&nbsp;</td>
            </tr>' : '');
}
function print_day_at_a_glance($date, $user, $can_add = 0)
{
    global $CELLBG, $DISPLAY_TASKS_IN_GRID, $DISPLAY_UNAPPROVED, $first_slot, $hour_arr, $last_slot, $rowspan, $rowspan_arr, $TABLEBG, $THBG, $THFG, $TIME_SLOTS, $today, $TODAYCELLBG, $WORK_DAY_END_HOUR, $WORK_DAY_START_HOUR;
    if (empty($TIME_SLOTS)) {
        return translate('Error TIME_SLOTS undefined!') . "<br />\n";
    }
    $get_unapproved = $DISPLAY_UNAPPROVED == 'Y';
    // Get, combine and sort the events for this date.
    $ev = combine_and_sort_events(get_entries($date, $get_unapproved), get_repeating_entries($user, $date));
    if ($date >= date('Ymd') && (empty($DISPLAY_TASKS_IN_GRID) || $DISPLAY_TASKS_IN_GRID == 'Y')) {
        $ev = combine_and_sort_events($ev, get_tasks($date, $get_unapproved));
    }
    $hour_arr = $rowspan_arr = array();
    $interval = 1440 / $TIME_SLOTS;
    // Number of minutes per slot
    $first_slot = intval($WORK_DAY_START_HOUR * 60 / $interval);
    $last_slot = intval($WORK_DAY_END_HOUR * 60 / $interval);
    for ($i = 0, $cnt = count($ev); $i < $cnt; $i++) {
        if ($get_unapproved || $ev[$i]->getStatus() == 'A') {
            html_for_event_day_at_a_glance($ev[$i], $date);
        }
    }
    $last_row = -1;
    $ret = '';
    $rowspan = 0;
    // Squish events that use the same cell into the same cell.
    // For example, an event from 8:00-9:15 and another from 9:30-9:45 both
    // want to show up in the 8:00-9:59 cell.
    for ($i = $first_slot < 0 ? $first_slot : 0; $i < $TIME_SLOTS; $i++) {
        if ($rowspan > 1) {
            if (!empty($hour_arr[$i])) {
                $diff_start_time = $i - $last_row;
                if (!empty($rowspan_arr[$i])) {
                    if ($rowspan_arr[$i] > 1 && $rowspan_arr[$i] + $diff_start_time > $rowspan_arr[$last_row]) {
                        $rowspan_arr[$last_row] = $rowspan_arr[$i] + $diff_start_time;
                    }
                    $rowspan += $rowspan_arr[$i] - 1;
                } else {
                    $rowspan_arr[$last_row] += $rowspan_arr[$i];
                }
                // This will move entries apart that appear in one field,
                // yet start on different hours.
                for ($u = $diff_start_time; $u > 0; $u--) {
                    $hour_arr[$last_row] .= "<br />\n";
                }
                $hour_arr[$last_row] .= $hour_arr[$i];
                $hour_arr[$i] = '';
                $rowspan_arr[$i] = 0;
            }
            $rowspan--;
        } else {
            if (!empty($rowspan_arr[$i]) && $rowspan_arr[$i] > 1) {
                $last_row = $i;
                $rowspan = $rowspan_arr[$i];
            }
        }
    }
    $ret .= '
    <table class="main glance" cellspacing="0" cellpadding="0">' . (empty($hour_arr[9999]) ? '' : '
      <tr>
        <th class="empty">&nbsp;</th>
        <td class="hasevents">' . $hour_arr[9999] . '</td>
      </tr>');
    $rowspan = 0;
    for ($i = $first_slot; $i <= $last_slot; $i++) {
        $time_h = intval($i * $interval / 60);
        $time_m = $i * $interval % 60;
        $addIcon = $can_add ? html_for_add_icon($date, $time_h, $time_m, $user) : '';
        $ret .= '
      <tr>
        <th class="row">' . display_time(($time_h * 100 + $time_m) * 100) . '</th>';
        if ($rowspan > 1) {
            // This might mean there's an overlap, or it could mean one event
            // ends at 11:15 and another starts at 11:30.
            if (!empty($hour_arr[$i])) {
                $ret .= '
        <td class="hasevents">' . $addIcon . $hour_arr[$i] . '</td>';
            }
            $rowspan--;
        } else {
            $ret .= '
        <td ';
            if (empty($hour_arr[$i])) {
                $ret .= ($date == date('Ymd', $today) ? ' class="today"' : '') . '>' . ($can_add ? $addIcon : '&nbsp;');
            } else {
                $rowspan = empty($rowspan_arr[$i]) ? '' : $rowspan_arr[$i];
                $ret .= ($rowspan > 1 ? 'rowspan="' . $rowspan . '"' : '') . 'class="hasevents">' . $addIcon . $hour_arr[$i];
            }
            $ret .= '</td>';
        }
        $ret .= '
      </tr>';
    }
    return $ret . '
    </table>';
}
Exemple #3
0
 $weekdays[$i] = weekday_name(($i + $WEEK_START) % 7, $DISPLAY_LONG_DAYS);
 $dateYmd = date('Ymd', $days[$i]);
 $header[$i] = $weekdays[$i] . '<br />' . date_to_str($dateYmd, $DATE_FORMAT_MD, false, true);
 // .
 // Generate header row.
 $class = $dateYmd == date('Ymd', $today) ? ' class="today"' : (is_weekend($days[$i]) ? ' class="weekend"' : '');
 $headerStr .= '
           <th ' . $class . '>' . ($can_add ? html_for_add_icon($dateYmd, '', '', $user) : '') . '<p style="margin:.75em 0 0 0"><a href="day.php?' . $u_url . 'date=' . $dateYmd . $caturl . '">' . $header[$i] . '</a></p></th>';
 $date = date('Ymd', $days[$i]);
 $hour_arr = $rowspan_arr = $tk = array();
 // .
 // Get, combine and sort, static and repeating events for this date.
 $ev = combine_and_sort_events(get_entries($date, $get_unapproved), get_repeating_entries($user, $date));
 // .
 // Then sort in any tasks due for this day and before.
 $ev = combine_and_sort_events($ev, $date >= date('Ymd') ? get_tasks($date, $get_unapproved) : $tk);
 for ($j = 0, $cnt = count($ev); $j < $cnt; $j++) {
     if ($get_unapproved || $ev[$j]->getStatus() == 'A') {
         html_for_event_week_at_a_glance($ev[$j], $date);
     }
 }
 // .
 // Squish events that use the same cell into the same cell.
 // For example, an event from 8:00-9:15 and another from 9:30-9:45
 // both want to show up in the 8:00-9:59 cell.
 $last_row = -1;
 $rowspan = 0;
 for ($j = 0; $j < $TIME_SLOTS; $j++) {
     if ($rowspan > 1) {
         if (!empty($hour_arr[$j])) {
             $diff_start_time = $j - $last_row;
Exemple #4
0
if (!empty($end_date)) {
    $thismonth = date('m', $end_date);
    $thisyear = date('Y', $end_date);
}
if (empty($error) && empty($list)) {
    $cat_id = empty($report_cat_id) ? '' : $report_cat_id;
    $repeated_events = read_repeated_events($report_user, $start_date, $end_date, $cat_id);
    $events = read_events($report_user, $start_date, $end_date, $cat_id);
    $get_unapproved = $DISPLAY_UNAPPROVED == 'Y';
    // Loop through each day.
    // Get events for each day (both normal and repeating).
    // (Most of this code was copied from week.php.)
    for ($cur_time = $start_date; $cur_time <= $end_date; $cur_time += 86400) {
        $event_str = '';
        $dateYmd = date('Ymd', $cur_time);
        $ev = combine_and_sort_events(get_entries($dateYmd), get_repeating_entries($report_user, $dateYmd));
        for ($i = 0, $cnt = count($ev); $i < $cnt; $i++) {
            if ($get_unapproved || $ev[$i]->getStatus() == 'A') {
                $event_str .= event_to_text($ev[$i], $dateYmd);
            }
        }
        if (!empty($event_str) || $report_include_empty == 'Y' || $report_time_range < 10) {
            $date_str = date_to_str($dateYmd, '', false);
            $date_full_str = date_to_str($dateYmd);
            $day_str .= str_replace(array('${date}', '${events}', '${fulldate}', '${report_id}'), array($date_str, $event_str, $date_full_str, $report_id), $day_template);
        }
    }
}
if (!empty($error)) {
    echo print_error($error) . print_trailer();
    exit;
?>

<div class="vcalendar">
<?php 
echo "<dl>\n";
echo "<!-- \nstartTime: {$startDate}\nendTime: {$endDate}\nstartDate: " . "{$date}\nnumDays: {$numDays}\nuser: {$username}\nevents: " . count($events) . "\nrepeated_events: " . count($repeated_events) . " -->\n";
$eventinfo = '';
$numEvents = 0;
$endDateYmd = date('Ymd', $endDate);
for ($i = $startDate; date('Ymd', $i) <= $endDateYmd && $numEvents < $maxEvents; $i += ONE_DAY) {
    $d = date('Ymd', $i);
    $entries = get_entries($d, $get_unapproved);
    $rentries = get_repeating_entries($username, $d, $get_unapproved);
    $ev = combine_and_sort_events($entries, $rentries);
    $tentries = get_tasks($d, $get_unapproved);
    $ev = combine_and_sort_events($ev, $tentries);
    $ev_cnt = count($ev);
    echo "<!-- {$d} " . count($ev) . " -->\n";
    if ($ev_cnt > 0) {
        echo "<!-- XXX -->\n";
        //print "<dt>" . date_to_str ( $d,  translate ( '__month__ __dd__' ), true, true ) . "</dt>\n<dd>";
        echo '<dt>' . date_to_str($d) . "</dt>\n<dd>";
        for ($j = 0; $j < $ev_cnt && $numEvents < $maxEvents; $j++) {
            print_upcoming_event($ev[$j], $d);
            $numEvents++;
        }
        echo "</dd>\n";
    }
}
echo "</dl>\n";
if ($showMore) {
Exemple #6
0
function print_det_date_entries($date, $user, $ssi)
{
    global $events, $is_admin, $readonly;
    $date = mktime(0, 0, 0, substr($date, 4, 2), substr($date, 6, 2), substr($date, 0, 4));
    // .
    // Get and sort all the repeating and non-repeating events for this date.
    $ev = combine_and_sort_events(get_entries($date), get_repeating_entries($user, $date));
    for ($i = 0, $cnt = count($ev); $i < $cnt; $i++) {
        if (!empty($DISPLAY_UNAPPROVED) && $DISPLAY_UNAPPROVED != 'N' || $ev[$i]->getStatus() == 'A') {
            print_detailed_entry($ev[$i], $date);
        }
    }
}