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