Loading...
} } if( $settings['eael_old_events_hide'] === 'start' ){ $default_date = $settings['eael_event_default_date_type'] === 'custom' ? $settings['eael_event_calendar_default_date'] : date( 'Y-m-d' ); $should_show = $this->is_old_event( $ev_start_date, $default_date ); if ( $should_show ) { continue; } } $calendar_data[] = [ 'id' => ++$key, 'title' => !empty($item->summary) ? $item->summary : 'No Title', 'description' => isset($item->description) ? $item->description : '', 'start' => $ev_start_date, 'end' => $ev_end_date, 'start_timezone' => $start_timezone, 'end_timezone' => $end_timezone, 'borderColor' => !empty($settings_eael_event_global_popup_ribbon_color) ? $settings_eael_event_global_popup_ribbon_color: '#10ecab', 'textColor' => $settings_eael_event_global_text_color, 'color' => $settings_eael_event_global_bg_color, 'url' => ($settings['eael_event_details_link_hide'] !== 'yes') ? esc_url( $item->htmlLink ): '', 'allDay' => $all_day, 'external' => 'on', 'nofollow' => 'on', ]; } } return $calendar_data; } /** * @param $settings * * @return array * @since 3.8.2 */ public function get_the_events_calendar_events($settings) { if (!function_exists('tribe_get_events')) { return []; } $arg = [ 'posts_per_page' => $settings['eael_the_events_calendar_max_result'], ]; if ( $settings['eael_the_events_calendar_fetch'] == 'date_range' && 'table' === $settings['eael_event_display_layout'] ) { $arg['start_date'] = $settings['eael_the_events_calendar_start_date']; $arg['end_date'] = $settings['eael_the_events_calendar_end_date']; } else if ( $settings['eael_event_default_date_type'] === 'custom' && 'table' === $settings['eael_event_display_layout'] ) { $arg['start_date'] = $settings['eael_event_calendar_default_date']; } if (!empty($settings['eael_the_events_calendar_category'])) { $arg['tax_query'] = [ [ 'taxonomy' => 'tribe_events_cat', 'field' => 'id', 'terms' => $settings['eael_the_events_calendar_category'], ], ]; } $events = tribe_get_events($arg); if (empty($events)) { return []; } $random_colors = $this->get_random_colors(); $random_color_enabled = isset( $settings['eael_event_random_bg_color'] ) && 'yes' == $settings['eael_event_random_bg_color']; $random_color_index = 0; $calendar_data = []; foreach ($events as $key => $event) { $date_format = 'Y-m-d'; $all_day = 'yes'; if (!tribe_event_is_all_day($event->ID)) { $date_format .= ' H:i'; $all_day = ''; } if (tribe_event_is_all_day($event->ID)) { $end = date('Y-m-d', strtotime("+1 days", strtotime(tribe_get_end_date($event->ID, true, $date_format)))); } else { $end = date('Y-m-d H:i', strtotime(tribe_get_end_date($event->ID, true, $date_format))) . ":01"; } if ( $random_color_enabled ) { $random_color_index = $random_color_index > count( $random_colors ) - 2 ? 0 : $random_color_index+1; $settings_eael_event_global_bg_color = $random_colors[ $random_color_index ]; $settings_eael_event_global_text_color = '#ffffff'; } else { $settings_eael_event_global_bg_color = $this->fetch_color_or_global_color($settings, 'eael_event_global_bg_color'); $settings_eael_event_global_text_color = $this->fetch_color_or_global_color($settings, 'eael_event_global_text_color'); } $start = tribe_get_start_date($event->ID, true, $date_format); if( !empty( $settings["eael_old_events_hide"] ) && 'yes' === $settings["eael_old_events_hide"] ){ $is_old_event = $this->is_old_event($start); if($is_old_event) { continue; } } if( $settings['eael_old_events_hide'] === 'start' ){ $default_date = $settings['eael_event_default_date_type'] === 'custom' ? $settings['eael_event_calendar_default_date'] : date( 'Y-m-d' ); $should_show = $this->is_old_event( $start, $default_date ); if ( $should_show ) { continue; } } $settings_eael_event_global_popup_ribbon_color = $this->fetch_color_or_global_color($settings, 'eael_event_global_popup_ribbon_color'); $calendar_data[] = [ 'id' => ++$key, 'title' => !empty($event->post_title) ? $event->post_title : __('No Title', 'essential-addons-for-elementor-lite'), 'description' => do_shortcode($event->post_content), 'start' => $start, 'end' => $end, 'borderColor' => !empty($settings_eael_event_global_popup_ribbon_color) ? $settings_eael_event_global_popup_ribbon_color : '#10ecab', 'textColor' => $settings_eael_event_global_text_color, 'color' => $settings_eael_event_global_bg_color, 'url' => ($settings['eael_event_details_link_hide'] !== 'yes') ? esc_url( get_the_permalink($event->ID) ) : '', 'allDay' => $all_day, 'external' => 'on', 'nofollow' => 'on', ]; } return $calendar_data; } public function is_old_event( $start_date, $date_to_comp = '' ) { $date_to_comp = $date_to_comp === '' ? current_time( 'Y-m-d' ) : $date_to_comp; $date_to_comp = strtotime( $date_to_comp . wp_timezone_string() ); $start_date_timestamp = strtotime( $start_date ); if ( $start_date_timestamp < $date_to_comp ) { return true; } return false; } public function fetch_color_or_global_color($settings, $control_name=''){ if( !isset($settings[$control_name])) { return ''; } $color = $settings[$control_name]; if(!empty($settings['__globals__']) && !empty($settings['__globals__'][$control_name])){ $color = $settings['__globals__'][$control_name]; $color_arr = explode('?id=', $color); //E.x. 'globals/colors/?id=primary' $color_name = count($color_arr) > 1 ? $color_arr[1] : ''; if( !empty($color_name) ) { $color = "var( --e-global-color-$color_name )"; } } return $color; } public function get_random_colors() { $colors = [ '#F43E3E', '#F46C3E', '#F4993E', '#F4C63E', '#F4F43E', '#C6F43E', '#99F43E', '#3EF43E', '#3EF499', '#3EF4C6', '#3EF4F4', '#3EC6F4', '#3E99F4', '#3E3EF4', '#6C3EF4', '#993EF4', '#C63EF4', '#F43EF4', '#F43E99', '#F43E6C', '#F43E3E']; return $colors; } }