Пример #1
0
 public function render()
 {
     $aggregator = Tribe__Events__Aggregator::instance();
     $event_id = get_the_ID();
     $record = Tribe__Events__Aggregator__Records::instance()->get_by_event_id($event_id);
     $last_import = null;
     $source = null;
     $origin = null;
     if (is_wp_error($record)) {
         $last_import = get_post_meta($event_id, Tribe__Events__Aggregator__Event::$updated_key, true);
         $source = get_post_meta($event_id, Tribe__Events__Aggregator__Event::$source_key, true);
         $origin = get_post_meta($event_id, Tribe__Events__Aggregator__Event::$origin_key, true);
     } else {
         $last_import = $record->post->post_modified;
         $source_info = $record->get_source_info();
         $source = $source_info['title'];
         $origin = $record->origin;
     }
     $origin = $aggregator->api('origins')->get_name($origin);
     $datepicker_format = Tribe__Date_Utils::datepicker_formats(tribe_get_option('datepickerFormat'));
     $last_import = $last_import ? tribe_format_date($last_import, true, $datepicker_format . ' h:i a') : null;
     $settings_link = Tribe__Settings::instance()->get_url(array('tab' => 'imports'));
     $import_setting = tribe_get_option('tribe_aggregator_default_update_authority', Tribe__Events__Aggregator__Settings::$default_update_authority);
     include Tribe__Events__Main::instance()->plugin_path . 'src/admin-views/aggregator/meta-box.php';
 }
Пример #2
0
/**
 * Output a link for the mini calendar month previous nav, includes data attributes needed to update the month with ajax
 *
 * @return void
 **/
function tribe_events_the_mini_calendar_title()
{
    $args = tribe_events_get_mini_calendar_args();
    $date = strtotime($args['eventDate']);
    $date_format = tribe_get_option('monthAndYearFormat', 'M Y');
    $title = tribe_format_date($date, false, $date_format);
    echo apply_filters('tribe_events_the_mini_calendar_title', $title);
}
Пример #3
0
 /**
  * End Date formatted for display
  *
  * Returns the event end date that observes the end of day cutoff
  *
  * @category Events
  * @param int    $event        (optional)
  * @param bool   $display_time If true shows date and time, if false only shows date
  * @param string $date_format  Allows date and time formating using standard php syntax (http://php.net/manual/en/function.date.php)
  * @param string $timezone     Timezone in which to present the date/time (or default behaviour if not set)
  *
  * @return string|null Date
  */
 function tribe_get_display_end_date($event = null, $display_time = true, $date_format = '', $timezone = null)
 {
     $end_date = tribe_get_end_date($event, true, 'U', $timezone);
     $beginning_of_day = tribe_beginning_of_day(date(Tribe__Date_Utils::DBDATETIMEFORMAT, $end_date));
     if (tribe_event_is_multiday($event) && $end_date < strtotime($beginning_of_day)) {
         $end_date -= DAY_IN_SECONDS;
     }
     return tribe_format_date($end_date, $display_time, $date_format);
 }
Пример #4
0
 /**
  * Returns various internal events-related URLs
  *
  * @param string        $type      type of link. See switch statement for types.
  * @param string        $secondary for $type = month, pass a YYYY-MM string for a specific month's URL
  *                                 for $type = week, pass a Week # string for a specific week's URL
  * @param int|bool|null $term
  *
  * @return string The link.
  */
 public function getLink($type = 'home', $secondary = false, $term = null)
 {
     // if permalinks are off or user doesn't want them: ugly.
     if ('' === get_option('permalink_structure')) {
         return esc_url_raw($this->uglyLink($type, $secondary));
     }
     // account for semi-pretty permalinks
     if (false !== strpos(get_option('permalink_structure'), 'index.php')) {
         $event_url = home_url('/index.php/');
     } else {
         $event_url = home_url('/');
     }
     // URL Arguments on home_url() pre-check
     $url_query = @parse_url($event_url, PHP_URL_QUERY);
     $url_args = wp_parse_args($url_query, array());
     // Remove the "args"
     if (!empty($url_query)) {
         $event_url = str_replace('?' . $url_query, '', $event_url);
     }
     // Append Events structure
     $event_url .= trailingslashit(sanitize_title(Tribe__Settings_Manager::get_option('eventsSlug', 'events')));
     // if we're on an Event Cat, show the cat link, except for home and days.
     if ($type !== 'home' && is_tax(self::TAXONOMY) && $term !== false && !is_numeric($term)) {
         $term_link = get_term_link(get_query_var('term'), self::TAXONOMY);
         if (!is_wp_error($term_link)) {
             $event_url = trailingslashit($term_link);
         }
     } else {
         if ($term) {
             $term_link = get_term_link((int) $term, self::TAXONOMY);
             if (!is_wp_error($term_link)) {
                 $event_url = trailingslashit($term_link);
             }
         }
     }
     switch ($type) {
         case 'home':
             $event_url = trailingslashit(esc_url_raw($event_url));
             break;
         case 'month':
             if ($secondary) {
                 $event_url = trailingslashit(esc_url_raw($event_url . $secondary));
             } else {
                 $event_url = trailingslashit(esc_url_raw($event_url . $this->monthSlug));
             }
             break;
         case 'list':
             $event_url = trailingslashit(esc_url_raw($event_url . $this->listSlug));
             break;
         case 'upcoming':
             $event_url = trailingslashit(esc_url_raw($event_url . $this->listSlug));
             break;
         case 'past':
             $event_url = esc_url_raw(add_query_arg('tribe_event_display', 'past', trailingslashit($event_url . $this->listSlug)));
             break;
         case 'dropdown':
             $event_url = esc_url_raw($event_url);
             break;
         case 'single':
             global $post;
             $p = $secondary ? $secondary : $post;
             $link = trailingslashit(get_permalink($p));
             $event_url = trailingslashit(esc_url_raw($link));
             break;
         case 'day':
             if (empty($secondary)) {
                 $secondary = $this->todaySlug;
             } else {
                 $secondary = tribe_format_date($secondary, false, Tribe__Date_Utils::DBDATEFORMAT);
             }
             $event_url = trailingslashit(esc_url_raw($event_url . $secondary));
             break;
         default:
             $event_url = esc_url_raw($event_url);
             break;
     }
     // Filter get link
     $event_url = apply_filters('tribe_events_get_link', $event_url, $type, $secondary, $term, $url_args);
     // @todo deprecate on 4.2
     $event_url = apply_filters('tribe_events_getLink', $event_url, $type, $secondary, $term, $url_args);
     // Add the Arguments back
     $event_url = add_query_arg($url_args, $event_url);
     return $event_url;
 }
Пример #5
0
 /**
  * Return the details of the start/end date/time.
  *
  * The highest level means of customizing this function's output is simply to adjust the date format settings under
  * Events > Settings > Display, and WordPress time formats (via the General Settings admin screen).
  * Beyond that, however, there are two filters which can be used to exercise further control here.
  *
  * The first is 'tribe_events_event_schedule_details_formatting' which allows an array of format settings to be
  * altered - it's basic make-up is as a simple set of key:value pairs as follows.
  *
  * "show_end_time": for single day events only (not including all day events) it may not always be desirable to
  *     include the end time. In that situation, this setting can be set to false and the end time will not be
  *     displayed.
  *
  * "time": if it is undesirable to show times and only dates should be displayed then this setting can be set to
  *     false. If it is false it will by extension cause 'show_end_time' to be false.
  *
  * The resulting string can also be caught and manipulated, or completely overridden, using the
  * 'tribe_events_event_schedule_details' filter, should none of the above settings be sufficient.
  *
  * @category Events
  * @TODO use tribe_get_datetime_format() and related functions if possible
  *
  * @param int|null $event
  * @param string $before
  * @param string $after
  *
  * @return mixed|void
  */
 function tribe_events_event_schedule_details($event = null, $before = '', $after = '')
 {
     if (is_null($event)) {
         global $post;
         $event = $post;
     }
     if (is_numeric($event)) {
         $event = get_post($event);
     }
     $inner = '<span class="tribe-event-date-start">';
     $format = '';
     $date_without_year_format = tribe_get_date_format();
     $date_with_year_format = tribe_get_date_format(true);
     $time_format = get_option('time_format');
     $datetime_separator = tribe_get_option('dateTimeSeparator', ' @ ');
     $time_range_separator = tribe_get_option('timeRangeSeparator', ' - ');
     $settings = array('show_end_time' => true, 'time' => true);
     $settings = wp_parse_args(apply_filters('tribe_events_event_schedule_details_formatting', $settings), $settings);
     if (!$settings['time']) {
         $settings['show_end_time'] = false;
     }
     /**
      * @var $show_end_time
      * @var $time
      */
     extract($settings);
     $format = $date_with_year_format;
     // if it starts and ends in the current year then there is no need to display the year
     if (tribe_get_start_date($event, false, 'Y') === date('Y') && tribe_get_end_date($event, false, 'Y') === date('Y')) {
         $format = $date_without_year_format;
     }
     if (tribe_event_is_multiday($event)) {
         // multi-date event
         $format2ndday = apply_filters('tribe_format_second_date_in_range', $format, $event);
         if (tribe_event_is_all_day($event)) {
             $inner .= tribe_get_start_date($event, true, $format);
             $inner .= '</span>' . $time_range_separator;
             $inner .= '<span class="tribe-event-date-end">';
             $end_date_full = tribe_get_end_date($event, true, Tribe__Date_Utils::DBDATETIMEFORMAT);
             $end_date_full_timestamp = strtotime($end_date_full);
             // if the end date is <= the beginning of the day, consider it the previous day
             if ($end_date_full_timestamp <= strtotime(tribe_beginning_of_day($end_date_full))) {
                 $end_date = tribe_format_date($end_date_full_timestamp - DAY_IN_SECONDS, false, $format2ndday);
             } else {
                 $end_date = tribe_get_end_date($event, false, $format2ndday);
             }
             $inner .= $end_date;
         } else {
             $inner .= tribe_get_start_date($event, false, $format) . ($time ? $datetime_separator . tribe_get_start_date($event, false, $time_format) : '');
             $inner .= '</span>' . $time_range_separator;
             $inner .= '<span class="tribe-event-date-end">';
             $inner .= tribe_get_end_date($event, false, $format2ndday) . ($time ? $datetime_separator . tribe_get_end_date($event, false, $time_format) : '');
         }
     } elseif (tribe_event_is_all_day($event)) {
         // all day event
         $inner .= tribe_get_start_date($event, true, $format);
     } else {
         // single day event
         if (tribe_get_start_date($event, false, 'g:i A') === tribe_get_end_date($event, false, 'g:i A')) {
             // Same start/end time
             $inner .= tribe_get_start_date($event, false, $format) . ($time ? $datetime_separator . tribe_get_start_date($event, false, $time_format) : '');
         } else {
             // defined start/end time
             $inner .= tribe_get_start_date($event, false, $format) . ($time ? $datetime_separator . tribe_get_start_date($event, false, $time_format) : '');
             $inner .= '</span>' . ($show_end_time ? $time_range_separator : '');
             $inner .= '<span class="tribe-event-time">';
             $inner .= $show_end_time ? tribe_get_end_date($event, false, $time_format) : '';
         }
     }
     $inner .= '</span>';
     /**
      * Provides an opportunity to modify the *inner* schedule details HTML (ie before it is
      * wrapped).
      *
      * @param string $inner_html  the output HTML
      * @param int    $event_id    post ID of the event we are interested in
      */
     $inner = apply_filters('tribe_events_event_schedule_details_inner', $inner, $event->ID);
     // Wrap the schedule text
     $schedule = $before . $inner . $after;
     /**
      * Provides an opportunity to modify the schedule details HTML for a specific event after
      * it has been wrapped in the before and after markup.
      *
      * @param string $schedule  the output HTML
      * @param int    $event_id  post ID of the event we are interested in
      * @param string $before    part of the HTML wrapper that was prepended
      * @param string $after     part of the HTML wrapper that was appended
      */
     return apply_filters('tribe_events_event_schedule_details', $schedule, $event->ID, $before, $after);
 }
 /**
  * Is hooked by init() filter to parse the WP_Query arguments for main and alt queries.
  *
  * @param object $query WP_Query object args supplied or default
  *
  * @return object $query (modified)
  */
 public static function pre_get_posts($query)
 {
     $admin_helpers = Tribe__Admin__Helpers::instance();
     if ($query->is_main_query() && is_home()) {
         // check option for including events in the main wordpress loop, if true, add events post type
         if (tribe_get_option('showEventsInMainLoop', false)) {
             $query->query_vars['post_type'] = isset($query->query_vars['post_type']) ? (array) $query->query_vars['post_type'] : array('post');
             $query->query_vars['post_type'][] = Tribe__Events__Main::POSTTYPE;
             $query->tribe_is_multi_posttype = true;
         }
     }
     if ($query->tribe_is_multi_posttype) {
         do_action('log', 'multi_posttype', 'default', $query->tribe_is_multi_posttype);
         add_filter('posts_fields', array(__CLASS__, 'multi_type_posts_fields'), 10, 2);
         add_filter('posts_join', array(__CLASS__, 'posts_join'), 10, 2);
         add_filter('posts_join', array(__CLASS__, 'posts_join_venue_organizer'), 10, 2);
         add_filter('posts_distinct', array(__CLASS__, 'posts_distinct'));
         add_filter('posts_orderby', array(__CLASS__, 'posts_orderby'), 10, 2);
         do_action('tribe_events_pre_get_posts', $query);
         return;
     }
     if ($query->tribe_is_event || $query->tribe_is_event_category) {
         if (!($query->is_main_query() && 'month' === $query->get('eventDisplay'))) {
             add_filter('posts_fields', array(__CLASS__, 'posts_fields'), 10, 2);
             add_filter('posts_join', array(__CLASS__, 'posts_join'), 10, 2);
             add_filter('posts_join', array(__CLASS__, 'posts_join_venue_organizer'), 10, 2);
             add_filter('posts_where', array(__CLASS__, 'posts_where'), 10, 2);
             add_filter('posts_distinct', array(__CLASS__, 'posts_distinct'));
         } else {
             // reduce number of queries triggered by main WP_Query on month view
             $query->set('posts_per_page', 1);
             $query->set('no_found_rows', true);
             $query->set('cache_results', false);
             $query->set('update_post_meta_cache', false);
             $query->set('update_post_term_cache', false);
             do_action('tribe_events_pre_get_posts', $query);
             return $query;
         }
         // if a user selects a date in the event bar we want it to persist as long as possible
         if (!empty($_REQUEST['tribe-bar-date'])) {
             $query->set('eventDate', $_REQUEST['tribe-bar-date']);
             do_action('log', 'changed eventDate to tribe-bar-date', 'tribe-events-query', $_REQUEST['tribe-bar-date']);
         }
         // if a user provides a search term we want to use that in the search params
         if (!empty($_REQUEST['tribe-bar-search'])) {
             $query->query_vars['s'] = $_REQUEST['tribe-bar-search'];
         }
         $query->query_vars['eventDisplay'] = !empty($query->query_vars['eventDisplay']) ? $query->query_vars['eventDisplay'] : Tribe__Events__Main::instance()->displaying;
         //@todo stop calling EOD cutoff transformations all over the place
         if (!empty($query->query_vars['eventDisplay'])) {
             switch ($query->query_vars['eventDisplay']) {
                 case 'custom':
                     // if the eventDisplay is 'custom', all we're gonna do is make sure the start and end dates are formatted
                     $start_date = $query->get('start_date');
                     if ($start_date) {
                         $start_date_string = $start_date instanceof DateTime ? $start_date->date : $start_date;
                         $query->set('start_date', date_i18n(Tribe__Date_Utils::DBDATETIMEFORMAT, strtotime($start_date_string)));
                     }
                     $end_date = $query->get('end_date');
                     if ($end_date) {
                         $end_date_string = $end_date instanceof DateTime ? $end_date->date : $end_date;
                         $query->set('end_date', date_i18n(Tribe__Date_Utils::DBDATETIMEFORMAT, strtotime($end_date_string)));
                     }
                     break;
                 case 'month':
                     // make sure start and end date are set
                     if ($query->get('start_date') == '') {
                         $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : date_i18n(Tribe__Date_Utils::DBDATETIMEFORMAT);
                         $query->set('start_date', tribe_beginning_of_day($event_date));
                     }
                     if ($query->get('end_date' == '')) {
                         $query->set('end_date', tribe_end_of_day($query->get('start_date')));
                     }
                     $query->set('hide_upcoming', true);
                     break;
                 case 'day':
                     $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : date('Y-m-d', current_time('timestamp'));
                     $query->set('eventDate', $event_date);
                     $beginning_of_day = strtotime(tribe_beginning_of_day($event_date)) + 1;
                     $query->set('start_date', date_i18n(Tribe__Date_Utils::DBDATETIMEFORMAT, $beginning_of_day));
                     $query->set('end_date', tribe_end_of_day($event_date));
                     $query->set('posts_per_page', -1);
                     // show ALL day posts
                     $query->set('hide_upcoming', true);
                     $query->set('order', self::set_order('ASC', $query));
                     break;
                 case 'single-event':
                     if ($query->get('eventDate') != '') {
                         $query->set('start_date', $query->get('eventDate'));
                         $query->set('eventDate', $query->get('eventDate'));
                     }
                     break;
                 case 'all':
                 case 'list':
                 default:
                     // default display query
                     $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : date_i18n(Tribe__Date_Utils::DBDATETIMEFORMAT);
                     if (!$query->tribe_is_past) {
                         $query->set('start_date', '' != $query->get('eventDate') ? tribe_beginning_of_day($event_date) : tribe_format_date(current_time('timestamp'), true, 'Y-m-d H:i:s'));
                         $query->set('end_date', '');
                         $query->set('order', self::set_order('ASC', $query));
                     } else {
                         // on past view, set the passed date as the end date
                         $query->set('start_date', '');
                         $query->set('end_date', tribe_end_of_day($event_date));
                         $query->set('order', self::set_order('DESC', $query));
                     }
                     $query->set('orderby', self::set_orderby(null, $query));
                     $query->set('hide_upcoming', true);
                     break;
             }
         } else {
             $query->set('hide_upcoming', true);
             $query->set('start_date', date_i18n(Tribe__Date_Utils::DBDATETIMEFORMAT));
             $query->set('orderby', self::set_orderby(null, $query));
             $query->set('order', self::set_order(null, $query));
         }
         // eventCat becomes a standard taxonomy query - will need to deprecate and update views eventually
         if (!in_array($query->get(Tribe__Events__Main::TAXONOMY), array('', '-1'))) {
             $tax_query[] = array('taxonomy' => Tribe__Events__Main::TAXONOMY, 'field' => 'slug', 'terms' => $query->get(Tribe__Events__Main::TAXONOMY), 'include_children' => apply_filters('tribe_events_query_include_children', true));
         }
         // Only add the postmeta hack if it's not the main admin events list
         // Because this method filters out drafts without EventStartDate.
         // For this screen we're doing the JOIN manually in Tribe__Events__Admin_List
         if (!Tribe__Admin__Helpers::instance()->is_screen('edit-tribe_events')) {
             $event_start_key = Tribe__Events__Timezones::is_mode('site') ? '_EventStartDateUTC' : '_EventStartDate';
             $meta_query[] = array('key' => $event_start_key, 'type' => 'DATETIME');
         }
     }
     // filter by Venue ID
     if ($query->tribe_is_event_query && $query->get('venue') != '') {
         $meta_query[] = array('key' => '_EventVenueID', 'value' => $query->get('venue'));
     }
     // filter by Organizer ID
     if ($query->tribe_is_event_query && $query->get('organizer') != '') {
         $meta_query[] = array('key' => '_EventOrganizerID', 'value' => $query->get('organizer'));
     }
     // enable pagination setup
     if ($query->tribe_is_event_query && $query->get('posts_per_page') == '') {
         $query->set('posts_per_page', (int) tribe_get_option('postsPerPage', 10));
     }
     // hide upcoming events from query (only not in admin)
     if ($query->tribe_is_event_query && $query->get('hide_upcoming') && !$query->get('suppress_filters')) {
         $hide_upcoming_ids = self::getHideFromUpcomingEvents();
         if (!empty($hide_upcoming_ids)) {
             $query->set('post__not_in', $hide_upcoming_ids);
         }
     }
     if ($query->tribe_is_event_query && !empty($meta_query)) {
         // setup default relation for meta queries
         $meta_query['relation'] = 'AND';
         $meta_query_combined = array_merge((array) $meta_query, (array) $query->get('meta_query'));
         $query->set('meta_query', $meta_query_combined);
     }
     if ($query->tribe_is_event_query && !empty($tax_query)) {
         // setup default relation for tax queries
         $tax_query_combined = array_merge((array) $tax_query, (array) $query->get('tax_query'));
         $query->set('tax_query', $tax_query_combined);
     }
     if ($query->tribe_is_event_query) {
         add_filter('posts_orderby', array(__CLASS__, 'posts_orderby'), 10, 2);
     }
     // if is in the admin remove the event date & upcoming filters, unless is an ajax call
     if (self::should_remove_date_filters($query)) {
         remove_filter('posts_where', array(__CLASS__, 'posts_where'), 10, 2);
         remove_filter('posts_fields', array(__CLASS__, 'posts_fields'));
         remove_filter('posts_orderby', array(__CLASS__, 'posts_orderby'), 10, 2);
         $query->set('post__not_in', '');
         // set the default order for posts within admin lists
         if (!isset($query->query['order'])) {
             $query->set('order', 'DESC');
         } else {
             // making sure we preserve the order supplied by the query string even if it is overwritten above
             $query->set('order', $query->query['order']);
         }
     }
     if ($query->tribe_is_event_query) {
         do_action('tribe_events_pre_get_posts', $query);
     }
     return $query;
 }
Пример #7
0
 /**
  * Formatted Date
  *
  * Returns formatted date
  *
  * @category Events
  * @param string $date        String representing the datetime, assumed to be UTC (relevant if timezone conversion is used)
  * @param bool   $displayTime If true shows date and time, if false only shows date
  * @param string $dateFormat  Allows date and time formating using standard php syntax (http://php.net/manual/en/function.date.php)
  *
  * @return string
  */
 function tribe_event_format_date($date, $displayTime = true, $dateFormat = '')
 {
     _deprecated_function(__FUNCTION__, '4.0', 'tribe_format_date');
     return tribe_format_date($date, $displayTime, $dateFormat);
 }
Пример #8
0
			<?php 
    // Get data for this day within the loop.
    $daydata = tribe_events_get_current_month_day();
    ?>

			<td class="<?php 
    tribe_events_the_month_day_classes();
    ?>
"
				data-day="<?php 
    echo esc_attr(isset($daydata['daynum']) ? $daydata['date'] : '');
    ?>
"
				data-tribejson='<?php 
    echo tribe_events_template_data(null, array('date_name' => tribe_format_date($daydata['date'], false)));
    ?>
'
				>
				<?php 
    tribe_get_template_part('month/single', 'day');
    ?>
			</td>
			<?php 
}
?>
		</tr>
		</tbody>
	</table><!-- .tribe-events-calendar -->
