Created
November 15, 2016 17:20
-
-
Save joshfeck/f0d703f186bc4689f02741205541d576 to your computer and use it in GitHub Desktop.
This is an alternative way to display dates and times for the Event Espresso event page. Formats a single date time that spans multiple days as “Starts at <time> on <date> Ends at <time> on <date>”.
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 | |
//* Please do NOT include the opening php tag, except of course if you're starting with a blank file | |
function espresso_list_of_event_dates( $EVT_ID = 0, $date_format = '', $time_format = '', $echo = TRUE, $show_expired = NULL, $format = TRUE, $add_breaks = TRUE, $limit = NULL ) { | |
$date_format = ! empty( $date_format ) ? $date_format : get_option( 'date_format' ); | |
$time_format = ! empty( $time_format ) ? $time_format : get_option( 'time_format' ); | |
$date_format = apply_filters( 'FHEE__espresso_list_of_event_dates__date_format', $date_format ); | |
$time_format = apply_filters( 'FHEE__espresso_list_of_event_dates__time_format', $time_format ); | |
EE_Registry::instance()->load_helper( 'Event_View' ); | |
$datetimes = EEH_Event_View::get_all_date_obj( $EVT_ID, $show_expired, FALSE, $limit ); | |
if ( ! $format ) { | |
return apply_filters( 'FHEE__espresso_list_of_event_dates__datetimes', $datetimes ); | |
} | |
if ( is_array( $datetimes ) && ! empty( $datetimes )) { | |
global $post; | |
$html = $format ? '<ul id="ee-event-datetimes-ul-' . $post->ID . '" class="ee-event-datetimes-ul">' : ''; | |
foreach ( $datetimes as $datetime ) { | |
if ( $datetime instanceof EE_Datetime ) { | |
$html .= '<li id="ee-event-datetimes-li-' . $datetime->ID() . '" class="ee-event-datetimes-li">'; | |
$datetime_name = $datetime->name(); | |
$html .= ! empty( $datetime_name ) ? '<strong>' . $datetime_name . '</strong>' : ''; | |
$html .= ! empty( $datetime_name ) && $add_breaks ? '<br />' : ''; | |
$html .= '<span class="dashicons dashicons-calendar"></span>'; | |
$d1 = $datetime->start_date(); | |
$d2 = $datetime->end_date(); | |
$t1 = $datetime->start_time(); | |
$t2 = $datetime->end_time(); | |
if ($d1 == $d2) { | |
$html .= $datetime->start_date($date_format) . ' ' . $datetime->time_range( $time_format ); | |
} else { | |
$html .= 'Starts at ' . $t1 . ' on ' . $d1; | |
$html .= '<br>'; | |
$html .= 'Ends at ' . $t2 . ' on ' . $d2; | |
} | |
$datetime_description = $datetime->description(); | |
$html .= ! empty( $datetime_description ) && $add_breaks ? '<br />' : ''; | |
$html .= ! empty( $datetime_description ) ? ' - ' . $datetime_description : ''; | |
$html = apply_filters( 'FHEE__espresso_list_of_event_dates__datetime_html', $html, $datetime ); | |
$html .= '</li>'; | |
} | |
} | |
$html .= $format ? '</ul>' : ''; | |
} else { | |
$html = $format ? '<p><span class="dashicons dashicons-marker"></span>' . __( 'There are no upcoming dates for this event.', 'event_espresso' ) . '</p><br/>' : ''; | |
} | |
if ( $echo ) { | |
echo $html; | |
return ''; | |
} | |
return $html; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment