Example #1
0
function tribe_rss_feed_add_eventdate()
{
    ?>

  <ev:tribe_event_meta xmlns:ev="Event">
  <?php 
    if (tribe_get_start_date() !== tribe_get_end_date()) {
        ?>
    <ev:startdate><?php 
        echo tribe_get_start_date();
        ?>
</ev:startdate>
    <ev:enddate><?php 
        echo tribe_get_end_date();
        ?>
</ev:enddate>
  <?php 
    } else {
        ?>

    <ev:startdate><?php 
        echo tribe_get_start_date();
        ?>
</ev:startdate>
  <?php 
    }
    ?>
  </ev:tribe_event_meta>
<?php 
}
 /**
  * Compile the schema.org event data into an array
  */
 private function build_data()
 {
     global $post;
     $id = $post->ID;
     $events_data = array();
     // Index by ID: this will allow filter code to identify the actual event being referred to
     // without injecting an additional property
     $events_data[$id] = new stdClass();
     $events_data[$id]->{'@context'} = 'http://schema.org';
     $events_data[$id]->{'@type'} = 'Event';
     $events_data[$id]->name = get_the_title();
     if (has_post_thumbnail()) {
         $events_data[$id]->image = wp_get_attachment_url(get_post_thumbnail_id($post->ID));
     }
     $events_data[$id]->url = get_the_permalink($post->ID);
     $events_data[$id]->startDate = get_gmt_from_date(tribe_get_start_date($post, true, TribeDateUtils::DBDATETIMEFORMAT), 'c');
     $events_data[$id]->endDate = get_gmt_from_date(tribe_get_end_date($post, true, TribeDateUtils::DBDATETIMEFORMAT), 'c');
     if (tribe_has_venue($id)) {
         $events_data[$id]->location = new stdClass();
         $events_data[$id]->location->{'@type'} = 'Place';
         $events_data[$id]->location->name = tribe_get_venue($post->ID);
         $events_data[$id]->location->address = strip_tags(str_replace("\n", '', tribe_get_full_address($post->ID)));
     }
     /**
      * Allows the event data to be modifed by themes and other plugins.
      *
      * @param array $events_data objects representing the Google Markup for each event.
      */
     $events_data = apply_filters('tribe_google_event_data', $events_data);
     // Strip the post ID indexing before returning
     $events_data = array_values($events_data);
     return $events_data;
 }
Example #3
0
 /**
  * Get the event date
  *
  * @param int $meta_id
  * @return string
  */
 public static function event_date($meta_id)
 {
     $time_format = get_option('time_format', TribeDateUtils::TIMEFORMAT);
     $start_time = tribe_get_start_date(null, false, $time_format);
     $end_time = tribe_get_end_date(null, false, $time_format);
     if (tribe_event_is_all_day()) {
         if (tribe_event_is_multiday()) {
             $html = Tribe_Meta_Factory::template(__('Start:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr updated published dtstart" title="%s">%s</abbr>', tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_start_date()), $meta_id);
             $html .= Tribe_Meta_Factory::template(__('End:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr dtend" title="%s">%s</abbr>', tribe_get_end_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_end_date()), $meta_id);
         } else {
             // If all day event, show only start date
             $html = Tribe_Meta_Factory::template(__('Date:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr updated published dtstart" title="%s">%s</abbr>', tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_start_date()), $meta_id);
         }
     } elseif (tribe_event_is_multiday()) {
         // If multiday, show start date+time and end date+time
         $html = Tribe_Meta_Factory::template(__('Start:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr updated published dtstart" title="%s">%s</abbr>', tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_start_date()), $meta_id);
         $html .= Tribe_Meta_Factory::template(__('End:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr dtend" title="%s">%s</abbr>', tribe_get_end_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_end_date()), $meta_id);
     } else {
         // show start date
         $html = Tribe_Meta_Factory::template(__('Date:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr updated published dtstart" title="%s">%s</abbr>', tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_start_date(null, false)), $meta_id);
         if ($start_time == $end_time) {
             // if start and end time are the same, just show the start time
             $html .= Tribe_Meta_Factory::template(__('Time:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr dtend" title="%s">%s</abbr>', tribe_get_end_date(null, false, TribeDateUtils::DBDATEFORMAT), $start_time), $meta_id);
         } else {
             // show start and end time
             $html .= Tribe_Meta_Factory::template(__('Time:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr dtend" title="%s">%s</abbr>', tribe_get_end_date(null, false, TribeDateUtils::DBDATEFORMAT), $start_time . ' - ' . $end_time), $meta_id);
         }
     }
     return apply_filters('tribe_event_meta_event_date', $html);
 }
 /**
  * Set up the notices for this template
  *
  * @return void
  * @since 3.0
  **/
 public function set_notices()
 {
     parent::set_notices();
     // Check if event has passed
     $gmt_offset = get_option('gmt_offset') >= '0' ? ' +' . get_option('gmt_offset') : " " . get_option('gmt_offset');
     $gmt_offset = str_replace(array('.25', '.5', '.75'), array(':15', ':30', ':45'), $gmt_offset);
     if (!tribe_is_showing_all() && strtotime(tribe_get_end_date(get_the_ID(), false, 'Y-m-d G:i') . $gmt_offset) <= time()) {
         TribeEvents::setNotice('event-past', __('This event has passed.', 'tribe-events-calendar'));
     }
 }
    function front_end($args, $instance)
    {
        extract($args);
        $limit = intval($instance['load']);
        $title = $instance['title'];
        $events = tribe_get_events(array('eventDisplay' => 'upcoming', 'posts_per_page' => $event_count));
        if (!empty($events)) {
            echo $title ? $before_title . $title . $after_title : '';
            foreach ($events as $event) {
                $start_date = strtotime(tribe_get_start_date($event->ID));
                $start_date_day = date('Y-m-d', $start_date);
                $end_date = strtotime(tribe_get_end_date($event->ID));
                $end_date_day = date('Y-m-d', $end_date);
                $all_day = tribe_event_is_all_day($event->ID);
                $time_format = get_option('time_format');
                if ($all_day) {
                    $date_format = date('F jS', $start_date) . '<span>&bullet;</span> <em>' . __('All day', 'espresso') . '</em>';
                } else {
                    if ($end_date_day) {
                        if ($start_date_day == $end_date_day) {
                            $date_format = date('F jS', $start_date) . '<span>&bullet;</span> <em>' . date($time_format, $start_date) . ' &ndash; ' . date($time_format, $end_date) . '</em>';
                        } else {
                            $date_format = date('F jS', $start_date) . ' <em>@ ' . date($time_format, $start_date) . '<br />' . __('to', 'espresso') . '</em> ' . date('F jS', $end_date) . ' <em>@' . date($time_format, $end_date) . '</em>';
                        }
                    }
                }
                ?>
<article class="upcoming-event-block clearfix">
					<h3><a href="<?php 
                echo get_permalink($event->ID);
                ?>
"><?php 
                echo apply_filters('the_title', $event->post_title);
                ?>
</a></h3>
					<small><?php 
                echo $date_format;
                ?>
</small>
					<p><?php 
                echo $event->post_excerpt ? $event->post_excerpt : espressoTruncate($event->post_content, 155) . ' ...';
                ?>
</p>
					<a class="es-button" href="<?php 
                echo get_permalink($event->ID);
                ?>
"><?php 
                _e('Event Information', 'espresso');
                ?>
</a>
				</article><?php 
            }
        }
        wp_reset_query();
    }
 protected function maintain_gap(array &$meta, $original)
 {
     // Original event start/end times and difference between them
     $start = tribe_get_start_date($original->ID, false, Tribe__Events__Date_Utils::DBDATETIMEFORMAT);
     $end = tribe_get_end_date($original->ID, false, Tribe__Events__Date_Utils::DBDATETIMEFORMAT);
     $diff = strtotime($end) - strtotime($start);
     // Adjust new event end time to maintain the same difference
     $start = strtotime($meta['_EventStartDate']);
     $end = $start + $diff;
     $meta['_EventEndDate'] = date(Tribe__Events__Date_Utils::DBDATETIMEFORMAT, $end);
 }
