Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Options
- $date_format = get_option( 'date_format' );
- $time_format = get_option( 'time_format' );
- // Load Venue View Helper
- EE_Registry::instance()->load_helper('Venue_View');
- //Defaults
- $reg_button_text = !isset($reg_button_text) ? __('Book Now', 'event_espresso') : $reg_button_text;
- $alt_button_text = !isset($alt_button_text) ? __('View Details', 'event_espresso') : $alt_button_text;//For alternate registration pages
- $sold_out_button_text = !isset($sold_out_button_text) ? __('Sold Out', 'event_espresso') : $sold_out_button_text;//For sold out events
- $category_filter_text = !isset($category_filter_text) ? __('Training Course', 'event_espresso') : $category_filter_text;
- if ( have_posts() ) :
- // allow other stuff
- do_action( 'AHEE__espresso_events_table_template_template__before_loop' );
- ?>
- <?php if ($category_filter != 'false'){ ?>
- <p class="category-filter cat-filter-selector">
- <label><?php echo $category_filter_text; ?></label>
- <select class="" id="ee_filter_category">
- <option class="ee_filter_show_all"><?php echo __('Show All', 'event_espresso'); ?></option>
- <?php
- $taxonomy = array('espresso_event_categories');
- $args = array('orderby'=>'name','hide_empty'=>true);
- $ee_terms = get_terms($taxonomy, $args);
- foreach($ee_terms as $term){
- echo '<option class="' . $term->slug . '">'. $term->name . '</option>';
- }
- ?>
- </select>
- </p>
- <?php } ?>
- <?php if ($venue_filter != 'false'){ ?>
- <p class="category-filter loc-filter-selector">
- <label><?php echo 'Location'; ?></label>
- <select class="" id="ee_filter_venue">
- <option class="ee_filter_venue_show_all"><?php echo __('Show All', 'event_espresso'); ?></option>
- <?php
- $taxonomy = array('espresso_event_venues');
- $args = array('orderby'=>'name','hide_empty'=>true);
- $ee_terms = get_terms($taxonomy, $args);
- ?>
- <?php
- while ( have_posts() ) : the_post();
- global $post;
- $event = EEH_Event_View::get_event();
- $venue_city = '';
- // get first related venue and convert to CSV string
- $venue = $event->venues(array('limit' => 1));
- if (is_array($venue) && ! empty($venue)) {
- $venue = array_shift($venue);
- if ($venue instanceof EE_Venue) {
- $venue_city = $venue->city();
- }
- }
- echo'<option value="'. $venue_city .'">'. $venue_city .'</option>';
- endwhile;
- ?>
- </select>
- </p>
- <?php } ?>
- <?php if ($footable != 'false' && $table_search != 'false'){ ?>
- <p>
- <?php echo __('Search:', 'event_espresso'); ?> <input id="filter" type="text"/>
- </p>
- <?php } ?>
- <table id="ee_filter_table" class="espresso-table footable table" data-page-size="<?php echo $table_pages; ?>" data-filter="#filter">
- <thead class="espresso-table-header-row">
- <tr>
- <th class="th-group"><?php _e('Event','event_espresso'); ?></th>
- <?php if( $show_venues ) { ?>
- <th class="th-group"><?php _e('Location','event_espresso'); ?></th>
- <?php } ?>
- <th class="th-group"><?php _e('Start Date','event_espresso'); ?></th>
- <th class="th-group" data-sort-ignore="true"><?php _e('Trainer','event_espresso'); ?></th>
- <th class="th-group" data-sort-ignore="true"><?php _e('Price','event_espresso'); ?></th>
- <th class="th-group" data-sort-ignore="true"></th>
- </tr>
- </thead>
- <?php if ($footable != 'false' && $table_paging != 'false'){ ?>
- <tfoot>
- <tr>
- <?php echo '<td colspan="' . ($show_venues ? '6' : '5') . '">'; ?>
- <div class="pagination pagination-centered"></div>
- </tr>
- </tfoot>
- <?php } ?>
- <tbody>
- <?php
- // Start the Loop.
- while ( have_posts() ) : the_post();
- // Include the post TYPE-specific template for the content.
- global $post;
- //Debug
- //d( $post );
- //Get the category for this event
- $event = EEH_Event_View::get_event();
- if ( $event instanceof EE_Event ) {
- if ( $event_categories = get_the_terms( $event->ID(), 'espresso_event_categories' )) {
- // loop thru terms and create links
- $category_slugs = array();
- foreach ( $event_categories as $term ) {
- $category_slugs[] = $term->slug;
- }
- $category_slugs = implode(' ', $category_slugs);
- } else {
- // event has no terms
- $category_slugs = '';
- }
- $venue_city = '';
- // get first related venue and convert to CSV string
- $venue = $event->venues(array('limit' => 1));
- if (is_array($venue) && ! empty($venue)) {
- $venue = array_shift($venue);
- if ($venue instanceof EE_Venue) {
- $venue_city = $venue->city();
- }
- }
- }
- //Create the event link
- $external_url = $post->EE_Event->external_url();
- $button_text = !empty($external_url) ? $alt_button_text : $reg_button_text;
- $registration_url = !empty($external_url) ? $post->EE_Event->external_url() : $post->EE_Event->get_permalink();
- //Create the register now button
- $live_button = '<a id="a_register_link-'.$post->ID.'" class="a_register_link" href="'.$registration_url.'">'.$button_text.'</a>';
- if ( $event->is_sold_out() || $event->is_sold_out(TRUE ) ) {
- $live_button = '<a id="a_register_link-'.$post->ID.'" class="a_register_link_sold_out a_register_link" href="'.$registration_url.'">'.$sold_out_button_text.'</a>';
- }
- // If the show_all_datetimes parameter is set set the limit to NULL to pull them all,
- // if not default to only display a single datetime.
- $datetime_limit = $show_all_datetimes ? NULL : 1;
- // Pull the datetimes for this event order by start_date/time
- // $datetimes = EEM_Datetime::instance()->get_datetimes_for_event_ordered_by_start_time( $post->ID, $show_expired, false, $datetime_limit );
- // Reset the datetimes pointer to the earliest datetime and use that one.
- //$datetime = reset( $datetimes );
- $datetimes = EEM_Datetime::instance()->get_datetimes_for_event_ordered_by_start_time( $post->ID, $show_expired, false, 1 );
- $datetime = end( $datetimes );
- if ( ! $event->is_sold_out() ) {
- // grab array of EE_Ticket objects for event
- $tickets = EEH_Event_View::event_tickets_available( $post->ID );
- // grab first ticket from array
- $ticket = reset( $tickets );
- //check if the ticket is free, if set the ticket price to 'Free'
- if ( $ticket instanceof EE_Ticket ) {
- $ticket_price = $ticket->pretty_price();
- $ticket_price_data_value = $ticket->price();
- $ticket_price = $ticket_price_data_value == 0 ? __( 'Free', 'event_espresso' ) : $ticket_price;
- }
- //Get the remaining ticket values for the next datetime.
- $tickets_remaining = $datetime->tickets_remaining() === EE_INF ? __('Unlimited','event_espresso') : $datetime->tickets_remaining();
- } else {
- //The event is sold out, set the ticket price to 'N/A'
- $ticket_price = __( 'N/A', 'event_espresso');
- }
- // Pull trainer for this event
- $people = EEM_Person::instance()->get_people_for_event_and_type($event_id = $post->ID, $people_type_id = 24);
- if ($datetime instanceof EE_Datetime) {
- ?>
- <tr class="espresso-table-row <?php echo $category_slugs; ?> <?php echo $venue_city; ?>">
- <td class="event_title event-<?php echo $post->ID; ?>"><a href="<?php echo $registration_url; ?>"><?php echo $post->post_title; ?></a></td>
- <?php if( $show_venues ) { ?>
- <td class="venue_title event-<?php echo $post->ID; ?>"><?php echo $venue_city; ?></td>
- <?php } ?>
- <td class="start_date event-<?php echo $post->ID; ?>" data-value="<?php echo $datetime->get_raw( 'DTT_EVT_start' ); ?>-<?php echo $datetime->get_raw( 'DTT_EVT_end' ); ?>">
- <ul class="ee-table-view-datetime-list">
- <?php
- // Loop over each datetime we have pulled from the database and output
- foreach ($datetimes as $datetime) {
- $startDateTime = $datetime->get_raw( 'DTT_EVT_start' );
- $endDateTime = $datetime->get_raw( 'DTT_EVT_end' );
- $start = new DateTime();
- $start->setTimestamp($startDateTime);
- $end = new DateTime();
- $end->setTimestamp($endDateTime);
- $interval = $start->diff($end);
- $intervalInteger = $interval->format('%d');
- $intervalInteger += 1;
- ?>
- <li class="datetime-id-<?php echo $datetime->ID(); ?>">
- <?php echo date_i18n( $date_format, strtotime( $datetime->start_date_and_time('Y-m-d', 'H:i:s') ) ); ?>
- <!-- to <?php echo date_i18n( $date_format, strtotime( $datetime->end_date_and_time('Y-m-d', 'H:i:s') ) ); ?> -->
- - <?php echo $intervalInteger ?> <?php echo $intervalInteger > 1 ? 'days' : 'day' ?>
- </li>
- <?php
- //end foreach $datetimes
- }
- ?>
- </ul>
- </td>
- <td class="trainer"><?php
- // Loop over each datetime we have pulled from the database and output
- foreach ($people as $people) {
- ?><a href="<?php echo get_permalink( $people->ID() ); ?>" target="_blank"><?php echo $people->full_name(); ?></a><br />
- <?php
- //end foreach $people
- }
- ?>
- </td>
- <td class="price"><?php echo $ticket_price; ?>
- </td>
- </th>
- <td class="td-group reg-col" nowrap="nowrap"><?php echo $live_button; ?></td>
- </tr>
- <?php
- }
- endwhile;
- echo '</table>';
- // allow moar other stuff
- do_action( 'AHEE__espresso_events_table_template_template__after_loop' );
- else :
- // If no content, include the "No posts found" template.
- espresso_get_template_part( 'content', 'none' );
- endif;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement