/** * Prints out a list of events, takes same arguments as em_get_events. * @param array|string $args * @uses em_get_events() */ function em_events($args = array()) { echo em_get_events($args); }
/** * */ public function update_1() { $events = em_get_events(); if (!empty($events)) { $now = current_time('timestamp'); $recurrence = array('type' => 'once', 'repeat' => 1, 'until' => date('Y-m-d', $now), 'weekly_days' => array((int) date('N', $now)), 'monthly_day_type' => 1, 'separate_end_date' => array()); foreach ($events as $event) { // for faster usage $id = $event->ID; // gets event dates $start = get_post_meta($id, '_event_start_date', true); $end = get_post_meta($id, '_event_end_date', true); // is it event from events maker? if (!empty($start) && !empty($end)) { // full mysql timestamp format for start and end dates $start = date('Y-m-d H:i:s', strtotime($start)); $end = date('Y-m-d H:i:s', strtotime($end)); // updates start and end dates with new format update_post_meta($id, '_event_start_date', $start); update_post_meta($id, '_event_end_date', $end); // new format of date in postmeta $date = $start . '|' . $end; // adds first occurrence (same as start and end dates) add_post_meta($id, '_event_occurrence_date', $date); // adds last occurrence (same as first) add_post_meta($id, '_event_occurrence_last_date', $date); // adds recurrence options add_post_meta($id, '_event_recurrence', $recurrence); } } } }
/** * */ private function get_full_calendar_events($args) { $events = em_get_events($args); $calendar = array(); if (empty($events)) { return $calendar; } foreach ($events as $event) { $classes = array(); $event_categories = wp_get_post_terms($event->ID, 'event-category'); $event_tags = wp_get_post_terms($event->ID, 'event-tag'); if (!empty($event_categories) && !is_wp_error($event_categories)) { $term_meta = get_option('event_category_' . $event_categories[0]->term_id); foreach ($event_categories as $category) { $classes[] = "fc-event-cat-" . $category->slug; $classes[] = "fc-event-cat-" . $category->term_id; } } if (!empty($event_tags) && !is_wp_error($event_tags)) { foreach ($event_tags as $tag) { $classes[] = "fc-event-tag-" . $tag->slug; $classes[] = "fc-event-tag-" . $tag->term_id; } } if (em_is_recurring($event->ID)) { $start = $event->event_occurrence_start_date; $end = $event->event_occurrence_end_date; } else { $start = get_post_meta($event->ID, '_event_start_date', true); $end = get_post_meta($event->ID, '_event_end_date', true); } $calendar[] = array('title' => $event->post_title, 'start' => $start, 'end' => $end, 'className' => implode(' ', $classes), 'allDay' => em_is_all_day($event->ID), 'url' => get_permalink($event->ID), 'backgroundColor' => isset($term_meta['color']) ? $term_meta['color'] : ''); } return $calendar; }
/** * Get events for calendar display. */ private function get_full_calendar_events($args) { // get calendar query transient / cache if (defined('ICL_LANGUAGE_CODE')) { // WPML & Polylang support $calendar = get_transient('em_calendar_query' . '-' . ICL_LANGUAGE_CODE); } else { $calendar = get_transient('em_calendar_query'); } if ($calendar === false) { $events = em_get_events($args); $calendar = array(); if (empty($events)) { return $calendar; } foreach ($events as $event) { $classes = array(); $event_categories = wp_get_post_terms($event->ID, 'event-category'); $event_tags = wp_get_post_terms($event->ID, 'event-tag'); if (!empty($event_categories) && !is_wp_error($event_categories)) { $term_meta = get_option('event_category_' . $event_categories[0]->term_taxonomy_id); foreach ($event_categories as $category) { $classes[] = "fc-event-cat-" . $category->slug; $classes[] = "fc-event-cat-" . $category->term_id; } } if (!empty($event_tags) && !is_wp_error($event_tags)) { foreach ($event_tags as $tag) { $classes[] = "fc-event-tag-" . $tag->slug; $classes[] = "fc-event-tag-" . $tag->term_id; } } if (em_is_recurring($event->ID) && Events_Maker()->options['general']['show_occurrences']) { $start = $event->event_occurrence_start_date; $end = $event->event_occurrence_end_date; } else { $start = $event->_event_start_date; $end = $event->_event_end_date; } $all_day_event = em_is_all_day($event->ID); $calendar[] = apply_filters('em_calendar_event_data', array('title' => $event->post_title, 'start' => $start, 'end' => $all_day_event ? date('Y-m-d H:i:s', strtotime($end . '+1 day')) : $end, 'className' => implode(' ', $classes), 'allDay' => $all_day_event, 'url' => get_permalink($event->ID), 'backgroundColor' => isset($term_meta['color']) ? $term_meta['color'] : ''), $event); } $expiration = absint(apply_filters('em_calendar_query_expiration', 24 * 60 * 60)); // set calendar query transient / cache if (defined('ICL_LANGUAGE_CODE')) { // WPML & Polylang support set_transient('em_calendar_query' . '-' . ICL_LANGUAGE_CODE, $calendar, $expiration); } else { set_transient('em_calendar_query', $calendar, $expiration); } } return apply_filters('em_shortcode_full_calendar_events', $calendar); }
/** * */ private function get_events_days($date, $options) { $allevents = $exclude_ids = array(); $show_occurrences = isset($options['show_occurrences']) ? $options['show_occurrences'] : Events_Maker()->options['general']['show_occurrences']; $args = array('post_type' => 'event', 'posts_per_page' => -1, 'suppress_filters' => false, 'event_date_range' => 'between', 'event_show_past_events' => $options['show_past_events'], 'event_show_occurrences' => $show_occurrences); if ($options['categories'] === 'selected') { $args['tax_query'][] = array('taxonomy' => 'event-category', 'field' => 'id', 'terms' => $options['categories_arr'], 'include_children' => false, 'operator' => 'IN'); } if ($options['locations'] === 'selected') { $args['tax_query'][] = array('taxonomy' => 'event-location', 'field' => 'id', 'terms' => $options['locations_arr'], 'include_children' => false, 'operator' => 'IN'); } if (Events_Maker()->options['general']['use_organizers'] === true && $options['organizers'] === 'selected') { $args['tax_query'][] = array('taxonomy' => 'event-organizer', 'field' => 'id', 'terms' => $options['organizers_arr'], 'include_children' => false, 'operator' => 'IN'); } // Polylang and WPML compatibility if (defined('ICL_LANGUAGE_CODE')) { $args['lang'] = ICL_LANGUAGE_CODE; } $allevents['start'] = em_get_events(array_merge($args, array('event_start_after' => $date . '-01', 'event_start_before' => $date . '-' . date('t', strtotime($date . '-02'))))); foreach ($allevents['start'] as $event) { $exclude_ids[] = $event->ID; } $allevents['end'] = em_get_events(array_merge($args, array('event_end_after' => $date . '-01', 'event_end_before' => $date . '-' . date('t', strtotime($date . '-02')), 'post__not_in' => !empty($exclude_ids) ? $exclude_ids : array()))); return $allevents; }