Example #7
0
 /**
  * Get the event date
  *
  * @param int $meta_id
  * @return string
  */
 function event_date($meta_id)
 {
     if (tribe_get_start_date() !== tribe_get_end_date()) {
         // Start & end date
         $html = Tribe_Meta_Factory::template(__('Start:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr updated published dtstart" title="%s">%s</abbr>', tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_start_date()), $meta_id);
         $html .= Tribe_Meta_Factory::template(__('End:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr dtend" title="%s">%s</abbr>', tribe_get_end_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_end_date()), $meta_id);
     } else {
         // If all day event, show only start date
         $html = Tribe_Meta_Factory::template(__('Date:', 'tribe-events-calendar'), sprintf('<abbr class="tribe-events-abbr updated published dtstart" title="%s">%s</abbr>', tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT), tribe_get_start_date()), $meta_id);
     }
     return apply_filters('tribe_event_meta_event_date', $html);
 }
Example #8
0
 /**
  * Set up the notices for this template
  **/
 public function set_notices()
 {
     parent::set_notices();
     $events_label_singular_lowercase = tribe_get_event_label_singular_lowercase();
     global $post;
     // Check if event has passed
     $gmt_offset = get_option('gmt_offset') >= '0' ? ' +' . get_option('gmt_offset') : ' ' . get_option('gmt_offset');
     $gmt_offset = str_replace(array('.25', '.5', '.75'), array(':15', ':30', ':45'), $gmt_offset);
     if (!tribe_is_showing_all() && strtotime(tribe_get_end_date($post, false, 'Y-m-d G:i') . $gmt_offset) <= time()) {
         Tribe__Notices::set_notice('event-past', sprintf(esc_html__('This %s has passed.', 'the-events-calendar'), $events_label_singular_lowercase));
     }
 }
Example #9
0
 /**
  * Compile the schema.org event data into an array
  */
 protected function build_data()
 {
     global $post;
     $id = $post->ID;
     $event_data = parent::build_data();
     $event_data[$id]->{'@type'} = 'Event';
     $event_data[$id]->startDate = get_gmt_from_date(tribe_get_start_date($post, true, Tribe__Events__Date_Utils::DBDATETIMEFORMAT), 'c');
     $event_data[$id]->endDate = get_gmt_from_date(tribe_get_end_date($post, true, Tribe__Events__Date_Utils::DBDATETIMEFORMAT), 'c');
     if (tribe_has_venue($id)) {
         $event_data[$id]->location = new stdClass();
         $event_data[$id]->location->{'@type'} = 'Place';
         $event_data[$id]->location->name = tribe_get_venue($post->ID);
         $event_data[$id]->location->address = strip_tags(str_replace("\n", '', tribe_get_full_address($post->ID)));
     }
     return $event_data;
 }
Example #10
0
 public function form($instance)
 {
     $defaults = array('title' => '', 'type' => 'single-event', 'event' => null, 'show_seconds' => true, 'complete' => esc_attr__('Hooray!', 'tribe-events-calendar-pro'), 'event_ID' => null, 'event_date' => null);
     $instance = wp_parse_args((array) $instance, $defaults);
     if (empty($instance['event'])) {
         $instance['event'] = $instance['event_ID'];
     }
     $limit = apply_filters('tribe_events_pro_countdown_widget_limit', 250);
     $paged = apply_filters('tribe_events_pro_countdown_widget_paged', 1);
     $events = tribe_get_events(array('eventDisplay' => 'list', 'posts_per_page' => $limit, 'paged' => $paged));
     if (is_numeric($instance['event'])) {
         $event = get_post($instance['event']);
         if ($event instanceof WP_Post && !in_array($event->ID, wp_list_pluck($events, 'ID'))) {
             $event->EventStartDate = tribe_get_start_date($event->ID, false, Tribe__Date_Utils::DBDATETIMEFORMAT);
             $event->EventEndDate = tribe_get_end_date($event->ID, false, Tribe__Date_Utils::DBDATETIMEFORMAT);
             $events = array_merge(array($event), $events);
         }
     }
     include Tribe__Events__Pro__Main::instance()->pluginPath . 'src/admin-views/widget-admin-countdown.php';
 }
 /**
  * Intelligently updates our record of the earliest start date/latest event date in
  * the system. If the existing earliest/latest values have not been superseded by the new post's
  * start/end date then no update takes place.
  *
  * This is deliberately hooked into save_post, rather than save_post_tribe_events, to avoid issues
  * where the removal/restoration of hooks within addEventMeta() etc might stop this method from
  * actually being called (relates to a core WP bug).
  *
  * @param int $event_id
  */
 public function update_known_range($event_id)
 {
     $is_earliest_date_marker = in_array($event_id, tribe_get_option('earliest_date_markers', array()));
     $is_latest_date_marker = in_array($event_id, tribe_get_option('latest_date_markers', array()));
     if ($is_earliest_date_marker || $is_latest_date_marker) {
         $this->rebuild_known_range();
         return;
     }
     $current_min = tribe_events_earliest_date();
     $current_max = tribe_events_latest_date();
     $event_start = tribe_get_start_date($event_id, false, Tribe__Date_Utils::DBDATETIMEFORMAT);
     $event_end = tribe_get_end_date($event_id, false, Tribe__Date_Utils::DBDATETIMEFORMAT);
     if ($current_min > $event_start) {
         $this->rebuild_known_range();
         tribe_update_option('earliest_date', $event_start);
     }
     if ($current_max < $event_end) {
         $this->rebuild_known_range();
         tribe_update_option('latest_date', $event_end);
     }
 }
