function dpProEventCalendar_datediffInWeeks($date1, $date2) { if ($date1 > $date2) { return dpProEventCalendar_datediffInWeeks($date2, $date1); } if (method_exists('DateTime', 'createFromFormat')) { $first = DateTime::createFromFormat('Y-m-d H:i:s', $date1); $second = DateTime::createFromFormat('Y-m-d H:i:s', $date2); } else { $first = dpProEventCalendar_create_from_format('Y-m-d H:i:s', $date1); $second = dpProEventCalendar_create_from_format('Y-m-d H:i:s', $date2); } //return floor($first->diff($second)->days/7); /*echo "First: ".floor($first->diff($second)->days/7)."<br>"; echo "Second: ".floor(round(($second->format('U') - $first->format('U')) / (60*60*24) / 7) )."<br>"; die();*/ return floor(round(($second->format('U') - $first->format('U')) / (60 * 60 * 24) / 7)); }
function upcomingCalendarLayout($return_data = false, $limit = '', $limit_description = '', $events_month = null, $events_month_end = null, $show_end_date = true, $filter_author = false, $auto_limit = true, $filter_map = false, $past = false) { global $wpdb, $dpProEventCalendar; $html = ""; $list_limit = $this->limit; if (is_numeric($limit)) { $list_limit = $limit; } if (is_numeric($limit_description)) { $this->trim_words = $limit_description; } $args = array('posts_per_page' => -1, 'post_type' => 'pec-events', 'meta_key' => 'pec_date', 'order' => 'ASC', 'orderby' => 'meta_value'); if (!empty($this->category)) { $category_slug = get_term_by('term_id', (int) $this->category, 'pec_events_category'); $args['pec_events_category'] = $category_slug->slug; /*$args['tax_query'] = array( array( 'taxonomy' => 'pec_events_category', 'field' => 'term_id', 'term' => $this->category ) );*/ } if (!is_null($events_month)) { $args['meta_query'][] = array('relation' => 'OR', array('key' => 'pec_date', 'value' => array($events_month, $events_month_end), 'compare' => 'BETWEEN', 'type' => 'DATETIME'), array('key' => 'pec_recurring_frecuency', 'value' => 0, 'compare' => '>', 'type' => 'NUMERIC')); $args['meta_query'][] = array('relation' => 'OR', array('key' => 'pec_end_date', 'value' => substr($events_month, 0, 10), 'compare' => '>=', 'type' => 'DATE'), array('key' => 'pec_end_date', 'value' => '0000-00-00', 'compare' => '='), array('key' => 'pec_end_date', 'value' => '', 'compare' => '=')); } elseif ($past) { $args['meta_query'][] = array('key' => 'pec_date', 'value' => current_time('mysql'), 'compare' => '<=', 'type' => 'DATETIME'); } else { $args['meta_query'][] = array('relation' => 'OR', array('key' => 'pec_date', 'value' => current_time('mysql'), 'compare' => '>=', 'type' => 'DATE'), array('key' => 'pec_recurring_frecuency', 'value' => 0, 'compare' => '>', 'type' => 'NUMERIC')); $args['meta_query'][] = array('relation' => 'OR', array('key' => 'pec_end_date', 'value' => current_time('mysql'), 'compare' => '>=', 'type' => 'DATE'), array('key' => 'pec_end_date', 'value' => '0000-00-00', 'compare' => '='), array('key' => 'pec_end_date', 'value' => '', 'compare' => '=')); } if (!empty($this->event_id)) { $args['p'] = $this->event_id; } if (!empty($this->author)) { $args['author'] = $this->author; } if ($filter_author) { if (is_author()) { global $author_name, $author; $curauth = isset($_GET['author_name']) ? get_user_by('slug', $author_name) : get_userdata(intval($author)); } else { $curauth = get_userdata(intval($author)); } if (is_numeric($this->author) && $this->author > 0) { $args['author'] = $this->author; } else { $args['author'] = $curauth->ID; } } if ($filter_map) { $args['meta_query'][] = array('key' => 'pec_map', 'value' => '', 'compare' => '!='); } // Check Calendar ID // XXXXXXXXXX $args['meta_query'][] = array('relation' => 'OR', array('key' => 'pec_id_calendar', 'value' => $this->id_calendar, 'compare' => 'LIKE')); //$events_obj = $wpdb->get_results($querystr); $events_obj = get_posts($args); /*echo '<!--'; print_r($args); print_r($events_obj); echo $GLOBALS['wp_query']->request; echo '-->';*/ if (count($events_obj) == 0) { $html .= ' <div class="dp_pec_date_event dp_pec_isotope"> <p class="dp_pec_event_no_events">' . $this->translation['TXT_NO_EVENTS_FOUND'] . '</p> </div>'; } else { $order_events = array(); foreach ($events_obj as $event) { $event->id_calendar = get_post_meta($event->ID, 'pec_id_calendar', true); $event->date = get_post_meta($event->ID, 'pec_date', true); $event->all_day = get_post_meta($event->ID, 'pec_all_day', true); $event->pec_daily_working_days = get_post_meta($event->ID, 'pec_daily_working_days', true); $event->pec_daily_every = get_post_meta($event->ID, 'pec_daily_every', true); $event->pec_weekly_every = get_post_meta($event->ID, 'pec_weekly_every', true); $event->pec_weekly_day = get_post_meta($event->ID, 'pec_weekly_day', true); $event->pec_monthly_every = get_post_meta($event->ID, 'pec_monthly_every', true); $event->pec_monthly_position = get_post_meta($event->ID, 'pec_monthly_position', true); $event->pec_monthly_day = get_post_meta($event->ID, 'pec_monthly_day', true); $event->pec_exceptions = get_post_meta($event->ID, 'pec_exceptions', true); $event->end_date = get_post_meta($event->ID, 'pec_end_date', true); $event->link = get_post_meta($event->ID, 'pec_link', true); $event->share = get_post_meta($event->ID, 'pec_share', true); $event->map = get_post_meta($event->ID, 'pec_map', true); $event->end_time_hh = get_post_meta($event->ID, 'pec_end_time_hh', true); $event->end_time_mm = get_post_meta($event->ID, 'pec_end_time_mm', true); $event->hide_time = get_post_meta($event->ID, 'pec_hide_time', true); $event->location = get_post_meta($event->ID, 'pec_location', true); $event->phone = get_post_meta($event->ID, 'pec_phone', true); $event->recurring_frecuency = get_post_meta($event->ID, 'pec_recurring_frecuency', true); $event->title = $event->post_title; $event->description = $event->post_content; if ($event->recurring_frecuency > 0) { $enddate_orig = $event->end_date . " 23:59:59"; if ($event->all_day) { $startdate_orig = date('Y-m-d') . " 00:00:00"; } else { $startdate_orig = current_time('mysql'); } if (!is_null($events_month)) { $startdate_orig = $events_month; $enddate_orig = $events_month_end; } if ($past) { //$startdate_orig = date('Y-m-d H:i:s', strtotime('-30 days')); $enddate_orig = current_time('mysql'); $startdate_orig = $enddate_orig; } switch ($event->recurring_frecuency) { case 1: $k = 1; $startdate = $event->date; if (strtotime($startdate) < strtotime($startdate_orig)) { $startdate = $startdate_orig; } for ($i = 1; $i <= $list_limit; $i++) { $eventdate = date("Y-m-d H:i:s", mktime(date("H", strtotime($startdate)), date("i", strtotime($startdate)), 0, date("m", strtotime($startdate)), date("d", strtotime($startdate)) - 1 + $k, date("y", strtotime($startdate)))); //echo "DONE DAILY"; if ($eventdate != "" && $event->pec_exceptions != "") { $exceptions = explode(',', $event->pec_exceptions); if (in_array(substr($eventdate, 0, 10), $exceptions)) { continue; } } if ((strtotime($eventdate) <= strtotime($enddate_orig) && strtotime($eventdate) <= strtotime($event->end_date . " 23:59:59") || $event->end_date == '0000-00-00') && (strtotime($eventdate) >= strtotime($startdate_orig) && strtotime($eventdate) <= strtotime($enddate_orig))) { $order_events[strtotime($eventdate) . $event->ID] = new stdClass(); $order_events[strtotime($eventdate) . $event->ID]->id = $event->ID; $order_events[strtotime($eventdate) . $event->ID]->recurring_frecuency = $event->recurring_frecuency; $order_events[strtotime($eventdate) . $event->ID]->date = $eventdate; $order_events[strtotime($eventdate) . $event->ID]->orig_date = $event->date; $order_events[strtotime($eventdate) . $event->ID]->start_date = $event->date; $order_events[strtotime($eventdate) . $event->ID]->end_date = $event->end_date; $order_events[strtotime($eventdate) . $event->ID]->end_time_hh = $event->end_time_hh; $order_events[strtotime($eventdate) . $event->ID]->end_time_mm = $event->end_time_mm; $order_events[strtotime($eventdate) . $event->ID]->title = $event->title; $order_events[strtotime($eventdate) . $event->ID]->description = $event->description; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->hide_time = $event->hide_time; $order_events[strtotime($eventdate) . $event->ID]->location = $event->location; $order_events[strtotime($eventdate) . $event->ID]->phone = $event->phone; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->map = $event->map; $order_events[strtotime($eventdate) . $event->ID]->share = $event->share; $order_events[strtotime($eventdate) . $event->ID]->all_day = $event->all_day; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_working_days = $event->pec_daily_working_days; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_every = $event->pec_daily_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_every = $event->pec_weekly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_day = $event->pec_weekly_day; $order_events[strtotime($eventdate) . $event->ID]->pec_exceptions = $event->pec_exceptions; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_every = $event->pec_monthly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_position = $event->pec_monthly_position; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_day = $event->pec_monthly_day; } elseif (strtotime($eventdate) < strtotime($startdate_orig)) { $i--; } $k++; } break; case 2: $startdate = $event->date; if (strtotime($startdate) < strtotime($startdate_orig)) { $weeksdiff = dpProEventCalendar_datediffInWeeks($startdate, $startdate_orig); //echo "weeksdiff : ".$weeksdiff; $startdate = date("Y-m-d H:i:s", strtotime('+' . ($weeksdiff - 1) . ' weeks', strtotime($startdate))); } $pec_weekly_day = $event->pec_weekly_day; if (is_array($pec_weekly_day)) { $last_day = date("Y-m-d H:i:s", mktime(date("H", strtotime($event->date)), date("i", strtotime($event->date)), 0, date("m", strtotime($event->date)), date("d", strtotime($event->date)), date("y", strtotime($event->date))) - 86400); $original_date = $event->date; //echo "XXXX".$original_date.'<br>'; $original_date = date("Y-m-d H:i:s", strtotime("-1 day", strtotime($original_date))); for ($i = 1; $i <= $list_limit; $i++) { //echo "DONE WEEKLY 1"; foreach ($pec_weekly_day as $week_day) { $day = ""; switch ($week_day) { case 1: $day = "Monday"; break; case 2: $day = "Tuesday"; break; case 3: $day = "Wednesday"; break; case 4: $day = "Thursday"; break; case 5: $day = "Friday"; break; case 6: $day = "Saturday"; break; case 7: $day = "Sunday"; break; } $event->date = date("Y-m-d H:i:s", strtotime("next " . $day, strtotime($original_date))); $eventdate = date("Y-m-d", strtotime($last_day . ' next ' . date("l", strtotime($event->date)))); $eventdate = date("Y-m-d H:i:s", mktime(date("H", strtotime($last_day)), date("i", strtotime($last_day)), 0, date("m", strtotime($eventdate)), date("d", strtotime($eventdate)), date("y", strtotime($eventdate)))); $last_day = $eventdate; //echo "Event Date " . $eventdate; //echo " Event Date Orig " . $startdate.'<br><br>'; if ((!is_null($events_month) || $past) && strtotime($eventdate) > strtotime($enddate_orig)) { break; } if ($eventdate != "" && $event->pec_exceptions != "") { $exceptions = explode(',', $event->pec_exceptions); if (in_array(substr($eventdate, 0, 10), $exceptions)) { $i--; continue; } } if (strtotime($eventdate) < strtotime($startdate_orig)) { $i--; continue; } if ($event->pec_weekly_every > 1 && (strtotime(substr($eventdate, 0, 11)) - strtotime(substr($event->date, 0, 11))) / (60 * 60 * 24) % ($event->pec_weekly_every * 7) != 0) { continue; } if ((strtotime($eventdate) <= strtotime($enddate_orig) && strtotime($eventdate) <= strtotime($event->end_date . " 23:59:59") || $event->end_date == '0000-00-00' || $event->end_date == '') && strtotime($eventdate) >= strtotime($startdate_orig)) { $order_events[strtotime($eventdate) . $event->ID] = new stdClass(); $order_events[strtotime($eventdate) . $event->ID]->id = $event->ID; $order_events[strtotime($eventdate) . $event->ID]->recurring_frecuency = $event->recurring_frecuency; $order_events[strtotime($eventdate) . $event->ID]->date = $eventdate; $order_events[strtotime($eventdate) . $event->ID]->end_date = $event->end_date; $order_events[strtotime($eventdate) . $event->ID]->end_time_hh = $event->end_time_hh; $order_events[strtotime($eventdate) . $event->ID]->end_time_mm = $event->end_time_mm; $order_events[strtotime($eventdate) . $event->ID]->title = $event->title; $order_events[strtotime($eventdate) . $event->ID]->description = $event->description; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->hide_time = $event->hide_time; $order_events[strtotime($eventdate) . $event->ID]->location = $event->location; $order_events[strtotime($eventdate) . $event->ID]->phone = $event->phone; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->map = $event->map; $order_events[strtotime($eventdate) . $event->ID]->share = $event->share; $order_events[strtotime($eventdate) . $event->ID]->all_day = $event->all_day; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_working_days = $event->pec_daily_working_days; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_every = $event->pec_daily_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_every = $event->pec_weekly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_day = $event->pec_weekly_day; $order_events[strtotime($eventdate) . $event->ID]->pec_exceptions = $event->pec_exceptions; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_every = $event->pec_monthly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_position = $event->pec_monthly_position; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_day = $event->pec_monthly_day; } } } } else { $last_day = date("Y-m-d H:i:s", mktime(date("H", strtotime($startdate)), date("i", strtotime($startdate)), 0, date("m", strtotime($startdate)), date("d", strtotime($startdate)), date("y", strtotime($startdate))) - 86400); for ($i = 1; $i <= $list_limit; $i++) { //echo "DONE WEEKLY 2"; $eventdate = date("Y-m-d", strtotime($last_day . ' next ' . date("l", strtotime($startdate)))); $eventdate = date("Y-m-d H:i:s", mktime(date("H", strtotime($last_day)), date("i", strtotime($last_day)), 0, date("m", strtotime($eventdate)), date("d", strtotime($eventdate)), date("y", strtotime($eventdate)))); $last_day = $eventdate; if ((!is_null($events_month) || $past) && strtotime($eventdate) > strtotime($enddate_orig)) { break; } if ($eventdate != "" && $event->pec_exceptions != "") { $exceptions = explode(',', $event->pec_exceptions); if (in_array(substr($eventdate, 0, 10), $exceptions)) { $i--; continue; } } if (strtotime($eventdate) < strtotime($startdate_orig)) { $i--; continue; } if ($event->pec_weekly_every > 1 && (strtotime(substr($eventdate, 0, 11)) - strtotime(substr($event->date, 0, 11))) / (60 * 60 * 24) % ($event->pec_weekly_every * 7) != 0) { //echo "DATEDIFF: ".(strtotime(substr($eventdate,0,11)) - strtotime(substr($event->date,0,11))) / (60 * 60 * 24); continue; } if ((strtotime($eventdate) <= strtotime($enddate_orig) && strtotime($eventdate) <= strtotime($event->end_date . " 23:59:59") || $event->end_date == '0000-00-00' || $event->end_date == '') && strtotime($eventdate) >= strtotime($startdate_orig)) { $order_events[strtotime($eventdate) . $event->ID] = new stdClass(); $order_events[strtotime($eventdate) . $event->ID]->id = $event->ID; $order_events[strtotime($eventdate) . $event->ID]->recurring_frecuency = $event->recurring_frecuency; $order_events[strtotime($eventdate) . $event->ID]->date = $eventdate; $order_events[strtotime($eventdate) . $event->ID]->end_date = $event->end_date; $order_events[strtotime($eventdate) . $event->ID]->end_time_hh = $event->end_time_hh; $order_events[strtotime($eventdate) . $event->ID]->end_time_mm = $event->end_time_mm; $order_events[strtotime($eventdate) . $event->ID]->title = $event->title; $order_events[strtotime($eventdate) . $event->ID]->description = $event->description; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->hide_time = $event->hide_time; $order_events[strtotime($eventdate) . $event->ID]->location = $event->location; $order_events[strtotime($eventdate) . $event->ID]->phone = $event->phone; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->map = $event->map; $order_events[strtotime($eventdate) . $event->ID]->share = $event->share; $order_events[strtotime($eventdate) . $event->ID]->all_day = $event->all_day; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_working_days = $event->pec_daily_working_days; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_every = $event->pec_daily_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_every = $event->pec_weekly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_day = $event->pec_weekly_day; $order_events[strtotime($eventdate) . $event->ID]->pec_exceptions = $event->pec_exceptions; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_every = $event->pec_monthly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_position = $event->pec_monthly_position; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_day = $event->pec_monthly_day; } } } break; case 3: $startdate = $event->date; if (strtotime($startdate) < strtotime($startdate_orig)) { $startdate = date("Y-m-d H:i:s", mktime(date("H", strtotime($event->date)), date("i", strtotime($event->date)), 0, date("m", strtotime($startdate_orig)), date("d", strtotime($event->date)), date("y", strtotime($startdate_orig)))); } $counter_m = 1; if (isset($events_month) || $event->pec_monthly_day != "" && $event->pec_monthly_position != "") { $counter_m = 0; } for ($i = 1; $i <= $list_limit; $i++) { //echo "DONE MONTHLY"; $eventdate = date("Y-m-d H:i:s", mktime(date("H", strtotime($startdate)), date("i", strtotime($startdate)), 0, date("m", strtotime($startdate)) + (strtotime($startdate) < time() && !isset($events_month) || $i > 1 ? $counter_m : 0), date("d", strtotime($startdate)), date("y", strtotime($startdate)))); if ($eventdate != "" && $event->pec_exceptions != "") { $exceptions = explode(',', $event->pec_exceptions); if (in_array(substr($eventdate, 0, 10), $exceptions)) { $i--; continue; } } //$html .= $event->pec_monthly_day. " - " .$event->pec_monthly_position; if ($event->pec_monthly_day != "" && $event->pec_monthly_position != "") { $eventdate = str_replace(substr($eventdate, 5, 5), date('m-d', strtotime($event->pec_monthly_position . ' ' . $event->pec_monthly_day . ' of ' . date("F Y", strtotime($eventdate)))), $eventdate); if ($eventdate != "" && $event->pec_exceptions != "") { if (in_array(substr($eventdate, 0, 10), $exceptions)) { //$i--; $counter_m++; continue; } } if (strtotime($eventdate) > strtotime($enddate_orig) && ($event->end_date != '0000-00-00' && $event->end_date != '')) { break; } //$html .= $eventdate."XXX"; } if ((!is_null($events_month) || $past) && strtotime($eventdate) > strtotime($enddate_orig)) { break; } if ($event->pec_monthly_every > 1 && !is_int((date('m', strtotime($eventdate)) - date('m', strtotime(substr($event->date, 0, 11)))) / $event->pec_monthly_every)) { $counter_m++; continue; } if (strtotime($startdate) < current_time('timestamp') || $i > 1) { $counter_m++; } if ((strtotime($eventdate) <= strtotime($enddate_orig) && strtotime($eventdate) <= strtotime($event->end_date . " 23:59:59") || $event->end_date == '0000-00-00' || $event->end_date == '') && strtotime($eventdate) >= strtotime($startdate_orig)) { $order_events[strtotime($eventdate) . $event->ID] = new stdClass(); $order_events[strtotime($eventdate) . $event->ID]->id = $event->ID; $order_events[strtotime($eventdate) . $event->ID]->recurring_frecuency = $event->recurring_frecuency; $order_events[strtotime($eventdate) . $event->ID]->date = $eventdate; $order_events[strtotime($eventdate) . $event->ID]->end_date = $event->end_date; $order_events[strtotime($eventdate) . $event->ID]->end_time_hh = $event->end_time_hh; $order_events[strtotime($eventdate) . $event->ID]->end_time_mm = $event->end_time_mm; $order_events[strtotime($eventdate) . $event->ID]->title = $event->title; $order_events[strtotime($eventdate) . $event->ID]->description = $event->description; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->hide_time = $event->hide_time; $order_events[strtotime($eventdate) . $event->ID]->location = $event->location; $order_events[strtotime($eventdate) . $event->ID]->phone = $event->phone; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->map = $event->map; $order_events[strtotime($eventdate) . $event->ID]->share = $event->share; $order_events[strtotime($eventdate) . $event->ID]->all_day = $event->all_day; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_working_days = $event->pec_daily_working_days; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_every = $event->pec_daily_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_every = $event->pec_weekly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_day = $event->pec_weekly_day; $order_events[strtotime($eventdate) . $event->ID]->pec_exceptions = $event->pec_exceptions; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_every = $event->pec_monthly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_position = $event->pec_monthly_position; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_day = $event->pec_monthly_day; } } break; case 4: $counter_y = 1; if (isset($events_month)) { $counter_y = 0; } for ($i = 1; $i <= $list_limit; $i++) { $eventdate = date("Y-m-d H:i:s", mktime(date("H", strtotime($event->date)), date("i", strtotime($event->date)), 0, date("m", strtotime($event->date)), date("d", strtotime($event->date)), date("y") + (strtotime($event->date) < time() && !isset($events_month) || $i > 1 ? $counter_y : 0))); if ($eventdate != "" && $event->pec_exceptions != "") { $exceptions = explode(',', $event->pec_exceptions); if (in_array(substr($eventdate, 0, 10), $exceptions)) { $i--; continue; } } if (strtotime($eventdate) > strtotime($enddate_orig)) { $i--; break; } if ((!is_null($events_month) || $past) && strtotime($eventdate) > strtotime($enddate_orig)) { break; } if (strtotime($event->date) < time() || $i > 1) { $counter_y++; } if ((strtotime($eventdate) <= strtotime($enddate_orig) && strtotime($eventdate) <= strtotime($event->end_date . " 23:59:59") || $event->end_date == '0000-00-00' || $event->end_date == '') && strtotime($eventdate) >= strtotime($startdate_orig)) { $order_events[strtotime($eventdate) . $event->ID] = new stdClass(); $order_events[strtotime($eventdate) . $event->ID]->id = $event->ID; $order_events[strtotime($eventdate) . $event->ID]->recurring_frecuency = $event->recurring_frecuency; $order_events[strtotime($eventdate) . $event->ID]->date = $eventdate; $order_events[strtotime($eventdate) . $event->ID]->end_date = $event->end_date; $order_events[strtotime($eventdate) . $event->ID]->end_time_hh = $event->end_time_hh; $order_events[strtotime($eventdate) . $event->ID]->end_time_mm = $event->end_time_mm; $order_events[strtotime($eventdate) . $event->ID]->title = $event->title; $order_events[strtotime($eventdate) . $event->ID]->description = $event->description; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->hide_time = $event->hide_time; $order_events[strtotime($eventdate) . $event->ID]->location = $event->location; $order_events[strtotime($eventdate) . $event->ID]->phone = $event->phone; $order_events[strtotime($eventdate) . $event->ID]->link = $event->link; $order_events[strtotime($eventdate) . $event->ID]->map = $event->map; $order_events[strtotime($eventdate) . $event->ID]->share = $event->share; $order_events[strtotime($eventdate) . $event->ID]->all_day = $event->all_day; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_working_days = $event->pec_daily_working_days; $order_events[strtotime($eventdate) . $event->ID]->pec_daily_every = $event->pec_daily_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_every = $event->pec_weekly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_weekly_day = $event->pec_weekly_day; $order_events[strtotime($eventdate) . $event->ID]->pec_exceptions = $event->pec_exceptions; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_every = $event->pec_monthly_every; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_position = $event->pec_monthly_position; $order_events[strtotime($eventdate) . $event->ID]->pec_monthly_day = $event->pec_monthly_day; } } break; } } else { $enddate_orig = $event->end_date . " 23:59:59"; if ($event->all_day) { $startdate_orig = date('Y-m-d') . " 00:00:00"; } else { $startdate_orig = current_time('mysql'); } if (!is_null($events_month)) { $startdate_orig = $events_month; $enddate_orig = $events_month_end; } if ($past) { //$startdate_orig = date('Y-m-d H:i:s', strtotime('-30 days')); $enddate_orig = current_time('mysql'); $startdate_orig = $enddate_orig; if (strtotime($event->date) > strtotime($startdate_orig)) { continue; } } else { if (strtotime($event->date) < strtotime($startdate_orig)) { continue; } } $order_events[strtotime($event->date) . $event->ID] = $event; } } if (!function_exists('dp_pec_cmp')) { function dp_pec_cmp($a, $b) { $a = strtotime($a->date); $b = strtotime($b->date); if ($a == $b) { return 0; } return $a < $b ? -1 : 1; } } if (!function_exists('dp_pec_cmp_reverse')) { function dp_pec_cmp_reverse($a, $b) { $a = strtotime($a->date); $b = strtotime($b->date); if ($a == $b) { return 0; } return $a < $b ? 1 : -1; } } if ($past || !is_null($events_month)) { usort($order_events, "dp_pec_cmp_reverse"); } else { usort($order_events, "dp_pec_cmp"); } //ksort($order_events, SORT_NUMERIC); if ($return_data) { if ($limit != '' && $auto_limit) { $order_events = array_slice($order_events, 0, $limit); } return $order_events; } $event_counter = 1; if (empty($order_events)) { $html .= ' <div class="dp_pec_date_event dp_pec_isotope"> <p class="dp_pec_event_no_events">' . $this->translation['TXT_NO_EVENTS_FOUND'] . '</p> </div>'; } else { $event_reg = array(); foreach ($order_events as $event) { if ($event->id == "") { $event->id = $event->ID; } if ($event_counter > $list_limit) { break; } if ($event_counter == 1 && $this->calendar_obj->ical_active && is_null($events_month)) { $html .= "<a class='dpProEventCalendar_feed' href='" . dpProEventCalendar_plugin_url('includes/ical.php?calendar_id=' . $this->id_calendar) . "'>iCal</a>"; } if ($event_counter == 1 && $this->calendar_obj->rss_active && is_null($events_month)) { $html .= "<a class='dpProEventCalendar_feed' href='" . dpProEventCalendar_plugin_url('includes/rss.php?calendar_id=' . $this->id_calendar) . "'>RSS</a>"; } if ($event_counter == 1 && $this->calendar_obj->subscribe_active && is_null($events_month)) { $html .= "<a class='dpProEventCalendar_feed dpProEventCalendar_subscribe' href='javascript:void(0);'>" . $this->translation['TXT_SUBSCRIBE'] . "</a>"; } $all_working_days = ''; if ($event->pec_daily_working_days && $event->recurring_frecuency == 1) { $all_working_days = $this->translation['TXT_ALL_WORKING_DAYS']; $event->date = $event->orig_date; } $html .= "<div class='clear'></div>"; if ($this->calendar_obj->format_ampm) { $time = date('h:i A', strtotime($event->date)); } else { $time = date('H:i', strtotime($event->date)); } $start_day = date('d', strtotime($event->date)); $start_month = date('n', strtotime($event->date)); $end_date = ''; if ($event->end_date != "" && $event->end_date != "0000-00-00" && $show_end_date) { $end_day = date('d', strtotime($event->end_date)); $end_month = date('n', strtotime($event->end_date)); //$end_date = ' / <br />'.$end_day.' '.substr($this->translation['MONTHS'][($end_month - 1)], 0, 3); $end_date = ' - ' . date_i18n(get_option('date_format'), strtotime($event->end_date)); } //$start_date = $start_day.' '.substr($this->translation['MONTHS'][($start_month - 1)], 0, 3); $start_date = date_i18n(get_option('date_format'), strtotime($event->date)); if ($start_date == $end_day . ' ' . substr($this->translation['MONTHS'][$end_month - 1], 0, 3)) { $end_date = ""; } if ($event->recurring_frecuency != 1) { $end_date = ""; } elseif (in_array($event->id, $event_reg)) { continue; } $end_time = ""; if ($event->end_time_hh != "" && $event->end_time_mm != "") { $end_time = str_pad($event->end_time_hh, 2, "0", STR_PAD_LEFT) . ":" . str_pad($event->end_time_mm, 2, "0", STR_PAD_LEFT); } if ($end_time != "") { if ($this->calendar_obj->format_ampm) { $end_time_tmp = date('h:i A', strtotime("2000-01-01 " . $end_time . ":00")); } else { $end_time_tmp = date('H:i', strtotime("2000-01-01 " . $end_time . ":00")); } $end_time = " - " . $end_time_tmp; if ($end_time_tmp == $time) { $end_time = ""; } } if ($event->all_day) { $time = $this->translation['TXT_ALL_DAY']; $end_time = ""; } $html .= ' <div class="dp_pec_date_event dp_pec_upcoming dp_pec_isotope">'; $post_thumbnail_id = get_post_thumbnail_id($event->id); $image_attributes = wp_get_attachment_image_src($post_thumbnail_id, 'large'); if ($post_thumbnail_id) { $html .= '<div class="dp_pec_event_photo">'; $html .= '<img src="' . $image_attributes[0] . '" alt="" />'; $html .= '</div>'; } //<a href="'.get_permalink($event->id).'"></a> $title = '<span class="dp_pec_event_title_sp">' . $event->title . '</span>'; if ($this->calendar_obj->link_post) { $title = '<a href="' . get_permalink($event->id) . '">' . $title . '</a>'; } $edit_button = $this->getEditRemoveButtons($event); $html .= ' <h1 class="dp_pec_event_title">' . $title . '</h1><div class="dp_pec_clear"></div>' . $edit_button . '<div class="dp_pec_clear"></div>'; if ($this->calendar_obj->show_author) { $author = get_userdata(get_post_field('post_author', $event->id)); $html .= '<span class="pec_author">' . $this->translation['TXT_BY'] . ' ' . $author->display_name . '</span>'; } $html .= ' <span><i class="fa fa-clock-o"></i>' . $start_date . $end_date . '<br>' . $all_working_days . ' '; if ($this->calendar_obj->show_time && !$event->hide_time || $event->all_day) { $html .= $time . $end_time; } $html .= '</span>'; if ($event->location != '') { $html .= ' <span class="dp_pec_event_location">' . $event->location . '</span>'; } if ($event->phone != '') { $html .= ' <span class="dp_pec_event_phone">' . $event->phone . '</span>'; } $category = get_the_terms($event->id, 'pec_events_category'); if (!empty($category)) { $category_count = 0; $html .= ' <span class="dp_pec_event_categories">'; if ($event->location != '') { $html .= '<br>'; } foreach ($category as $cat) { if ($category_count > 0) { $html .= " / "; } $html .= $cat->name; $category_count++; } $html .= ' </span>'; } if (is_array($dpProEventCalendar['custom_fields_counter'])) { $counter = 0; foreach ($dpProEventCalendar['custom_fields_counter'] as $key) { $field_value = get_post_meta($event->id, 'pec_custom_' . $dpProEventCalendar['custom_fields']['id'][$counter], true); if ($field_value != "") { $html .= '<div class="pec_event_page_custom_fields"><strong>' . $dpProEventCalendar['custom_fields']['name'][$counter] . '</strong>'; if ($dpProEventCalendar['custom_fields']['type'][$counter] == 'checkbox') { $html .= '<i class="fa fa-check"></i>'; } else { $html .= '<p>' . $field_value . '</p>'; } $html .= '</div>'; } $counter++; } } if ($this->limit_description > 0) { $event->description = force_balance_tags(html_entity_decode(wp_trim_words(htmlentities($event->description), $this->limit_description))); } $event_desc = nl2br(strip_tags(str_replace("</p>", "<br />", preg_replace("/<p[^>]*?>/", "", $event->description)), '<iframe><strong><h1><h2><h3><h4><h5><h6><h7><b><i><em><pre><code><del><ins><img><a><ul><li><ol><blockquote><br><hr><span><p>')); $html .= $this->getBookingButton($event->id); if ($this->limit_description > 0) { $event_desc = force_balance_tags(html_entity_decode(wp_trim_words(htmlentities($event_desc), $this->limit_description))); } $html .= ' <div class="dp_pec_event_description"> ' . do_shortcode($event_desc) . ' </div>'; if ($event->map != '') { $html .= ' <div class="dp_pec_date_event_map_overlay" onClick="style.pointerEvents=\'none\'"></div> <iframe class="dp_pec_date_event_map_iframe" width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&q=' . urlencode($event->map) . '&ie=UTF8&output=embed"></iframe>'; } $html .= $this->getRating($event->id); $html .= ' <div class="dp_pec_date_event_icons">'; $html .= $this->getEventShare($event); if ($event->link != '') { $html .= ' <a class="dp_pec_date_event_link" href="' . $event->link . '" target="_blank"></a>'; } $html .= ' </div>'; $html .= ' </div>'; $event_reg[] = $event->id; $event_counter++; } } } return $html; }