コード例 #1
0
function mc_add_inner_box()
{
    global $post;
    $event_id = get_post_meta($post->ID, '_mc_event_id', true);
    if ($event_id) {
        $url = admin_url('admin.php?page=my-calendar&mode=edit&event_id=' . $event_id);
        $event = mc_get_event_core($event_id);
        $content = "<p><strong>" . mc_kses_post($event->event_title) . '</strong><br />' . $event->event_begin . ' @ ' . $event->event_time . "</p>";
        if ($event->event_label != '') {
            $content .= "<p>" . sprintf(__('<strong>Location:</strong> %s', 'my-calendar'), mc_kses_post($event->event_label)) . "</p>";
        }
        $content .= "<p>" . sprintf(__('<a href="%s">Edit event</a>.', 'my-calendar'), $url) . "</p>";
        echo $content;
    }
}
コード例 #2
0
function mc_increment_event($id, $post = array(), $test = false)
{
    global $wpdb;
    $event = mc_get_event_core($id);
    $data = array();
    if (empty($post)) {
        $orig_begin = $event->event_begin . ' ' . $event->event_time;
        $orig_end = $event->event_end . ' ' . $event->event_endtime;
    } else {
        $orig_begin = @$post['event_begin'] . ' ' . @$post['event_time'];
        $orig_end = @$post['event_end'] . ' ' . @$post['event_endtime'];
    }
    $group_id = $event->event_group_id;
    $format = array('%d', '%s', '%s', '%d');
    $recurs = str_split($event->event_recur, 1);
    $recur = $recurs[0];
    $every = isset($recurs[1]) ? $recurs[1] : 1;
    if ($recur != "S") {
        // if this event had a rep of 0, translate that.
        $event_repetition = $event->event_repeats != 0 ? $event->event_repeats : _mc_increment_values($recur);
        $numforward = (int) $event_repetition;
        if ($recur != 'S') {
            switch ($recur) {
                case "D":
                case "E":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, $i * $every, 0, 0);
                        $end = my_calendar_add_date($orig_end, $i * $every, 0, 0);
                        if ($recur == 'E' && (date('w', $begin) != 0 && date('w', $begin) != 6) || $recur == 'D') {
                            $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                            if ($test == 'test' && $i > 0) {
                                return $data;
                            }
                            if (!$test) {
                                $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                            }
                        } else {
                            $numforward++;
                        }
                    }
                    break;
                case "W":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, $i * 7 * $every, 0, 0);
                        $end = my_calendar_add_date($orig_end, $i * 7 * $every, 0, 0);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
                case "B":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, $i * 14, 0, 0);
                        $end = my_calendar_add_date($orig_end, $i * 14, 0, 0);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
                case "M":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, 0, $i * $every, 0);
                        $end = my_calendar_add_date($orig_end, 0, $i * $every, 0);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
                case "U":
                    //important to keep track of which date variables are strings and which are timestamps
                    $week_of_event = week_of_month(date('d', strtotime($event->event_begin)));
                    $newbegin = my_calendar_add_date($orig_begin, 28, 0, 0);
                    $newend = my_calendar_add_date($orig_end, 28, 0, 0);
                    $fifth_week = $event->event_fifth_week;
                    $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', strtotime($orig_begin)), 'occur_end' => date('Y-m-d  H:i:s', strtotime($orig_end)), 'occur_group_id' => $group_id);
                    if ($test == 'test') {
                        return $data;
                    }
                    if (!$test) {
                        $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                    }
                    $numforward = $numforward - 1;
                    for ($i = 0; $i <= $numforward; $i++) {
                        $next_week_diff = date('m', $newbegin) == date('m', my_calendar_add_date(date('Y-m-d', $newbegin), 7, 0, 0)) ? false : true;
                        $move_event = $fifth_week == 1 && $week_of_event == week_of_month(date('d', $newbegin)) + 1 && $next_week_diff == true ? true : false;
                        if ($week_of_event == week_of_month(date('d', $newbegin)) || $move_event == true) {
                            // continue;
                        } else {
                            $newbegin = my_calendar_add_date(date('Y-m-d  H:i:s', $newbegin), 7, 0, 0);
                            $newend = my_calendar_add_date(date('Y-m-d  H:i:s', $newend), 7, 0, 0);
                            $move_event = $fifth_week == 1 && $week_of_event == week_of_month(date('d', $newbegin)) + 1 ? true : false;
                            if ($week_of_event == week_of_month(date('d', $newbegin)) || $move_event == true) {
                                // continue;
                            } else {
                                $newbegin = my_calendar_add_date(date('Y-m-d  H:i:s', $newbegin), 14, 0, 0);
                                $newend = my_calendar_add_date(date('Y-m-d  H:i:s', $newend), 14, 0, 0);
                            }
                        }
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $newbegin), 'occur_end' => date('Y-m-d  H:i:s', $newend), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                        $newbegin = my_calendar_add_date(date('Y-m-d  H:i:s', $newbegin), 28, 0, 0);
                        $newend = my_calendar_add_date(date('Y-m-d  H:i:s', $newend), 28, 0, 0);
                    }
                    break;
                case "Y":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, 0, 0, $i * $every);
                        $end = my_calendar_add_date($orig_end, 0, 0, $i * $every);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
            }
        }
    } else {
        $begin = strtotime($orig_begin);
        $end = strtotime($orig_end);
        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d H:i:s', $begin), 'occur_end' => date('Y-m-d H:i:s', $end), 'occur_group_id' => $group_id);
        // Logic shift -- should not have any need to verify occurrences.
        //$occurs = $wpdb->get_results("SELECT * FROM ".my_calendar_event_table()." WHERE occur_event_id = $id ORDER BY occur_begin DESC");
        if (!$test) {
            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
        }
    }
    return $data;
}
コード例 #3
0
function mc_category_icon_title($title)
{
    if (is_singular('mc-events') && in_the_loop()) {
        $event_id = get_post_meta(get_the_ID(), '_mc_event_id', true);
        $event = mc_get_event_core($event_id);
        $icon = mc_category_icon($event);
        $title = $icon . ' ' . $title;
    }
    return $title;
}
コード例 #4
0
function mc_compare($update, $id)
{
    $event = mc_get_event_core($id);
    $update_string = $event_string = '';
    //$comparison_test = array();
    foreach ($update as $k => $v) {
        // event_recur and event_repeats always set to single and 0; event_begin and event_end need to be checked elsewhere.
        if ($k != 'event_recur' && $k != 'event_repeats' && $k != 'event_begin' && $k != 'event_end') {
            $update_string .= trim($v);
            $event_string .= trim($event->{$k});
            $event->{$k};
        }
    }
    $update_hash = md5($update_string);
    $event_hash = md5($event_string);
    if ($update_hash == $event_hash) {
        return false;
    } else {
        return true;
    }
}
コード例 #5
0
function mc_increment_event($id, $post = array(), $test = false)
{
    global $wpdb;
    $event = mc_get_event_core($id);
    $data = array();
    if (empty($post)) {
        $orig_begin = $event->event_begin . ' ' . $event->event_time;
        $orig_end = $event->event_end . ' ' . $event->event_endtime;
    } else {
        $orig_begin = @$post['event_begin'] . ' ' . @$post['event_time'];
        $orig_end = @$post['event_end'] . ' ' . @$post['event_endtime'];
    }
    $group_id = $event->event_group_id;
    $format = array('%d', '%s', '%s', '%d');
    $recurs = str_split($event->event_recur, 1);
    $recur = $recurs[0];
    $every = isset($recurs[1]) ? $recurs[1] : 1;
    if ($recur != "S") {
        // if this event had a rep of 0, translate that.
        $event_repetition = $event->event_repeats != 0 ? $event->event_repeats : _mc_increment_values($recur);
        $numforward = (int) $event_repetition;
        if ($recur != 'S') {
            switch ($recur) {
                case "D":
                case "E":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, $i * $every, 0, 0);
                        $end = my_calendar_add_date($orig_end, $i * $every, 0, 0);
                        if ($recur == 'E' && (date('w', $begin) != 0 && date('w', $begin) != 6) || $recur == 'D') {
                            $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                            if ($test == 'test' && $i > 0) {
                                return $data;
                            }
                            if (!$test) {
                                $wpdb->insert(my_calendar_event_table(), $data, $format);
                            }
                        } else {
                            $numforward++;
                        }
                    }
                    break;
                case "W":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, $i * 7 * $every, 0, 0);
                        $end = my_calendar_add_date($orig_end, $i * 7 * $every, 0, 0);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $sql = $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
                case "B":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, $i * 14, 0, 0);
                        $end = my_calendar_add_date($orig_end, $i * 14, 0, 0);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
                case "M":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, 0, $i * $every, 0);
                        $end = my_calendar_add_date($orig_end, 0, $i * $every, 0);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
                case "U":
                    //important to keep track of which date variables are strings and which are timestamps
                    // This pattern handles monthly events by day.
                    //if ( $every != 1 ) {
                    // return an error?
                    // handle patterns that are something *other* than every month
                    /*
                        Idea: use mod to identify which months need to be checked. Check which date in each month. 
                    */
                    //} else {
                    $week_of_event = week_of_month(date('d', strtotime($event->event_begin)));
                    $newbegin = my_calendar_add_date($orig_begin, 28, 0, 0);
                    $newend = my_calendar_add_date($orig_end, 28, 0, 0);
                    $fifth_week = $event->event_fifth_week;
                    $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', strtotime($orig_begin)), 'occur_end' => date('Y-m-d  H:i:s', strtotime($orig_end)), 'occur_group_id' => $group_id);
                    /*
                    if ( $test == 'test' && $i > 0 ) {
                    	return $data;
                    }
                    */
                    if (!$test) {
                        $wpdb->insert(my_calendar_event_table(), $data, $format);
                    }
                    $numforward = $numforward - 1;
                    for ($i = 0; $i <= $numforward; $i++) {
                        $next_week_diff = date('m', $newbegin) == date('m', my_calendar_add_date(date('Y-m-d', $newbegin), 7, 0, 0)) ? false : true;
                        $move_event = $fifth_week == 1 && $week_of_event == week_of_month(date('d', $newbegin)) + 1 && $next_week_diff == true ? true : false;
                        if ($week_of_event == week_of_month(date('d', $newbegin)) || $move_event == true) {
                            // continue;
                        } else {
                            $newbegin = my_calendar_add_date(date('Y-m-d  H:i:s', $newbegin), 7, 0, 0);
                            $newend = my_calendar_add_date(date('Y-m-d  H:i:s', $newend), 7, 0, 0);
                            $move_event = $fifth_week == 1 && $week_of_event == week_of_month(date('d', $newbegin)) + 1 ? true : false;
                            if ($week_of_event == week_of_month(date('d', $newbegin)) || $move_event == true) {
                                // continue;
                            } else {
                                $newbegin = my_calendar_add_date(date('Y-m-d  H:i:s', $newbegin), 14, 0, 0);
                                $newend = my_calendar_add_date(date('Y-m-d  H:i:s', $newend), 14, 0, 0);
                            }
                        }
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $newbegin), 'occur_end' => date('Y-m-d  H:i:s', $newend), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                        $newbegin = my_calendar_add_date(date('Y-m-d  H:i:s', $newbegin), 28, 0, 0);
                        $newend = my_calendar_add_date(date('Y-m-d  H:i:s', $newend), 28, 0, 0);
                        //}
                    }
                    break;
                case "Y":
                    for ($i = 0; $i <= $numforward; $i++) {
                        $begin = my_calendar_add_date($orig_begin, 0, 0, $i * $every);
                        $end = my_calendar_add_date($orig_end, 0, 0, $i * $every);
                        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d  H:i:s', $begin), 'occur_end' => date('Y-m-d  H:i:s', $end), 'occur_group_id' => $group_id);
                        if ($test == 'test' && $i > 0) {
                            return $data;
                        }
                        if (!$test) {
                            $wpdb->insert(my_calendar_event_table(), $data, $format);
                        }
                    }
                    break;
            }
        }
    } else {
        $begin = strtotime($orig_begin);
        $end = strtotime($orig_end);
        $data = array('occur_event_id' => $id, 'occur_begin' => date('Y-m-d H:i:s', $begin), 'occur_end' => date('Y-m-d H:i:s', $end), 'occur_group_id' => $group_id);
        if (!$test) {
            $wpdb->insert(my_calendar_event_table(), $data, $format);
        }
    }
    return $data;
}
コード例 #6
0
function mcs_import_event($event)
{
    $check = mc_check_data('add', $event, 0);
    if ($check[0]) {
        $response = my_calendar_save('add', $check);
        $event_id = $response['event_id'];
        $response = $response['message'];
        if (isset($event['event_image']) && $event['event_image'] != '') {
            $e = mc_get_event_core($event_id);
            $post_id = $e->event_post;
            $image = media_sideload_image($event['event_image'], $post_id);
            $media = get_attached_media('image', $post_id);
            $attach = array_shift($media);
            $attach_id = $attach->ID;
            set_post_thumbnail($post_id, $attach_id);
        }
    }
}
コード例 #7
0
function mcs_show_author($content, $event_id)
{
    if ($event_id) {
        $event = mc_get_event_core($event_id);
        $post_id = $event->event_post;
        $author = get_post_meta($post_id, '_submitter_details', true);
        if (is_array($author)) {
            $fname = isset($author['first_name']) ? $author['first_name'] : '';
            $lname = isset($author['last_name']) ? $author['last_name'] : '';
            $email = isset($author['email']) && is_email($author['email']) ? $author['email'] : '';
            $date = get_the_time(get_option('mc_date_format'), $post_id);
            $return = $email != '' ? "<a href='mailto:{$email}'>{$fname} {$lname}</a> ({$email})" : "{$fname} {$lname}";
            $return = sprintf(__('Event submitted by %s on %s', 'my-calendar-submissions'), $return, $date);
            $content .= "\n\t\t\t\t<div class='ui-sortable meta-box-sortables'>\n\t\t\t\t\t<div class='postbox'>\n\t\t\t\t\t\t<div class='inside'>\n\t\t\t\t\t\t\t<p class='submitter'>{$return}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>";
        }
    }
    return $content;
}
コード例 #8
0
function mc_category_icon_title($title, $post_id = null)
{
    if (is_singular('mc-events') && in_the_loop()) {
        if ($post_id) {
            $event_id = isset($_GET['mc_id']) && is_numeric($_GET['mc_id']) ? $_GET['mc_id'] : get_post_meta($post_id, '_mc_event_id', true);
            if (is_numeric($event_id)) {
                $event = mc_get_event_core($event_id);
                if (is_object($event) && property_exists($event, 'category_icon')) {
                    $icon = mc_category_icon($event);
                } else {
                    $icon = '';
                }
                $title = $icon . ' ' . mc_kses_post($title);
            }
        }
    }
    return $title;
}
コード例 #9
0
function mc_list_related($id, $this_id, $template = '{date}, {time}')
{
    global $wpdb;
    $id = (int) $id;
    if ($id === 0) {
        return '';
    }
    $output = '';
    $classes = '';
    $sql = "SELECT event_id FROM " . my_calendar_table() . " WHERE event_group_id={$id}";
    $results = $wpdb->get_results($sql);
    $count = count($results);
    // If a large number of events, skip this;
    if ($count > apply_filters('mc_related_event_limit', 50)) {
        // filter to return an subset of related events.
        return apply_filters('mc_related_events', '', $results);
    }
    if (is_array($results) && !empty($results)) {
        foreach ($results as $result) {
            $event_id = $result->event_id;
            $event = mc_get_event_core($event_id);
            $array = mc_create_tags($event, 'related');
            if (mc_key_exists($template)) {
                $template = mc_get_custom_template($template);
            }
            $html = jd_draw_template($array, $template);
            $classes = mc_event_classes($event, '', 'related');
            $classes .= $event_id == $this_id ? ' current-event' : '';
            $output .= "<li class='{$classes}'>{$html}</li>";
        }
    } else {
        $output = "<li>" . __('No related events', 'my-calendar') . "</li>";
    }
    return $output;
}
コード例 #10
0
function mc_category_icon_title($title, $post_id = null)
{
    if (is_singular('mc-events') && in_the_loop()) {
        if ($post_id) {
            $event_id = isset($_GET['mc_id']) && is_numeric($_GET['mc_id']) ? $_GET['mc_id'] : get_post_meta($post_id, '_mc_event_id', true);
            $event = mc_get_event_core($event_id);
            $icon = mc_category_icon($event);
            $title = $icon . ' ' . $title;
        }
    }
    return $title;
}