gGVP?/GV DЉGV< GV`GVP M,GVp NPGV p3GV4GV+/GV D GV PtЉGV<ZGVlGVp` QXGVP @ GV@ 0"p6GV ,GV 0"p6GV  ,GV 0"p6GV ,GV` *PGV p03GV0@<GV@@/GVp@ PQSGVP`{3GV`p>GVp@44GV@+/GV D GV PtЉGV<ZGVl0MGV`` pPGVP?1&` (p |GVdGVp@ ]GVPGV<GVP2ЉGV<GV*PGV p4GV+GVpp Q0%GVG7GVp vGVpGV M,GVNGVp 3GV 04GV0+/GVp8@D GVp`6PGV``7GV`@P8GVPPtЉGV<ZGV@lGV*@ZGV0MGV`@p/GVPD@GVGVPB |GVdGVp0]GV` |GVdGVp]GVp |GVdGVp]GVЉGV%<GVP2ЉGV&<GV *PGVp3GV4GV+/GVX D GVPtЉGV*<ZGV l0MGV`@`p/GV@p@D |GVdGVp P]GVPPЉGV-<GV@P2ЉGV.<GV */GVpxD GV6GVpPQGV7GV08GVPtЉGV4<ZGVl GVFGV*@ZGVGV`>pJGV@>BB8ABBB8A0 7&(BB+AmBmBBBXBAAPB BmBdBxBdB7&BBBBAA B0 BеAAxB+AB} else { $start = $first_event instanceof \WP_Post ? $first_event->dates->start_display : $user_date; $end = $last_event instanceof \WP_Post ? $last_event->dates->start_display : $user_date; } // Never let the start of the range exceed the start. if ( $start > $end ) { $end = $user_date; } $is_first_past_page = $is_past && 1 === $page; if ( $is_first_past_page ) { $end = $user_date; } $end_is_now = $now->format( 'Y-m-d' ) === $end->format( 'Y-m-d' ); // Do the events all have the same start dates? $diff_dates = count( array_unique( array_map( static function ( $event ) { return $event->dates->start_display->format( 'Y-m-d' ); }, $date_sorted_events ) ) ) > 1; $show_end = ( $is_first_past_page ) || ( $has_next_page && $diff_dates && $start->format( 'Y-m-d' ) !== $end->format( 'Y-m-d' ) ); $start_timestamp_w_offset = $start->getTimestamp() + $start->getOffset(); $start_format_w_year = $today->format( 'Y' ) !== $start->format( 'Y' ); $start_label_format = tribe_get_date_format( $start_format_w_year ); $start_time_label = date_i18n( $start_label_format, $start_timestamp_w_offset ); $start_date_mobile = $start->format( $compact_date_format ); $now_label = $now_text; $now_label_mobile = $now_text; if ( empty( $date_sorted_events ) || ! $has_next_page ) { $onwards_label_start = $show_now ? $now_text : $start_time_label; $onwards_label_start_mobile = $show_now ? $now_text : $start_date_mobile; $now_label = sprintf( // translators: the placeholder is for the date range start, e.g. "Now" or "October 23". _x( 'Upcoming', 'The datepicker range definition when no events are found.', 'the-events-calendar' ), $onwards_label_start ); $now_label_mobile = sprintf( // translators: the placeholder is for the date range start, e.g. "Now" or "1/1/2020". _x( 'Upcoming', 'The datepicker range definition when no events are found (for mobile).', 'the-events-calendar' ), $onwards_label_start_mobile ); $show_now = true; } if ( ! empty( $date_sorted_events ) && 1 === $page && ! $has_next_page && ! $is_past && null === $this->context->get( 'event_date' ) ) { $now_label = sprintf( _x( 'Upcoming', 'The datepicker range definition when no more pages of events exist.', 'the-events-calendar' ), $onwards_label_start ); $now_label_mobile = $now_label; } $end_timestamp_w_offset = $end->getTimestamp() + $end->getOffset(); $end_format_w_year = Dates::build_date_object()->format( 'Y' ) !== $end->format( 'Y' ); $end_label_format = tribe_get_date_format( $end_format_w_year ); $end_date_label = $end_is_now ? $now_text : date_i18n( $end_label_format, $end_timestamp_w_offset ); $template_vars['show_now'] = $show_now; $template_vars['now_label'] = $now_label; $template_vars['now_label_mobile'] = $now_label_mobile; $template_vars['show_end'] = $show_end; $template_vars['selected_start_datetime'] = date_i18n( 'Y-m-d', $start_timestamp_w_offset ); $template_vars['selected_start_date_mobile'] = $start_date_mobile; $template_vars['selected_start_date_label'] = $start_time_label; $template_vars['selected_end_datetime'] = date_i18n( 'Y-m-d', $end_timestamp_w_offset ); $template_vars['selected_end_date_mobile'] = $end->format( $compact_date_format ); $template_vars['selected_end_date_label'] = $end_date_label; $template_vars['datepicker_date'] = $start->format( $compact_date_format ); return $template_vars; } /** * Remove the query arguments and values related to the View `past` display mode, if supported. * * The method will alter the View context to remove notions of a "past" view request from it. * * @since 4.9.11 */ protected function remove_past_query_args() { $display_mode = $this->context->get( 'event_display_mode', false ); $is_past = 'past' === $display_mode; if ( ! $is_past ) { return; } $url = $this->context->get( 'url', home_url() ); $view_data = $this->context->get( 'view_data', [] ); $upcoming_url = remove_query_arg( 'eventDisplay', $url ); $updated_view_data = array_merge( $view_data, [ 'url' => $upcoming_url ] ); $this->context = $this->context->alter( [ 'event_display_mode' => $this->context->get( 'event_display', false ), 'url' => $upcoming_url, 'view_data' => $updated_view_data, ] ); } }