function my_calendar_draw_events($events, $type, $process_date, $time, $template = '')
{
    apply_filters('debug', "my_calendar( {$type} ) begin draw events");
    if ($type == 'mini' && (get_option('mc_open_day_uri') == 'true' || get_option('mc_open_day_uri') == 'listanchor' || get_option('mc_open_day_uri') == 'calendaranchor')) {
        return true;
    }
    // We need to sort arrays of objects by time
    if (is_array($events)) {
        $output_array = array();
        $begin = $event_output = $end = '';
        if ($type == "mini" && count($events) > 0) {
            $begin .= "<div id='date-{$process_date}' class='calendar-events'>";
        }
        // By default, skip no events.
        $skipping = false;
        foreach (array_keys($events) as $key) {
            $event =& $events[$key];
            $output_array[] = my_calendar_draw_event($event, $type, $process_date, $time, $template);
        }
        if (is_array($output_array)) {
            foreach (array_keys($output_array) as $key) {
                $value =& $output_array[$key];
                $event_output .= $value;
            }
        }
        if ($event_output == '') {
            return;
        }
        if ($type == "mini" && count($events) > 0) {
            $end .= "</div>";
        }
        return $begin . $event_output . $end;
    }
    apply_filters("debug", "my_calendar( {$name} ) end draw events");
}
Example #2
0
function my_calendar_draw_events($events, $type, $process_date, $time, $template = '')
{
    if ($type == 'mini' && (get_option('mc_open_day_uri') == 'true' || get_option('mc_open_day_uri') == 'listanchor' || get_option('mc_open_day_uri') == 'calendaranchor')) {
        return true;
    }
    // We need to sort arrays of objects by time
    if (is_array($events)) {
        $output_array = array();
        $begin = $event_output = $end = '';
        if ($type == "mini" && count($events) > 0) {
            $begin .= "<div id='date-{$process_date}' class='calendar-events'>";
        }
        foreach (array_keys($events) as $key) {
            $event =& $events[$key];
            $check = mc_test_occurrence_overlap($event, true);
            if ($check == '') {
                $output_array[] = my_calendar_draw_event($event, $type, $process_date, $time, $template);
            }
        }
        if (is_array($output_array)) {
            foreach (array_keys($output_array) as $key) {
                $value =& $output_array[$key];
                $event_output .= $value;
            }
        }
        if ($event_output == '') {
            return '';
        }
        if ($type == "mini" && count($events) > 0) {
            $end .= "</div>";
        }
        return $begin . $event_output . $end;
    }
    return '';
}
function mc_get_event($id, $type = 'object')
{
    // indicates whether you want a specific instance, or a general event
    global $wpdb;
    $mcdb = $wpdb;
    if (get_option('mc_remote') == 'true' && function_exists('mc_remote_db')) {
        $mcdb = mc_remote_db();
    }
    $event = $mcdb->get_row("SELECT *, UNIX_TIMESTAMP(occur_begin) AS ts_occur_begin, UNIX_TIMESTAMP(occur_end) AS ts_occur_end FROM " . MY_CALENDAR_EVENTS_TABLE . " JOIN " . MY_CALENDAR_TABLE . " ON (event_id=occur_event_id) JOIN " . MY_CALENDAR_CATEGORIES_TABLE . " ON (event_category=category_id) WHERE occur_id={$id}");
    if ($type == 'object') {
        return $event;
    } else {
        $date = date('Y-m-d', strtotime($event->occur_begin));
        $time = date('H:i:s', strtotime($event->occur_begin));
        $value = "<div id='mc_event'>" . my_calendar_draw_event($event, 'single', $date, $time, 'single') . "</div>\n";
        return $value;
    }
}
function mc_instance_list($id, $occur = false, $template = '<h3>{title}</h3>{description}', $list = '<li>{date}, {time}</li>', $before = "<ul>", $after = "</ul>", $instance = false)
{
    global $wpdb;
    $id = (int) $id;
    $output = '';
    if ($instance == true) {
        $sql = "SELECT * FROM " . my_calendar_event_table() . " WHERE occur_id={$id}";
    } else {
        $sql = "SELECT * FROM " . my_calendar_event_table() . " WHERE occur_event_id={$id}";
    }
    $results = $wpdb->get_results($sql);
    if (is_array($results) && is_admin()) {
        foreach ($results as $result) {
            $begin = "<span id='occur_date_{$result->occur_id}'>" . date_i18n(get_option('mc_date_format'), strtotime($result->occur_begin)) . ', ' . date(get_option('mc_time_format'), strtotime($result->occur_begin)) . "</span>";
            if ($result->occur_id == $occur) {
                $form_control = '';
                $edit = "<em>" . __('Editing Now', 'my-calendar') . "</em>";
            } else {
                $form_control = "{$begin}: <button class='delete_occurrence' type='button' data-value='{$result->occur_id}' aria-describedby='occur_date_{$result->occur_id}' />" . __('Delete', 'my-calendar') . "</button> ";
                $edit = "<a href='" . admin_url('admin.php?page=my-calendar') . "&amp;mode=edit&amp;event_id={$id}&amp;date={$result->occur_id}' aria-describedby='occur_date_{$result->occur_id}'>" . __('Edit', 'my-calendar') . "</a>";
            }
            $output .= "<li>{$form_control}{$edit}</li>";
        }
    } else {
        $details = '';
        foreach ($results as $result) {
            $event_id = $result->occur_id;
            $event = mc_get_event($event_id);
            $array = mc_create_tags($event);
            if (in_array($template, array('details', 'grid', 'list', 'mini')) || mc_key_exists($template)) {
                if (get_option('mc_use_' . $template . '_template') == 1) {
                    $template = mc_get_template($template);
                } else {
                    if (mc_key_exists($template)) {
                        $template = mc_get_custom_template($template);
                    } else {
                        $details = my_calendar_draw_event($event, $type = "single", $event->event_begin, $event->event_time, '');
                    }
                }
            }
            $item = $list != '' ? jd_draw_template($array, $list) : '';
            if ($details == '') {
                $details = $template != '' ? jd_draw_template($array, $template) : '';
            }
            $output .= $item;
            if ($list == '') {
                break;
            }
        }
        $output = $details . $before . $output . $after;
    }
    return get_option('mc_process_shortcodes') == 'true' ? do_shortcode($output) : $output;
}
function mc_show_event_template($content)
{
    global $post;
    if (is_object($post) && in_the_loop()) {
        // some early versions of this placed the shortcode into the post content. Strip that out.
        $new_content = $content;
        if ($post->post_type == 'mc-events') {
            if (isset($_GET['mc_id']) && mc_valid_id($_GET['mc_id'])) {
                $mc_id = intval($_GET['mc_id']);
                $event_id = get_post_meta($post->ID, '_mc_event_id', true);
                $event = mc_get_event($mc_id, 'object');
                $date = date('Y-m-d', strtotime($event->occur_begin));
                $time = date('H:i:00', strtotime($event->occur_begin));
            } else {
                $event_id = get_post_meta($post->ID, '_mc_event_id', true);
                if (is_numeric($event_id)) {
                    $event = mc_get_nearest_event($event_id);
                    $date = date('Y-m-d', strtotime($event->occur_begin));
                    $time = date('H:i:s', strtotime($event->occur_begin));
                } else {
                    return $content;
                }
            }
            if (is_object($event) && mc_event_is_hidden($event)) {
                return $content;
            }
            if (get_option('mc_use_details_template') == 1) {
                $new_content = apply_filters('mc_before_event', '', $event, 'single', $time);
                if (isset($_GET['mc_id'])) {
                    $shortcode = str_replace("event='{$event_id}'", "event='{$mc_id}' instance='1'", get_post_meta($post->ID, '_mc_event_shortcode', true));
                } else {
                    $shortcode = get_post_meta($post->ID, '_mc_event_shortcode', true);
                }
                $new_content .= do_shortcode(apply_filters('mc_single_event_shortcode', $shortcode));
                $new_content .= apply_filters('mc_after_event', '', $event, 'single', $time);
            } else {
                $new_content = my_calendar_draw_event($event, 'single', $date, $time, '');
            }
            $content = do_shortcode(apply_filters('mc_event_post_content', $new_content, $content, $post));
        }
    }
    return $content;
}
function mc_instance_list($id, $occur = false, $template = '<h3>{title}</h3>{description}', $list = '<li>{date}, {time}</li>', $before = "<ul>", $after = "</ul>")
{
    global $wpdb;
    $id = (int) $id;
    $output = '';
    $sql = "SELECT * FROM " . my_calendar_event_table() . " WHERE occur_event_id={$id}";
    $results = $wpdb->get_results($sql);
    if (is_array($results) && is_admin()) {
        foreach ($results as $result) {
            if ($result->occur_id == $occur) {
                $form_control = '';
                $current = "<em>" . __('Editing: ', 'my-calendar') . "</em>";
                $end = '';
            } else {
                $form_control = "<input type='checkbox' name='delete_occurrences[]' id='delete_{$result->occur_id}' value='{$result->occur_id}' aria-labelledby='occur_label occur_date' /> <label id='occur_label' for='delete_{$result->occur_id}'>Delete</label> ";
                $current = "<a href='" . admin_url('admin.php?page=my-calendar') . "&amp;mode=edit&amp;event_id={$id}&amp;date={$result->occur_id}'>";
                $end = "</a>";
            }
            $begin = "<span id='occur_date'>" . date_i18n(get_option('mc_date_format'), strtotime($result->occur_begin)) . ', ' . date(get_option('mc_time_format'), strtotime($result->occur_begin)) . "</span>";
            $output .= "<li>{$form_control}{$current}{$begin}{$end}</li>";
        }
    } else {
        $details = '';
        foreach ($results as $result) {
            $event_id = $result->occur_id;
            $event = mc_get_event($event_id);
            $array = mc_create_tags($event);
            if (in_array($template, array('details', 'grid', 'list', 'mini'))) {
                if (get_option('mc_use_' . $template . '_template') == 1) {
                    $template = mc_get_template($template);
                } else {
                    $template = false;
                    $details = my_calendar_draw_event($event, $type = "single", $event->event_begin, $event->event_time, '');
                }
            }
            $item = $list != '' ? jd_draw_template($array, $list) : '';
            if ($details == '') {
                $details = $template != '' ? jd_draw_template($array, $template) : '';
            }
            $output .= $item;
        }
        $output = $details . $before . $output . $after;
    }
    return $output;
}