Example #12
0
 /**
  * Fetches the JSON-LD data for this type of object
  *
  * @param  int|WP_Post|null $post The post/event
  * @param  array  $args
  * @return array
  */
 public function get_data($posts = null, $args = array())
 {
     $posts = $posts instanceof WP_Post ? array($posts) : (array) $posts;
     $return = array();
     foreach ($posts as $i => $post) {
         $data = parent::get_data($post, $args);
         // If we have an Empty data we just skip
         if (empty($data)) {
             continue;
         }
         // Fetch first key
         $post_id = key($data);
         // Fetch first Value
         $data = reset($data);
         $event_tz_string = get_post_meta($post_id, '_EventTimezone', true);
         $tz_mode = tribe_get_option('tribe_events_timezone_mode', 'event');
         $tz_string = $event_tz_string && $tz_mode === 'event' ? $event_tz_string : Tribe__Events__Timezones::wp_timezone_string();
         $data->startDate = Tribe__Events__Timezones::to_utc(tribe_get_start_date($post_id, true, Tribe__Date_Utils::DBDATETIMEFORMAT), $tz_string, 'c');
         $data->endDate = Tribe__Events__Timezones::to_utc(tribe_get_end_date($post_id, true, Tribe__Date_Utils::DBDATETIMEFORMAT), $tz_string, 'c');
         if (tribe_has_venue($post_id)) {
             $venue_id = tribe_get_venue_id($post_id);
             $venue_data = Tribe__Events__JSON_LD__Venue::instance()->get_data($venue_id);
             $data->location = reset($venue_data);
         }
         if (tribe_has_organizer($post_id)) {
             $organizer_id = tribe_get_organizer_id($post_id);
             $organizer_data = Tribe__Events__JSON_LD__Organizer::instance()->get_data($organizer_id);
             $data->organizer = reset($organizer_data);
         }
         $price = tribe_get_cost($post_id);
         $price = $this->normalize_price($price);
         if ('' !== $price) {
             // Manually Include the Price for non Event Tickets
             $data->offers = (object) array('@type' => 'Offer', 'price' => $price, 'url' => $data->url);
         }
         $return[$post_id] = $data;
     }
     return $return;
 }
 /**
  * Alters the provided formatted time to include all recurrence times for the day
  *
  * @since 4.0.3
  *
  * @param string $formatted_time Formatted time range for the given event
  * @param int $event_id Event ID
  *
  * @return string
  */
 public function maybe_render_multiple_formatted_times($formatted_time, $event_id)
 {
     if (!tribe_is_recurring_event($event_id)) {
         return $formatted_time;
     }
     $date = tribe_get_start_date($event_id, false, Tribe__Date_Utils::DBDATEFORMAT);
     $time_format = get_option('time_format', Tribe__Date_Utils::TIMEFORMAT);
     $time_range_separator = tribe_get_option('timeRangeSeparator', ' - ');
     $events = $this->get_recurring_events_for_date($event_id, $date);
     $formatted_time = null;
     foreach ($events as $child) {
         $start_time = tribe_get_start_date($child->ID, false, $time_format);
         $end_time = tribe_get_end_date($child->ID, false, $time_format);
         $formatted_time .= '<div class="tribe-recurring-event-time">';
         if ($start_time === $end_time) {
             $formatted_time .= esc_html($start_time);
         } else {
             $formatted_time .= esc_html($start_time . $time_range_separator . $end_time);
         }
         $formatted_time .= '</div>';
     }
     return $formatted_time;
 }
Example #14
0
		<div id="filters-wrap" class="postbox">
			<h3 title="Click to toggle"><?php 
_e('Event Summary', 'tribe-events-calendar');
?>
</h3>



			<table class="eventtable ticket_list">
				<tr>
					<td width="33%" valign="top">
						<?php 
echo sprintf('<h4>%s</h4>', esc_html(__('Event Details', 'tribe-events-calendar')));
echo sprintf('<strong>%s </strong> %s', esc_html(__('Start Date / Time:', 'tribe-events-calendar')), tribe_get_start_date($event_id, false, get_option('date_format') . ' ' . get_option('time_format')));
echo "<br/>";
echo sprintf('<strong>%s </strong> %s', esc_html(__('End Date / Time:', 'tribe-events-calendar')), tribe_get_end_date($event_id, false, get_option('date_format') . ' ' . get_option('time_format')));
$venue_id = tribe_get_venue_id($event_id);
if (!empty($venue_id)) {
    $venue = get_post($venue_id);
}
if (!empty($venue)) {
    echo "<br/>";
    echo sprintf('<strong>%s </strong> %s', esc_html(__('Venue:', 'tribe-events-calendar')), esc_html($venue->post_title));
    $phone = get_post_meta($venue_id, '_VenuePhone', true);
    if (!empty($phone)) {
        echo "<br/>";
        echo sprintf('<strong>%s </strong> %s', esc_html(__('Phone:', 'tribe-events-calendar')), esc_html($phone));
    }
    $website = get_post_meta($venue_id, '_VenueURL', true);
    if (!empty($website)) {
        echo "<br/>";
 public function end_time()
 {
     return tribe_get_end_date(null, false, get_option('time_format', 'H:i'));
 }
 /**
  * Updates the next batch of non-timezone ready events.
  *
  * @param int $batch_size (defaults to -1 meaning "update all")
  */
 public function process($batch_size = -1)
 {
     $site_timezone = Tribe__Timezones::wp_timezone_string();
     foreach ($this->get_ids($batch_size) as $event_id) {
         $local_start_time = tribe_get_start_date($event_id, true, Tribe__Date_Utils::DBDATETIMEFORMAT);
         $utc_start_time = Tribe__Timezones::to_utc($local_start_time, $site_timezone);
         $local_end_time = tribe_get_end_date($event_id, true, Tribe__Date_Utils::DBDATETIMEFORMAT);
         $utc_end_time = Tribe__Timezones::to_utc($local_end_time, $site_timezone);
         // The abbreviation needs to be calculated per event as it can vary according to the actual date
         $site_timezone_abbr = Tribe__Timezones::wp_timezone_abbr($local_start_time);
         update_post_meta($event_id, '_EventTimezone', $site_timezone);
         update_post_meta($event_id, '_EventTimezoneAbbr', $site_timezone_abbr);
         update_post_meta($event_id, '_EventStartDateUTC', $utc_start_time);
         update_post_meta($event_id, '_EventEndDateUTC', $utc_end_time);
     }
 }
Example #17
0
      <div class="thumbnail">
         <?php 
    the_post_thumbnail('thumbnail');
    ?>
      </div>   
   <?php 
}
?>
   <h3 class="tribe-events-month-event-title entry-title summary">
      <a href="<?php 
tribe_event_link($post);
?>
" class="url">
         <?php 
the_title();
?>
      </a>
   </h3>
   <div class="date">
      <i class="fa fa-clock-o"></i><?php 
echo tribe_get_start_date(get_the_id(), false, 'H:i m/d/Y');
?>
      <span> - </span> 
      <?php 
echo tribe_get_end_date(get_the_id(), false, 'H:i m/d/Y');
?>
   </div>
   <div class="clearfix"></div>
</div><!-- #tribe-events-event-# -->

Example #18
0
 *
 * Override this template in your own theme by creating a file at:
 * [your-theme]/tribe-events/modules/meta/details.php
 *
 * @package TribeEventsCalendar
 */
$time_format = get_option('time_format', Tribe__Events__Date_Utils::TIMEFORMAT);
$time_range_separator = tribe_get_option('timeRangeSeparator', ' - ');
$start_datetime = tribe_get_start_date();
$start_date = tribe_get_start_date(null, false);
$start_time = tribe_get_start_date(null, false, $time_format);
$start_ts = tribe_get_start_date(null, false, Tribe__Events__Date_Utils::DBDATEFORMAT);
$end_datetime = tribe_get_end_date();
$end_date = tribe_get_end_date(null, false);
$end_time = tribe_get_end_date(null, false, $time_format);
$end_ts = tribe_get_end_date(null, false, Tribe__Events__Date_Utils::DBDATEFORMAT);
$instructor = get_post_meta(get_the_ID(), 'Instructor', true);
$cost = tribe_get_formatted_cost();
$website = tribe_get_event_website_link();
?>

<div class="tribe-events-meta-group tribe-events-meta-group-details">
	<h3 class="tribe-events-single-section-title"> <?php 
esc_html_e('Details', 'the-events-calendar');
?>
 </h3>
	<dl>

		<?php 
do_action('tribe_events_single_meta_details_section_start');
// All day (multiday) events
 /**
  * Breaks the possible collection of events down by grid date
  *
  * @param string $date Y-m-d formatted date to retrieve events for
  *
  * @return array
  */
 private function get_event_ids_by_day($date)
 {
     if (!$this->event_ids_by_day) {
         $this->event_ids_by_day = array();
         // Let's loop over all of the events in the month and assign them to days
         foreach ($this->events_in_month as $event) {
             // if we're querying by category and the event doesn't have it, skip the event
             if (!empty($this->queried_event_cats)) {
                 if (!has_term($this->queried_event_cats, Tribe__Events__Main::TAXONOMY, $event)) {
                     continue;
                 }
             }
             $event_start = strtotime(tribe_get_start_date($event->ID, true, Tribe__Date_Utils::DBDATETIMEFORMAT));
             $event_end = strtotime(tribe_get_end_date($event->ID, true, Tribe__Date_Utils::DBDATETIMEFORMAT));
             $start = date('Y-m-d', $event_start);
             $end = date('Y-m-d', $event_end);
             $beginning_of_start = $this->get_cutoff_details($start, 'beginning');
             $beginning_of_start_timestamp = $this->get_cutoff_details($start, 'beginning_timestamp');
             $end_of_start = $this->get_cutoff_details($start, 'end');
             $end_of_start_timestamp = $this->get_cutoff_details($start, 'end_timestamp');
             $beginning_of_end = $this->get_cutoff_details($end, 'beginning');
             $beginning_of_end_timestamp = $this->get_cutoff_details($end, 'beginning_timestamp');
             // if the start of the event is earlier than the beginning of the day, consider the event
             // as starting on the day before
             //
             // Example 1:
             // Assuming a cut-off of 6:00am and an event start date/time of August 2nd @ 5:00am. The
             // "start" DATE would be August 2nd and the beginning of the "start" DATE would be August
             // 2nd @ 6:00am. Therefore, the event start DATE shoud be altered to be a day earlier
             // (August 1st) (Note: the following if statement conditional would be true)
             if ($event_start < $beginning_of_start_timestamp) {
                 $start = date('Y-m-d', strtotime('-1 day', strtotime($start)));
             }
             // Subtract a day from the $end if it is:
             // * earlier than the beginning of the start DATE OR
             // * earlier than the beginning of the end DATE OR
             // * earlier than the end of the start DATE (as long as the beginning of the end DATE is greater than that of the start DATE)
             //
             // Example 1:
             // Assuming a cut-off of 6:00am and an event end date/time of August 2nd @ 7:00am. The
             // "end" DATE would be August 2nd and the beginning of the "end" DATE would be August
             // 2nd @ 6:00am. Therefore, the event end DATE shoud remain as August 2nd. (Note: the
             // following if statement conditional would be false)
             //
             // Example 2:
             // Assuming a cut-off of 6:00am and an event end date/time of August 2nd @ 5:00am. The
             // "end" DATE would be August 2nd and the beginning of the "end" DATE would be August
             // 2nd @ 6:00am. Therefore, the event end DATE shoud be altered to be a day earlier
             // (August 1st) (Note: this following if statement conditional would be true)
             if ($event_end < $beginning_of_start_timestamp || $event_end < $beginning_of_end_timestamp || $event_end < $end_of_start_timestamp && $beginning_of_end_timestamp > $end_of_start_timestamp) {
                 $end = date('Y-m-d', strtotime('-1 day', strtotime($end)));
             }
             // determine if there's a difference in days between start and end
             $diff = strtotime($end) - strtotime($start);
             if ($diff > 0) {
                 // There IS a difference. How many days?
                 $diff_in_days = $diff / DAY_IN_SECONDS;
                 // add the event to each day until the event end
                 $new_start = $start;
                 for ($i = 0; $i <= $diff_in_days; $i++) {
                     if (!isset($this->event_ids_by_day[$new_start])) {
                         $this->event_ids_by_day[$new_start] = array();
                     }
                     $this->event_ids_by_day[$new_start][] = $event->ID;
                     $new_start = date('Y-m-d', strtotime('+1 day', strtotime($new_start)));
                 }
             } else {
                 // nope. The event is a single day event. Add it to the array
                 if (!isset($this->event_ids_by_day[$start])) {
                     $this->event_ids_by_day[$start] = array();
                 }
                 $this->event_ids_by_day[$start][] = $event->ID;
             }
         }
         // Now that we've built our event_ids_by_day, let's array_unique and sort
         foreach ($this->event_ids_by_day as &$day) {
             $day = array_unique($day);
             sort($day);
         }
     }
     if (empty($this->event_ids_by_day[$date])) {
         return array();
     }
     return $this->event_ids_by_day[$date];
 }
Example #20
0
 /**
  * Returns json for javascript templating functions throughout the plugin.
  *
  * @category Events
  *
  * @param $event
  * @param $additional
  *
  * @return string
  */
 function tribe_events_template_data($event, array $additional = null)
 {
     $has_image = false;
     $image_src = '';
     $image_tool_src = '';
     $date_display = '';
     //Disable recurring event info in tooltip
     if (class_exists('Tribe__Events__Pro__Main')) {
         $ecp = Tribe__Events__Pro__Main::instance();
         $ecp->disable_recurring_info_tooltip();
         $date_display = strip_tags(tribe_events_event_schedule_details($event));
         // Re-enable recurring event info
         $ecp->enable_recurring_info_tooltip();
     } else {
         $date_display = strip_tags(tribe_events_event_schedule_details($event));
     }
     if (function_exists('has_post_thumbnail') && has_post_thumbnail($event->ID)) {
         $has_image = true;
         $image_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), 'medium');
         $image_src = $image_arr[0];
     }
     if ($has_image) {
         $image_tool_arr = wp_get_attachment_image_src(get_post_thumbnail_id($event->ID), array(75, 75));
         $image_tool_src = $image_tool_arr[0];
     }
     if (has_excerpt($event->ID)) {
         $excerpt = $event->post_excerpt;
     } else {
         $excerpt = $event->post_content;
     }
     $excerpt = Tribe__Events__Main::instance()->truncate($excerpt, 30);
     $category_classes = tribe_events_event_classes($event->ID, false);
     $json = array('eventId' => $event->ID, 'title' => $event->post_title, 'permalink' => tribe_get_event_link($event->ID), 'imageSrc' => $image_src, 'dateDisplay' => $date_display, 'imageTooltipSrc' => $image_tool_src, 'excerpt' => $excerpt, 'categoryClasses' => $category_classes);
     /**
      * Template overrides (of month/tooltip.php) set up in 3.9.3 or earlier may still expect
      * these vars and will break without them, so they are being kept temporarily for
      * backwards compatibility purposes.
      *
      * @todo consider removing in 4.0
      */
     $json['startTime'] = tribe_get_start_date($event);
     $json['endTime'] = tribe_get_end_date($event);
     if ($additional) {
         $json = array_merge((array) $json, (array) $additional);
     }
     $json = apply_filters('tribe_events_template_data_array', $json, $event, $additional);
     $json = tribe_prepare_for_json_deep($json);
     return json_encode($json);
 }
$has_venue_address = $venue_address ? ' location' : '';
// Organizer
$organizer = tribe_get_organizer();
?>

<!-- Event Image -->
<?php 
echo tribe_event_featured_image(null, 'medium');
?>

<!-- Event Time -->
<?php 
$time_format = get_option('time_format', TribeDateUtils::TIMEFORMAT);
$time_range_separator = tribe_get_option('timeRangeSeparator', ' - ');
$start_time = tribe_get_start_date(null, false, $time_format);
$end_time = tribe_get_end_date(null, false, $time_format);
?>

<div class="tribe-events-info">
	<div class="tribe-events-date icon-calendar"><?php 
echo date('j M', strtotime($post->EventStartDate));
?>
</div>
	<!-- <div class="tribe-events-time icon-clock-1"><?php 
echo date('h:ia', strtotime($post->EventStartDate)) . '<br /> - ' . date('h:ia', strtotime($post->EventEndDate));
?>
</div> -->
	<div class="tribe-events-time icon-clock-1"><?php 
echo $start_time . '<br /> ' . $time_range_separator . ' ' . $end_time;
?>
</div>
Example #22
0
 /**
  * Given a date and an event, returns true or false if the event is happening on that date
  * This function properly adjusts for the EOD cutoff and multi-day events
  *
  * @param null $date
  * @param null $event
  *
  * @return mixed|void
  */
 function tribe_event_is_on_date($date = null, $event = null)
 {
     if (null === $date) {
         $date = current_time('mysql');
     }
     if (null === $event) {
         global $post;
         $event = $post;
         if (empty($event)) {
             _doing_it_wrong(__FUNCTION__, esc_html__('The function needs to be passed an $event or used in the loop.', 'the-events-calendar'));
             return false;
         }
     }
     $start_of_day = tribe_beginning_of_day($date, 'U');
     $end_of_day = tribe_end_of_day($date, 'U');
     $event_start = tribe_get_start_date($event, null, 'U');
     $event_end = tribe_get_end_date($event, null, 'U');
     // kludge
     if (!empty($event->_end_date_fixed)) {
         // @todo remove this once we can have all day events without a start / end time
         $event_end = date_create(date(Tribe__Date_Utils::DBDATETIMEFORMAT, $event_end));
         $event_end->modify('+1 day');
         $event_end = $event_end->format('U');
     }
     /* note:
      * events that start exactly on the EOD cutoff will count on the following day
      * events that end exactly on the EOD cutoff will count on the previous day
      */
     $event_is_on_date = Tribe__Date_Utils::range_coincides($start_of_day, $end_of_day, $event_start, $event_end);
     return apply_filters('tribe_event_is_on_date', $event_is_on_date, $date, $event);
 }
}
post_class($alt_text, $post->ID);
$class = ob_get_contents();
ob_end_clean();
?>
<li <?php 
echo $class;
?>
>
	<div class="when">
		<?php 
$space = false;
$output = '';
echo tribe_get_start_date($post->ID);
if (tribe_is_multiday($post->ID) || !$event->AllDay) {
    echo ' - ' . tribe_get_end_date($post->ID);
}
if ($event->AllDay) {
    echo ' <small>(' . __('All Day', 'tribe-events-calendar') . ')</small>';
}
?>
 
	</div>
	<div class="event">
		<a href="<?php 
echo get_permalink($post->ID);
?>
"><?php 
echo $post->post_title;
?>
</a>
Example #24
0
 */
if (!defined('ABSPATH')) {
    die('-1');
}
//Check if any posts were found
if ($posts) {
    ?>

<ol class="hfeed vcalendar">
<?php 
    foreach ($posts as $post) {
        setup_postdata($post);
        $time_format = get_option('time_format', TribeDateUtils::TIMEFORMAT);
        $time_range_separator = tribe_get_option('timeRangeSeparator', ' - ');
        $start_time = tribe_get_start_date($event, false, $time_format);
        $end_time = tribe_get_end_date($event, false, $time_format);
        ?>
	<li class="tribe-events-list-widget-events <?php 
        tribe_events_event_classes();
        ?>
">

		<div class="event-info-box">
			<div class="event-date">
				<span class="icon-calendar"><?php 
        echo date('j M', strtotime($post->EventStartDate));
        ?>
</span>
			</div>
			<div class="event-time">
				<span class="clock icon-clock-1"></span>
               <div class="row">
                  <div class="col-sm-2">
                     <div class="event-date">
                        <?php 
        if (trim(tribe_get_start_date(get_the_ID(), false, 'Y-m-d')) != trim($event_date)) {
            echo '00:00';
        } else {
            echo tribe_get_start_date(get_the_ID(), false, 'H:i');
        }
        ?>
                        <span>-</span>
                        <?php 
        if (trim(tribe_get_end_date(get_the_ID(), false, 'Y-m-d')) != trim($event_date)) {
            echo '23:59';
        } else {
            echo tribe_get_end_date(get_the_ID(), false, 'H:i');
        }
        ?>
                     </div>
                     <div class="clearfix"></div>
                     <div class="event_room text-right">
                        <span><?php 
        echo esc_html($room);
        ?>
</span>
                     </div>
                     <div class="clearfix"></div>
                     <div class="speaker">
                        <?php 
        foreach ($galleries as $key => $_img) {
            echo '<div class="item ' . ($key == 0 ? 'active' : '') . '">';
Example #26
0
 /**
  * Build data attributes for an event; needed for week view js
  *
  * @param $event
  *
  * @return array
  */
 public static function get_event_attributes($event)
 {
     $event = Tribe__Events__Main::postIdHelper($event);
     $event = get_post($event);
     $attrs = array();
     $event_start_timestamp = tribe_get_start_date($event, null, 'U');
     $event_end_timestamp = tribe_get_end_date($event, null, 'U');
     if (tribe_event_is_all_day($event)) {
         $attrs['data-hour'] = 'all-day';
     } else {
         $start_of_day_timestamp = self::get_rounded_beginning_of_day(self::get_current_date());
         $end_of_day_timestamp = tribe_end_of_day(self::get_current_date(), 'U');
         if (has_filter('tribe_events_week_get_hours')) {
             // if we're filtering the hour range on week view, stop the events at that hour
             $last_hour_timestamp = strtotime(self::get_current_date() . tribe_events_week_get_hours('last-hour'));
             $end_of_day_timestamp = min($end_of_day_timestamp, $last_hour_timestamp);
         }
         $data_hour = date('G', $event_start_timestamp);
         $data_min = date('i', $event_start_timestamp);
         if ($event_start_timestamp < $start_of_day_timestamp) {
             if ($event_end_timestamp > $end_of_day_timestamp) {
                 // if there is a day in between start/end we just want to fill the spacer with the total mins in the day.
                 $duration = ($end_of_day_timestamp - $start_of_day_timestamp) / 60;
             } else {
                 $duration = ($event_end_timestamp - $start_of_day_timestamp) / 60;
             }
             $data_hour = date('G', $start_of_day_timestamp);
             $data_min = date('i', $start_of_day_timestamp);
         } elseif ($event_end_timestamp > $end_of_day_timestamp) {
             // if the event is longer than a day we want to account for that with an offset
             $duration = ($end_of_day_timestamp - $event_start_timestamp) / 60;
         } else {
             // for a default event continue as everything is normal
             $remaining_minutes_in_day = $end_of_day_timestamp - $event_start_timestamp / 60;
             $duration = get_post_meta($event->ID, '_EventDuration', true) / 60;
             if ($duration > $remaining_minutes_in_day) {
                 // this will happen in the case of a multi-day event that extends beyond the end of the day
                 $duration = $remaining_minutes_in_day;
             }
         }
         $attrs['data-duration'] = abs($duration);
         $attrs['data-hour'] = $data_hour;
         $attrs['data-min'] = $data_min;
     }
     return $attrs;
 }
Example #27
0
        the_permalink();
        ?>
">
    <?php 
        the_title();
        ?>
  </a><br />
  
  <?php 
        if (tribe_get_start_date() !== tribe_get_end_date()) {
            ?>
    <?php 
            echo tribe_get_start_date();
            ?>
 - <?php 
            echo tribe_get_end_date();
            ?>
  <?php 
        } else {
            ?>
    <?php 
            echo tribe_get_start_date();
            ?>
  <?php 
        }
        ?>
  
  <?php 
        the_content();
        ?>
 /**
  * Convert the event recurrence meta into a human readable string
  *
  * @TODO: there's a great deal of duplication between this method and tribe_events_pro_admin.recurrence.update_rule_recurrence_text (events-recurrence.js)
  *        let's consider generating once (by JS?) and saving the result for re-use instead
  *
  * @param array   $rule
  * @param string  $start_date
  * @param int     $event_id
  *
  * @return string human readable string
  */
 public static function recurrenceToText($rule, $start_date, $event_id)
 {
     $text = '';
     $recurrence_strings = Tribe__Events__Pro__Recurrence__Strings::recurrence_strings();
     $date_strings = self::date_strings();
     $interval = 1;
     $is_custom = false;
     $same_time = true;
     $year_filtered = false;
     $rule['type'] = str_replace(' ', '-', strtolower($rule['type']));
     $rule['end-type'] = str_replace(' ', '-', strtolower($rule['end-type']));
     $formatted_end = _x('an unspecified date', 'An unspecified end date', 'tribe-events-calendar-pro');
     if (!empty($rule['end'])) {
         $formatted_end = date(tribe_get_date_format(true), strtotime($rule['end']));
     }
     // if the type is "none", then there's no rules to parse
     if ('none' === $rule['type']) {
         return;
     }
     // if there isn't an end date, then there isn't a recurrence set up
     if ('on' === $rule['end-type'] && empty($rule['end'])) {
         return;
     }
     if ('custom' === $rule['type']) {
         $is_custom = true;
         $same_time = false;
         if ('yes' === @$rule['custom'][Tribe__Events__Pro__Recurrence__Custom_Types::to_key($rule['custom']['type'])]['same-time']) {
             $same_time = true;
         }
         if ('Yearly' === $rule['custom']['type']) {
             $year_filtered = !empty($rule['custom']['year']['filter']);
         }
     }
     $start_date = strtotime(tribe_get_start_date($event_id, true, Tribe__Date_Utils::DBDATETIMEFORMAT));
     $end_date = strtotime(tribe_get_end_date($event_id, true, Tribe__Date_Utils::DBDATETIMEFORMAT));
     $num_days = floor(($end_date - $start_date) / DAY_IN_SECONDS);
     // make sure we always round hours UP to when dealing with decimal lengths more than 2. Example: 4.333333 would become 4.34
     $num_hours = ceil((($end_date - $start_date) / HOUR_IN_SECONDS - $num_days * 24) * 100) / 100;
     if ($is_custom && 'custom' === $rule['type'] && !$same_time) {
         $formatted_start = date('Y-m-d', $start_date) . ' ' . $rule['custom']['start-time']['hour'] . ':' . $rule['custom']['start-time']['minute'];
         if (isset($rule['custom']['start-time']['meridian'])) {
             $formatted_start .= ' ' . $rule['custom']['start-time']['meridian'];
         }
         if (isset($rule['custom']['duration'])) {
             try {
                 $end_date = new DateTime('@' . $start_date);
                 $end_date->modify('+' . absint($rule['custom']['duration']['days']) . ' days');
                 $end_date->modify('+' . absint($rule['custom']['duration']['hours']) . ' hours');
                 $end_date->modify('+' . absint($rule['custom']['duration']['minutes']) . ' minutes');
                 $formatted_end = Tribe__View_Helpers::is_24hr_format() ? $end_date->format('Y-m-d H:i') : $end_date->format('Y-m-d g:i');
                 $end_date = $end_date->format('U');
             } catch (Exception $e) {
                 // $formatted_end will default to the "unspecified end date" text in this case
             }
         }
         $new_num_days = floor(($end_date - $start_date) / DAY_IN_SECONDS);
         // make sure we always round hours UP to when dealing with decimal lengths more than 2. Example: 4.333333 would become 4.34
         $new_num_hours = ceil((($end_date - $start_date) / HOUR_IN_SECONDS - $new_num_days * 24) * 100) / 100;
     }
     $weekdays = array();
     $months = array();
     $month_number = null;
     $month_day = null;
     $month_day_description = null;
     if ($is_custom && 'Weekly' === $rule['custom']['type'] && !empty($rule['custom']['week']['day'])) {
         foreach ($rule['custom']['week']['day'] as $day) {
             $weekdays[] = $date_strings['weekdays'][$day - 1];
         }
         if (!$weekdays) {
             $weekdays = $date_strings['day_placeholder'];
         } elseif (2 === count($weekdays)) {
             $weekdays = implode(" {$date_strings['collection_joiner']} ", $weekdays);
         } else {
             $weekdays = implode(', ', $weekdays);
             $weekdays = preg_replace('/(.*),/', '$1, ' . $date_strings['collection_joiner'], $weekdays);
         }
     } elseif ($is_custom && 'Monthly' === $rule['custom']['type'] && !empty($rule['custom']['month']['number']) && !empty($rule['custom']['month']['day'])) {
         $month_number = $rule['custom']['month']['number'];
         $month_day = $rule['custom']['month']['day'];
     } elseif ($is_custom && 'Yearly' === $rule['custom']['type'] && !empty($rule['custom']['year']['month-number']) && !empty($rule['custom']['year']['month-day'])) {
         $month_number = $rule['custom']['year']['month-number'];
         $month_day = $rule['custom']['year']['month-day'];
         if (!empty($rule['custom']['year']['month'])) {
             foreach ($rule['custom']['year']['month'] as $month) {
                 $months[] = $date_strings['months'][$month - 1];
             }
         }
         if (!$months) {
             $months = $date_strings['month_placeholder'];
         } elseif (2 === count($months)) {
             $months = implode(" {$date_strings['collection_joiner']} ", $months);
         } else {
             $months = implode(', ', $months);
             $months = preg_replace('/(.*),/', '$1, ' . $date_strings['collection_joiner'], $months);
         }
     }
     $key = $rule['type'];
     if ('custom' === $rule['type']) {
         $key .= "-{$rule['custom']['type']}-{$rule['end-type']}-" . ($same_time ? 'same' : 'diff') . '-time';
         if ('monthly' === $rule['custom']['type'] && is_numeric($month_number)) {
             $key .= '-numeric';
         } elseif ('yearly' === $rule['custom']['type'] && !$year_filtered) {
             $key .= '-unfiltered';
         }
     } else {
         $key = "simple-{$key}";
         $key .= "-{$rule['end-type']}";
     }
     $key = strtolower($key);
     // if custom rules were set but the custom-specific data is missing, then revert to standard
     // rules (weekly, monthly, and yearly)
     if ($is_custom && 'Weekly' === $rule['custom']['type'] && !$weekdays) {
         $key = 'every-week-on';
     } elseif ($is_custom && 'Monthly' === $rule['custom']['type'] && !$month_number && !$month_day) {
         $key = 'every-month-on';
     } elseif ($is_custom && 'Yearly' === $rule['custom']['type'] && !$month_number && !$month_day) {
         $key = 'every-year-on';
     }
     $text = $recurrence_strings[$key];
     switch ($key) {
         case 'simple-every-day-on':
         case 'simple-every-week-on':
         case 'simple-every-month-on':
         case 'simple-every-year-on':
             $text = sprintf($text, $formatted_end);
             break;
         case 'every-day-on':
         case 'every-week-on':
         case 'every-month-on':
         case 'every-year-on':
         case 'every-day-never':
         case 'every-week-never':
         case 'every-month-never':
         case 'every-year-never':
             $text = sprintf($text, $num_days, $num_hours, $formatted_end);
             break;
         case 'every-day-after':
         case 'every-week-after':
         case 'every-month-after':
         case 'every-year-after':
             $text = sprintf($text, $num_days, $num_hours, $rule['end-count']);
             break;
         case 'custom-daily-on-same-time':
         case 'custom-daily-never-same-time':
             $text = sprintf($text, $interval, $num_days, $num_hours, $formatted_end);
             break;
         case 'custom-daily-after-same-time':
             $text = sprintf($text, $interval, $num_days, $num_hours, $rule['end-count']);
             break;
         case 'custom-daily-on-diff-time':
         case 'custom-daily-never-diff-time':
             $text = sprintf($text, $interval, $formatted_start, $new_num_days, $new_num_hours, $formatted_end);
             break;
         case 'custom-daily-after-diff-time':
             $text = sprintf($text, $interval, $formatted_start, $new_num_days, $new_num_hours, $rule['end-count']);
             break;
         case 'custom-weekly-on-same-time':
         case 'custom-weekly-never-same-time':
             $text = sprintf($text, $interval, $weekdays, $num_days, $num_hours, $formatted_end);
             break;
         case 'custom-weekly-after-same-time':
             $text = sprintf($text, $interval, $weekdays, $num_days, $num_hours, $rule['end-count']);
             break;
         case 'custom-weekly-on-diff-time':
         case 'custom-weekly-never-diff-time':
             $text = sprintf($text, $interval, $weekdays, $formatted_start, $new_num_days, $new_num_hours, $formatted_end);
             break;
         case 'custom-weekly-after-diff-time':
             $text = sprintf($text, $interval, $weekdays, $formatted_start, $new_num_days, $new_num_hours, $rule['end-count']);
             break;
         case 'custom-monthly-on-same-time-numeric':
         case 'custom-monthly-never-same-time-numeric':
         case 'custom-monthly-on-same-time':
         case 'custom-monthly-never-same-time':
             $text = sprintf($text, $interval, $month_day_description, $num_days, $num_hours, $formatted_end);
             break;
         case 'custom-monthly-after-same-time-numeric':
         case 'custom-monthly-after-same-time':
             $text = sprintf($text, $interval, $month_day_description, $num_days, $num_hours, $rule['end-count']);
             break;
         case 'custom-monthly-on-diff-time-numeric':
         case 'custom-monthly-never-diff-time-numeric':
         case 'custom-monthly-on-diff-time':
         case 'custom-monthly-never-diff-time':
             $text = sprintf($text, $interval, $month_day_description, $formatted_start, $new_num_days, $new_num_hours, $formatted_end);
             break;
         case 'custom-monthly-after-diff-time-numeric':
         case 'custom-monthly-after-diff-time':
             $text = sprintf($text, $interval, $month_day_description, $formatted_start, $new_num_days, $new_num_hours, $rule['end-count']);
             break;
         case 'custom-yearly-on-same-time-unfiltered':
         case 'custom-yearly-never-same-time-unfiltered':
         case 'custom-yearly-on-same-time':
         case 'custom-yearly-never-same-time':
             $text = sprintf($text, $interval, $months, $month_day_description, $num_days, $num_hours, $formatted_end);
             break;
         case 'custom-yearly-after-same-time-unfiltered':
         case 'custom-yearly-after-same-time':
             $text = sprintf($text, $interval, $months, $month_day_description, $num_days, $num_hours, $rule['end-count']);
             break;
         case 'custom-yearly-on-diff-time-unfiltered':
         case 'custom-yearly-never-diff-time-unfiltered':
         case 'custom-yearly-on-diff-time':
         case 'custom-yearly-never-diff-time':
             $text = sprintf($text, $interval, $months, $month_day_description, $formatted_start, $new_num_days, $new_num_hours, $formatted_end);
             break;
         case 'custom-yearly-after-diff-time-unfiltered':
         case 'custom-yearly-after-diff-time':
             $text = sprintf($text, $interval, $months, $month_day_description, $formatted_start, $new_num_days, $new_num_hours, $rule['end-count']);
             break;
     }
     return $text;
 }
Example #29
0
<div class="tribe-events-meta-group tribe-events-meta-group-details">
	<div class="event-details-container">

		<?php 
do_action('tribe_events_single_meta_details_section_start');
$time_format = get_option('time_format', TribeDateUtils::TIMEFORMAT);
$time_range_separator = tribe_get_option('timeRangeSeparator', ' - ');
$start_datetime = tribe_get_start_date();
$start_date = tribe_get_start_date(null, false);
$start_time = tribe_get_start_date(null, false, $time_format);
$start_ts = tribe_get_start_date(null, false, TribeDateUtils::DBDATEFORMAT);
$end_datetime = tribe_get_end_date();
$end_date = tribe_get_end_date(null, false);
$end_time = tribe_get_end_date(null, false, $time_format);
$end_ts = tribe_get_end_date(null, false, TribeDateUtils::DBDATEFORMAT);
// All day (multiday) events
if (tribe_event_is_all_day() && tribe_event_is_multiday()) {
    ?>

			<div class="event-details-item">
				<span class="icon-info"><?php 
    _e('Start:', 'vh');
    ?>
 </span>
				<div class="tribe-events-abbr updated published dtstart" title="<?php 
    echo $start_ts;
    ?>
"> <?php 
    echo $start_date;
    ?>
Example #30
0
 /**
  * Intelligently updates our record of the earliest start date/latest event date in
  * the system. If the existing earliest/latest values have not been superseded by the new post's
  * start/end date then no update takes place.
  *
  * This is deliberately hooked into save_post, rather than save_post_tribe_events, to avoid issues
  * where the removal/restoration of hooks within addEventMeta() etc might stop this method from
  * actually being called (relates to a core WP bug).
  */
 public function update_known_range($object_id)
 {
     $current_min = tribe_events_earliest_date();
     $current_max = tribe_events_latest_date();
     $event_start = tribe_get_start_date($object_id, false, Tribe__Events__Date_Utils::DBDATETIMEFORMAT);
     $event_end = tribe_get_end_date($object_id, false, Tribe__Events__Date_Utils::DBDATETIMEFORMAT);
     if ($current_min > $event_start) {
         tribe_update_option('earliest_date', $event_start);
     }
     if ($current_max < $event_end) {
         tribe_update_option('latest_date', $event_end);
     }
 }