EventStartDate ) ) { $postTimestamp = strtotime( $post->EventStartDate, $now ); $postTimestamp = strtotime( date( TribeDateUtils::DBDATEFORMAT, $postTimestamp ), $now ); // strip the time if ( $postTimestamp != $tribe_ecp->currentPostTimestamp ) { $retval = true; } $tribe_ecp->currentPostTimestamp = $postTimestamp; $return = $retval; } else { $return = true; } return apply_filters( 'tribe_is_new_event_day', $return ); } /** * Past Loop View Test * * Returns true if the query is set for past events, false otherwise * * @return bool */ function tribe_is_past() { global $wp_query; $is_past = ! empty( $wp_query->tribe_is_past ) && ! tribe_is_showing_all() ? $wp_query->tribe_is_past : false; return apply_filters( 'tribe_is_past', $is_past ); } /** * Upcoming Loop View Test * * Returns true if the query is set for upcoming events, false otherwise * * @return bool */ function tribe_is_upcoming() { global $wp_query; $is_upcoming = ( tribe_is_list_view() && ! tribe_is_past() ) ? true : false; return apply_filters( 'tribe_is_upcoming', $is_upcoming ); } /** * Show All Test * * Returns true if the query is set to show all events, false otherwise * * @return bool * @todo move to ECP */ function tribe_is_showing_all() { $tribe_ecp = TribeEvents::instance(); $tribe_is_showing_all = ( $tribe_ecp->displaying == 'all' ) ? true : false; if ( $tribe_is_showing_all ) { add_filter( 'tribe_events_recurrence_tooltip', '__return_false' ); } return apply_filters( 'tribe_is_showing_all', $tribe_is_showing_all ); } /** * Date View Test * * Check if current display is "bydate" * * @return bool */ function tribe_is_by_date() { $tribe_ecp = TribeEvents::instance(); $tribe_is_by_date = ( $tribe_ecp->displaying == 'bydate' ) ? true : false; return apply_filters( 'tribe_is_by_date', $tribe_is_by_date ); } /** * Event Title (Display) * * Display an event's title with pseudo-breadcrumb if on a category * * @param bool $depth include linked title */ function tribe_events_title( $depth = true ) { echo apply_filters( 'tribe_events_title', tribe_get_events_title( $depth ) ); } /** * Event Title * * Return an event's title with pseudo-breadcrumb if on a category * * @param bool $depth include linked title * * @return string title * @todo move logic to template classes */ function tribe_get_events_title( $depth = true ) { global $wp_query; $tribe_ecp = TribeEvents::instance(); $title = __( 'Upcoming Events', 'tribe-events-calendar' ); if ( isset( $_REQUEST['tribe-bar-date'] ) && $wp_query->have_posts() ) { $first_event_date = tribe_get_end_date( $wp_query->posts[0], false ); $last_event_date = tribe_get_end_date( $wp_query->posts[count( $wp_query->posts ) - 1], false ); $title = sprintf( __( 'Events for %1$s - %2$s', 'tribe-events-calendar'), $first_event_date, $last_event_date ); } elseif ( tribe_is_past() ) { $title = __( 'Past Events', 'tribe-events-calendar' ); } if ( tribe_is_month() ) { $title = sprintf( __( 'Events for %s', 'tribe-events-calendar' ), date_i18n( tribe_get_option( 'monthAndYearFormat', 'F Y' ), strtotime( tribe_get_month_view_date() ) ) ); } // day view title if ( tribe_is_day() ) { $title = __( 'Events for', 'tribe-events-calendar' ) . ' ' . date_i18n( tribe_get_date_format( true ), strtotime( $wp_query->get( 'start_date' ) ) ); } if ( is_tax( $tribe_ecp->get_event_taxonomy() ) && $depth ) { $cat = get_queried_object(); $title = '' . $title . ''; $title .= ' › ' . $cat->name; } return apply_filters( 'tribe_get_events_title', $title, $depth ); } /** * Link to Upcoming Events * * Returns a link to the upcoming events in list view. Used in the loop view. * * @return string URL */ function tribe_get_upcoming_link() { $tribe_ecp = TribeEvents::instance(); $output = $tribe_ecp->getLink( 'upcoming' ); return apply_filters( 'tribe_get_upcoming_link', $output ); } /** * Are there any events previous to the current events in $wp_query * * @param string $return what to return, 'bool' or 'event' * * @return mixed */ function tribe_has_previous_event( $return = 'bool' ) { global $wp_query; $previous_event = false; if ( tribe_is_event_query() ) { // Edit the current event query to look for an upcoming event $args = (array) $wp_query->query; $args['eventDisplay'] = 'past'; if ( tribe_is_past() ) { $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] + 1 : 2; } else { $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] - 1 : 0; } $events = tribe_get_events( $args ); $previous_event = count( $events ) > 0; } // @todo 'tribe_has_past_events' filter is @deprecated as of 3.7 return apply_filters( 'tribe_has_previous_event', apply_filters( 'tribe_has_past_events', $previous_event ) ); } /** * Are there any events next (in the future) to the current events in $wp_query * * @param string $return what to return, 'bool' or 'event' * * @return mixed */ function tribe_has_next_event( $return = 'bool' ) { global $wp_query; $next_event = false; if ( tribe_is_event_query() && ! empty( $wp_query->posts ) ) { // Edit the current event query to look for an upcoming event $args = (array) $wp_query->query; $args['eventDisplay'] = 'list'; if ( tribe_is_past() ) { $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] - 1 : 0; } else { $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] + 1 : 2; } $events = tribe_get_events( $args ); $next_event = count( $events ) > 0; } // @todo 'tribe_has_past_events' filter is @deprecated as of 3.7 return apply_filters( 'tribe_has_next_event', apply_filters( 'tribe_has_next_events', $next_event ) ); } /** * Link to Past Events * * Returns a link to the previous events in list view. Used in the loop view. * * @return string URL */ function tribe_get_past_link() { $tribe_ecp = TribeEvents::instance(); $output = $tribe_ecp->getLink( 'past' ); return apply_filters( 'tribe_get_past_link', $output ); } /** * Determines if we are in the main Loop (home/archives/tags) * * @return bool */ function tribe_is_in_main_loop() { return apply_filters( 'tribe_is_main_loop', TribeEventsTemplates::$isMainLoop ); } /** * Determines if we are in list view. * * @return bool */ function tribe_is_list_view() { $is_list_view = (TribeEvents::instance()->displaying == 'list') ? true : false; return apply_filters( 'tribe_is_list_view', $is_list_view ); } /** * Used in list loop, displays the date headers between events in the loop when the month / year has changed * * @return void **/ function tribe_events_list_the_date_headers() { /* Month and year separators (on every month and year change) */ $show_headers = apply_filters( 'tribe_events_list_show_date_headers', true ); $html = ''; if ( $show_headers ) { global $post, $wp_query; $event_year = tribe_get_start_date( $post, false, 'Y' ); $event_month = tribe_get_start_date( $post, false, 'm' ); $month_year_format = tribe_get_option( 'monthAndYearFormat', 'F Y' ); if ( $wp_query->current_post > 0 ) { $prev_post = $wp_query->posts[$wp_query->current_post - 1]; $prev_event_year = tribe_get_start_date( $prev_post, false, 'Y' ); $prev_event_month = tribe_get_start_date( $prev_post, false, 'm' ); } /* * If the event month changed since the last event in the loop, * or is the same month but the year changed. * */ if ( $wp_query->current_post === 0 || ( $prev_event_month != $event_month || ( $prev_event_month == $event_month && $prev_event_year != $event_year ) ) ) { $html .= sprintf( "%s", tribe_get_start_date( $post, false, $month_year_format ) ); } echo apply_filters( 'tribe_events_list_the_date_headers', $html, $event_month, $event_year ); } } /** * Determine classes to apply to left side nav links * * @param $side */ function tribe_left_navigation_classes() { $classes = array(); $tribe_paged = ( ! empty( $_REQUEST['tribe_paged'] ) ) ? $_REQUEST['tribe_paged'] : 1; $classes['direction'] = tribe_is_upcoming() ? 'tribe-events-nav-previous' : 'tribe-events-nav-next'; $classes['side'] = 'tribe-events-nav-left'; if ( tribe_is_past() || ( ( tribe_is_upcoming() && $tribe_paged == 1 ) ) ) { $classes['past'] = 'tribe-events-past'; } $classes = apply_filters( 'tribe_left_navigation_classes', $classes ); return implode( ' ', $classes ); } /** * Determine classes to apply to right side nav links * * @param $side */ function tribe_right_navigation_classes() { $classes = array(); $tribe_paged = ( ! empty( $_REQUEST['tribe_paged'] ) ) ? $_REQUEST['tribe_paged'] : 1; $classes['direction'] = tribe_is_upcoming() ? 'tribe-events-nav-next' : 'tribe-events-nav-previous'; $classes['side'] = 'tribe-events-nav-right'; if ( tribe_is_past() && $tribe_paged > 1 ) { $classes['past'] = 'tribe-events-past'; } $classes = apply_filters( 'tribe_right_navigation_classes', $classes ); return implode( ' ', $classes ); } /** * Checks whether we're on a particular view * * @return bool **/ function tribe_is_view( $view = false ) { return $view === TribeEvents::instance()->displaying; } } ?>