-
-
Save Pebblo/a2e7996e789e4dbff0dc98a9ebb7ffc7 to your computer and use it in GitHub Desktop.
Template example.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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) ? __('Register', '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 | |
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"> | |
<label><?php echo __('Category Filter', 'event_espresso'); ?></label> | |
<select class="" id="ee_filter_cat"> | |
<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 ($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('Date','event_espresso'); ?></th> | |
<th class="th-group"><?php _e('Day','event_espresso'); ?></th> | |
<th class="th-group"><?php _e('Time','event_espresso'); ?></th> | |
<th class="th-group"><?php _e('Location','event_espresso'); ?></th> | |
<th class="th-group"><?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> | |
<td colspan=“6”> | |
<div class="pagination pagination-centered"></div> | |
</td> | |
</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 = ''; | |
foreach ( $event_categories as $term ) { | |
$category_slugs[] = $term->slug; | |
} | |
$category_slugs = implode(' ', $category_slugs); | |
} else { | |
// event has no terms | |
$category_slugs = ''; | |
} | |
} | |
//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.'" 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" href="'.$registration_url.'">'.$sold_out_button_text.'</a>'; | |
} | |
$datetimes = EEM_Datetime::instance()->get_datetimes_for_event_ordered_by_start_time( $post->ID, $show_expired, false, 1 ); | |
$datetime = end( $datetimes ); | |
//let's use date_i18n on the correct offset for the timestamp. Note it seems like we're doing a lot of | |
//unnecessary conversion but this is so it works with two different pardigmas in the EE core datetime | |
//system, without users having to worry about updating. | |
$startdate = date_i18n( $date_format, strtotime( $datetime->start_date_and_time('Y-m-d', 'H:i:s') ) ); | |
$venue_obj = $event->venues(); | |
$venue_obj = !empty( $venue_obj ) ? array_shift( $venue_obj ) : NULL; | |
if ( $venue_obj instanceof EE_Venue ) { | |
$city = $venue_obj->city(); | |
$state_province = $venue_obj->state(); | |
} | |
$city = isset($city) ? $city : ''; | |
$state_province = isset($state_province) ? $state_province : ''; | |
if ( ! ($event->is_sold_out() || $event->is_sold_out( TRUE ) ) ) { | |
// grab array of EE_Ticket objects for event | |
$tickets = espresso_event_tickets_available( $post->ID, FALSE, FALSE ); | |
// 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'); | |
} | |
?> | |
<tr class="espresso-table-row <?php echo $category_slugs; ?>"> | |
<td class="start_date event-<?php echo $post->ID; ?>" data-value="<?php echo $datetime->get_raw( 'DTT_EVT_start' ); ?>"> | |
<?php | |
$datetimes = EEM_Datetime::instance()->get_datetimes_for_event_ordered_by_start_time( $post->ID, $show_expired, false ); | |
foreach ($datetimes as $datetime) { | |
echo date_i18n( $date_format, strtotime( $datetime->start_date_and_time('Y-m-d', 'H:i:s') ) ); | |
echo '<br/>'; | |
} | |
?> | |
</td> | |
<td class="day_of_week event-<?php echo $post->ID; ?>"><?php espresso_event_date_range( 'l', ' ', 'l', ' ', $event->ID() ); ?></td> | |
<td class="day_of_week event-<?php echo $post->ID; ?>"><?php espresso_event_date_range( 'g:i a', ' ', ' ', ' ', $event->ID() ); ?></td> | |
<td class="venue_city event-<?php echo $post->ID; ?>"><?php echo $city . ', ' . $state_province; ?></td> | |
<td class="starting_from_pricing event-<?php echo $post->ID; ?>"><?php echo $ticket_price; ?></td> | |
<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; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment