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; } }
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; }
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; }
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; } }
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; }
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); } } }
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; }
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; }
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; }
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; }