Skip to content

Instantly share code, notes, and snippets.

@joshfeck
Created March 27, 2015 20:26
Show Gist options
  • Save joshfeck/da5a4407e66e8d61addc to your computer and use it in GitHub Desktop.
Save joshfeck/da5a4407e66e8d61addc to your computer and use it in GitHub Desktop.
Modification for the Diarise theme (WooThemes). Adds Event Espresso 4 events to the home page calendar.
<?php
// First part of the modification happens in the first loop
// The first loop starts after the comment that says:
//Improved Diarise get events query
// Before the query, you add a post_type query argument:
$query_args['post_type'] = array('post', 'espresso_events');
// Now here's the original loop #1:
if ($the_query->have_posts()) : $count = 0;
while ($the_query->have_posts()) : $the_query->the_post();
//add post to array
global $post;
$event_start_date = get_post_meta($post->ID,'event_start_date',true);
$event_end_date = get_post_meta($post->ID,'event_end_date',true);
if ($event_end_date == '') { $event_end_date = $event_start_date; }
if ( ( $event_start_date != '' ) && ( $event_end_date != '' ) ) {
$time_start = strtotime($event_start_date);
$time_end = strtotime($event_end_date);
$start_range = strtotime($woo_start_calendar_range);
$end_range = strtotime($woo_end_calendar_range);
if ( ( ( $time_start <= $start_range ) && ( $time_end >= $start_range ) ) || ( ( $time_start >= $start_range ) && ( $time_end <= $end_range ) ) || ( ( $time_start <= $end_range ) && ( $time_end >= $end_range ) ) ) {
$search_results[$post->ID] = array( 'ID' => $post->ID , 'start' => $time_start , 'end' => $time_end );
}
}
endwhile; else:
//no posts
endif;
// Here's the modified loop #1 that adds the Event Espresso events:
if ($the_query->have_posts()) : $count = 0;
while ($the_query->have_posts()) : $the_query->the_post();
//add post to array
global $post;
// Add Event Espresso events
if (get_post_type() == 'espresso_events' ){
EE_Registry::instance()->load_helper( 'Event_View' );
$event = EEH_Event_View::get_event( get_the_ID() );
if ( $event instanceof EE_Event ) {
$event_start_date = espresso_event_date('m/d/Y', '', get_the_ID(), false);
$event_end_date = espresso_event_end_date('m/d/Y', '', get_the_ID(), false);
$event_start_date = date('m/d/Y', strtotime($event_start_date));
$event_end_date = date('m/d/Y', strtotime($event_end_date));
}
} else {
$event_start_date = get_post_meta($post->ID,'event_start_date',true);
$event_end_date = get_post_meta($post->ID,'event_end_date',true);
}
// End adding Event Espresso events
if ($event_end_date == '') { $event_end_date = $event_start_date; }
if ( ( $event_start_date != '' ) && ( $event_end_date != '' ) ) {
$time_start = strtotime($event_start_date);
$time_end = strtotime($event_end_date);
$start_range = strtotime($woo_start_calendar_range);
$end_range = strtotime($woo_end_calendar_range);
if ( ( ( $time_start <= $start_range ) && ( $time_end >= $start_range ) ) || ( ( $time_start >= $start_range ) && ( $time_end <= $end_range ) ) || ( ( $time_start <= $end_range ) && ( $time_end >= $end_range ) ) ) {
$search_results[$post->ID] = array( 'ID' => $post->ID , 'start' => $time_start , 'end' => $time_end );
}
}
endwhile; else:
//no posts
endif;
// Later down the file, there's a second loop that actually displays the events on the calendar
// Here's the start of the original loop #2
foreach ($event_results as $event_result) {
$query_args['post__in'] = array($event_result);
?>
<?php query_posts($query_args); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php
//Post Meta
$event_start_date = get_post_meta($post->ID,'event_start_date',true);
$event_end_date = get_post_meta($post->ID,'event_end_date',true);
$event_start_time = get_post_meta($post->ID,'event_start_time',true);
$event_end_time = get_post_meta($post->ID,'event_end_time',true);
$event_location = get_post_meta($post->ID,'event_location',true);
$maps_active = get_post_meta($post->ID,'woo_maps_enable',true);
// Here's the modified loop #2 that adds Event Espresso events:
foreach ($event_results as $event_result) {
$query_args['post__in'] = array($event_result);
?>
<?php query_posts($query_args); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php
//Post Meta
if (get_post_type() == 'espresso_events' ){
EE_Registry::instance()->load_helper( 'Event_View' );
$event = EEH_Event_View::get_event( get_the_ID() );
if ( $event instanceof EE_Event ) {
$event_start_date = espresso_event_date('m/d/Y', '', get_the_ID(), false);
$event_end_date = espresso_event_end_date('m/d/Y', '', get_the_ID(), false);
$event_start_date = date('m/d/Y', strtotime($event_start_date));
$event_end_date = date('m/d/Y', strtotime($event_end_date));
$event_start_time = date('g:i', strtotime($event_start_date));
$event_end_time = date('g:i', strtotime($event_end_date));
$event_location = EEH_Venue_View::venue_name();
}
} else {
$event_start_date = get_post_meta($post->ID,'event_start_date',true);
$event_end_date = get_post_meta($post->ID,'event_end_date',true);
$event_start_time = get_post_meta($post->ID,'event_start_time',true);
$event_end_time = get_post_meta($post->ID,'event_end_time',true);
$event_location = get_post_meta($post->ID,'event_location',true);
}
$maps_active = get_post_meta($post->ID,'woo_maps_enable',true);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment