Ejemplo n.º 1
0
function display_day()
{
    global $phpcid, $phpc_cal, $phpc_user, $phpc_script, $phpcdb, $day, $month, $year;
    $monthname = month_name($month);
    $results = $phpcdb->get_occurrences_by_date($phpcid, $year, $month, $day);
    $today_epoch = mktime(0, 0, 0, $month, $day, $year);
    $have_events = false;
    $html_table = tag('table', attributes('class="phpc-main"'), tag('caption', "{$day} {$monthname} {$year}"), tag('thead', tag('tr', tag('th', __('Title')), tag('th', __('Time')), tag('th', __('Description')))));
    if ($phpc_cal->can_modify()) {
        $html_table->add(tag('tfoot', tag('tr', tag('td', attributes('colspan="4"'), create_hidden('action', 'event_delete'), create_hidden('day', $day), create_hidden('month', $month), create_hidden('year', $year), create_submit(__('Delete Selected'))))));
    }
    $html_body = tag('tbody');
    while ($row = $results->fetch_assoc()) {
        $event = new PhpcOccurrence($row);
        if (!$event->can_read()) {
            continue;
        }
        $have_events = true;
        $eid = $event->get_eid();
        $oid = $event->get_oid();
        $html_subject = tag('td');
        if ($event->can_modify()) {
            $html_subject->add(create_checkbox('eid[]', $eid));
        }
        $html_subject->add(create_occurrence_link(tag('strong', $event->get_subject()), 'display_event', $oid));
        if ($event->can_modify()) {
            $html_subject->add(" (");
            $html_subject->add(create_event_link(__('Modify'), 'event_form', $eid));
            $html_subject->add(')');
        }
        $html_body->add(tag('tr', $html_subject, tag('td', $event->get_time_span_string()), tag('td', $event->get_desc())));
    }
    $html_table->add($html_body);
    if ($phpc_cal->can_modify()) {
        $output = tag('form', attributes("action=\"{$phpc_script}\""), $html_table);
    } else {
        $output = $html_table;
    }
    if (!$have_events) {
        $output = tag('h2', __('No events on this day.'));
    }
    return tag('', create_day_menu(), $output);
}
Ejemplo n.º 2
0
function create_week($week_of_year, $from_stamp, $to_stamp, $year)
{
    global $phpcdb, $phpcid, $phpc_cal;
    $start_day = date("j", $from_stamp);
    $start_month = date("n", $from_stamp);
    $start_year = date("Y", $from_stamp);
    $max_events = $phpc_cal->events_max;
    $results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp, $to_stamp);
    $days_events = array();
    while ($row = $results->fetch_assoc()) {
        $event = new PhpcOccurrence($row);
        if (!$event->can_read()) {
            continue;
        }
        $end_stamp = mktime(0, 0, 0, $event->get_end_month(), $event->get_end_day(), $event->get_end_year());
        $start_stamp = mktime(0, 0, 0, $event->get_start_month(), $event->get_start_day(), $event->get_start_year());
        $diff = $from_stamp - $start_stamp;
        if ($diff > 0) {
            $add_days = floor($diff / 86400);
        } else {
            $add_days = 0;
        }
        // put the event in every day until the end
        for (;; $add_days++) {
            $stamp = mktime(0, 0, 0, $event->get_start_month(), $event->get_start_day() + $add_days, $event->get_start_year());
            if ($stamp > $end_stamp || $stamp > $to_stamp) {
                break;
            }
            $key = date('Y-m-d', $stamp);
            if (!isset($days_events[$key])) {
                $days_events[$key] = array();
            }
            if (sizeof($days_events[$key]) == $max_events) {
                $days_events[$key][] = false;
            }
            if (sizeof($days_events[$key]) > $max_events) {
                continue;
            }
            $days_events[$key][] = $event;
        }
    }
    $week_table = tag('tbody');
    $week_html = tag('tr', tag('th', $week_of_year));
    $week_table->add($week_html);
    for ($day_of_week = 0; $day_of_week < 7; $day_of_week++) {
        $day = $start_day + $day_of_week;
        $week_html->add(create_day($start_month, $day, $start_year, $days_events));
    }
    return $week_table;
}
Ejemplo n.º 3
0
function create_month($month, $year)
{
    global $phpcdb, $phpc_cal, $phpcid;
    $wim = weeks_in_month($month, $year);
    $first_day = 1 - day_of_week($month, 1, $year);
    $from_stamp = mktime(0, 0, 0, $month, $first_day, $year);
    $last_day = $wim * 7 - day_of_week($month, 1, $year);
    $to_stamp = mktime(23, 59, 59, $month, $last_day, $year);
    $max_events = $phpc_cal->events_max;
    $results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp, $to_stamp);
    $days_events = array();
    while ($row = $results->fetch_assoc()) {
        $event = new PhpcOccurrence($row);
        if (!$event->can_read()) {
            continue;
        }
        $end_stamp = mktime(0, 0, 0, $event->get_end_month(), $event->get_end_day(), $event->get_end_year());
        $start_stamp = mktime(0, 0, 0, $event->get_start_month(), $event->get_start_day(), $event->get_start_year());
        $diff = $from_stamp - $start_stamp;
        if ($diff > 0) {
            $add_days = floor($diff / 86400);
        } else {
            $add_days = 0;
        }
        // put the event in every day until the end
        for (;; $add_days++) {
            $stamp = mktime(0, 0, 0, $event->get_start_month(), $event->get_start_day() + $add_days, $event->get_start_year());
            if ($stamp > $end_stamp || $stamp > $to_stamp) {
                break;
            }
            $key = date('Y-m-d', $stamp);
            if (!isset($days_events[$key])) {
                $days_events[$key] = array();
            }
            if (sizeof($days_events[$key]) == $max_events) {
                $days_events[$key][] = false;
            }
            if (sizeof($days_events[$key]) > $max_events) {
                continue;
            }
            $days_events[$key][] = $event;
        }
    }
    $month_table = tag('tbody');
    for ($week_of_month = 1; $week_of_month <= $wim; $week_of_month++) {
        $month_table->add(create_week($week_of_month, $month, $year, $days_events));
    }
    return $month_table;
}
Ejemplo n.º 4
0
function get_events($from_stamp, $to_stamp)
{
    global $phpc_cal, $phpcdb, $phpcid;
    //echo "<pre>$from_stamp $to_stamp\n";
    $results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp, $to_stamp);
    $days_events = array();
    //var_dump($results);
    while ($row = $results->fetch_assoc()) {
        //var_dump($row);
        //echo "here\n";
        $event = new PhpcOccurrence($row);
        if (!$event->can_read()) {
            continue;
        }
        $end_stamp = mktime(0, 0, 0, $event->get_end_month(), $event->get_end_day(), $event->get_end_year());
        $start_stamp = mktime(0, 0, 0, $event->get_start_month(), $event->get_start_day(), $event->get_start_year());
        $diff = $from_stamp - $start_stamp;
        if ($diff > 0) {
            $add_days = floor($diff / 86400);
        } else {
            $add_days = 0;
        }
        // put the event in every day until the end
        for (;; $add_days++) {
            $stamp = mktime(0, 0, 0, $event->get_start_month(), $event->get_start_day() + $add_days, $event->get_start_year());
            if ($stamp > $end_stamp || $stamp > $to_stamp) {
                break;
            }
            $key = date('Y-m-d', $stamp);
            if (!isset($days_events[$key])) {
                $days_events[$key] = array();
            }
            if (sizeof($days_events[$key]) == $phpc_cal->events_max) {
                $days_events[$key][] = false;
            }
            if (sizeof($days_events[$key]) > $phpc_cal->events_max) {
                continue;
            }
            $days_events[$key][] = $event;
        }
    }
    return $days_events;
}