<?php 
do_action('tribe_events_after_the_grid');
Пример #9
0
 function fitclub_tribe_alter_event_archive_titles($depth)
 {
     // Modify the titles here
     // Some of these include %1$s and %2$s, these will be replaced with relevant dates
     $title_upcoming = esc_html__('Upcoming Events', 'fitclub');
     // List View: Upcoming events
     $title_past = esc_html__('Past Events', 'fitclub');
     // List view: Past events
     $title_range = esc_html__('Events for %1$s - %2$s', 'fitclub');
     // List view: range of dates being viewed
     $title_month = esc_html__('Events for %1$s', 'fitclub');
     // Month View, %1$s = the name of the month
     $title_day = esc_html__('Events for %1$s', 'fitclub');
     // Day View, %1$s = the day
     $title_all = esc_html__('All events for %s', 'fitclub');
     // showing all recurrences of an event, %s = event title
     $title_week = esc_html__('Events for week of %s', 'fitclub');
     // Week view
     // Don't modify anything below this unless you know what it does
     global $wp_query;
     $tribe_ecp = Tribe__Events__Main::instance();
     $date_format = apply_filters('tribe_events_pro_page_title_date_format', tribe_get_date_format(true));
     // Default Title
     $title = $title_upcoming;
     // If there's a date selected in the tribe bar, show the date range of the currently showing events
     if (isset($_REQUEST['tribe-bar-date']) && $wp_query->have_posts()) {
         if ($wp_query->get('paged') > 1) {
             // if we're on page 1, show the selected tribe-bar-date as the first date in the range
             $first_event_date = tribe_get_start_date($wp_query->posts[0], false);
         } else {
             //otherwise show the start date of the first event in the results
             $first_event_date = tribe_format_date($_REQUEST['tribe-bar-date'], false);
         }
         $last_event_date = tribe_get_end_date($wp_query->posts[count($wp_query->posts) - 1], false);
         $title = sprintf($title_range, $first_event_date, $last_event_date);
     } elseif (tribe_is_past()) {
         $title = $title_past;
     }
     // Month view title
     if (tribe_is_month()) {
         $title = sprintf($title_month, date_i18n(tribe_get_option('monthAndYearFormat', 'F Y'), strtotime(tribe_get_month_view_date())));
     }
     // Single view title
     if (tribe_is_event() && is_single()) {
         $title = get_the_title();
     }
     // Day view title
     if (tribe_is_day()) {
         $title = sprintf($title_day, date_i18n(tribe_get_date_format(true), strtotime($wp_query->get('start_date'))));
     }
     // All recurrences of an event
     if (function_exists('tribe_is_showing_all') && tribe_is_showing_all()) {
         $title = sprintf($title_all, get_the_title());
     }
     // Week view title
     if (function_exists('tribe_is_week') && tribe_is_week()) {
         $title = sprintf($title_week, date_i18n($date_format, strtotime(tribe_get_first_week_day($wp_query->get('start_date')))));
     }
     if (is_tax($tribe_ecp->get_event_taxonomy()) && $depth) {
         $cat = get_queried_object();
         $title = $cat->name;
     }
     return $title;
 }
Пример #10
0
 /**
  * End Date
  *
  * Returns the event end date
  *
  * @category Events
  * @param int    $event       (optional)
  * @param bool   $displayTime If true shows date and time, if false only shows date
  * @param string $dateFormat  Allows date and time formating using standard php syntax (http://php.net/manual/en/function.date.php)
  * @param string $timezone    Timezone in which to present the date/time (or default behaviour if not set)
  *
  * @return string|null Date
  */
 function tribe_get_end_date($event = null, $displayTime = true, $dateFormat = '', $timezone = null)
 {
     if (is_null($event)) {
         global $post;
         $event = $post;
     }
     if (is_numeric($event)) {
         $event = get_post($event);
     }
     if (!is_object($event)) {
         return '';
     }
     if (tribe_event_is_all_day($event)) {
         $displayTime = false;
     }
     $end_date = Tribe__Events__Timezones::event_end_timestamp($event->ID, $timezone);
     return tribe_format_date($end_date, $displayTime, $dateFormat);
 }
Пример #11
0
 /**
  * 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)
 {
     $events_label_plural = tribe_get_event_label_plural();
     global $wp_query;
     $tribe_ecp = Tribe__Events__Main::instance();
     $title = sprintf(esc_html__('Upcoming %s', 'the-events-calendar'), $events_label_plural);
     // If there's a date selected in the tribe bar, show the date range of the currently showing events
     if (isset($_REQUEST['tribe-bar-date']) && $wp_query->have_posts()) {
         $first_returned_date = tribe_get_start_date($wp_query->posts[0], false, Tribe__Date_Utils::DBDATEFORMAT);
         $first_event_date = tribe_get_start_date($wp_query->posts[0], false);
         $last_event_date = tribe_get_end_date($wp_query->posts[count($wp_query->posts) - 1], false);
         // If we are on page 1 then we may wish to use the *selected* start date in place of the
         // first returned event date
         if (1 == $wp_query->get('paged') && $_REQUEST['tribe-bar-date'] < $first_returned_date) {
             $first_event_date = tribe_format_date($_REQUEST['tribe-bar-date'], false);
         }
         $title = sprintf(__('%1$s for %2$s - %3$s', 'the-events-calendar'), $events_label_plural, $first_event_date, $last_event_date);
     } elseif (tribe_is_past()) {
         $title = sprintf(esc_html__('Past %s', 'the-events-calendar'), $events_label_plural);
     }
     if (tribe_is_month()) {
         $title = sprintf(esc_html__('%1$s for %2$s', 'the-events-calendar'), $events_label_plural, date_i18n(tribe_get_option('monthAndYearFormat', 'F Y'), strtotime(tribe_get_month_view_date())));
     }
     // day view title
     if (tribe_is_day()) {
         $title = sprintf(esc_html__('%1$s for %2$s', 'the-events-calendar'), $events_label_plural, 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 = '<a href="' . esc_url(tribe_get_events_link()) . '">' . $title . '</a>';
         $title .= ' &#8250; ' . $cat->name;
     }
     return apply_filters('tribe_get_events_title', $title, $depth);
 }
Пример #12
0
 /**
  * End Date
  *
  * Returns the event end date
  *
  * @category Events
  * @param int    $event       (optional)
  * @param bool   $display_time If true shows date and time, if false only shows date
  * @param string $date_format  Allows date and time formating using standard php syntax (http://php.net/manual/en/function.date.php)
  * @param string $timezone    Timezone in which to present the date/time (or default behaviour if not set)
  *
  * @return string|null Date
  */
 function tribe_get_end_date($event = null, $display_time = true, $date_format = '', $timezone = null)
 {
     if (is_null($event)) {
         global $post;
         $event = $post;
     }
     if (is_numeric($event)) {
         $event = get_post($event);
     }
     if (!is_object($event)) {
         return '';
     }
     if (Tribe__Date_Utils::is_all_day(get_post_meta($event->ID, '_EventAllDay', true))) {
         $display_time = false;
     }
     // @todo move timezones to Common
     if (class_exists('Tribe__Events__Timezones')) {
         $end_date = Tribe__Events__Timezones::event_end_timestamp($event->ID, $timezone);
     }
     return tribe_format_date($end_date, $display_time, $date_format);
 }