Last active
February 27, 2025 13:26
-
-
Save Pebblo/ac4b410e2c411a5ae2c8128fd8ef770f to your computer and use it in GitHub Desktop.
Template file used to output /people/{person-name}/ and display the related events. This template only pulls in Upcoming events rather than all.
This file contains hidden or 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 | |
/** | |
* Template file to add extra content to a single person display | |
* Note: To customize, just copy the template from /public/templates/* and put in your theme folder. | |
* | |
* @since 1.0.0 | |
* @package EE People Addon | |
* @subpackage template | |
* @author Tony Warwick | |
*/ | |
global $post; | |
//Get all upcoming events for this person. | |
$primary_obj_type = 'Event'; | |
$events = []; | |
$where = [ | |
'PER_ID' => $post->ID, | |
'OBJ_type' => $primary_obj_type, | |
'Event.Datetime.DTT_EVT_start' => [ '>', EEM_Datetime::instance()->current_time_for_query('DTT_EVT_start') ], | |
]; | |
$query = [ $where ]; | |
$object_items = EEM_Person_Post::instance()->get_all($query); | |
$term_name_cache = []; | |
if (method_exists(EEM_Event::instance(), 'public_event_stati')) { | |
$public_event_stati = EEM_Event::instance()->public_event_stati(); | |
} else { | |
$public_event_stati = get_post_stati([ 'public' => true ]); | |
foreach (EEM_Event::instance()->get_custom_post_statuses() as $custom_post_status) { | |
$public_event_stati[] = strtolower(str_replace(' ', '_', $custom_post_status)); | |
} | |
} | |
foreach ($object_items as $object_item) { | |
if (! isset($term_name_cache[ $object_item->get('PT_ID') ]) || ! isset($events[ $term_name ][ $object_item->ID() ])) { | |
$term_name = EEM_Term_Taxonomy::instance()->get_one_by_ID($object_item->get('PT_ID'))->get_first_related('Term')->get('name'); | |
$related_object = $object_item->get_first_related($primary_obj_type, [ [ 'status' => [ | |
'IN', apply_filters('FHEE__EEH_People_View__get_rel_objects__public_event_stati', $public_event_stati) | |
] ] ]); | |
if ($related_object instanceof EE_Base_Class) { | |
$events[ $term_name ][ $object_item->ID() ] = $related_object; | |
$term_name_cache[ $object_item->get('PT_ID') ] = $term_name; | |
} | |
} | |
} | |
?> | |
<div class="eea-people-addon-person-events-container"> | |
<?php if ($events) : ?> | |
<h3><?php _e('Events this person is involved with:', 'event_espresso'); ?></h3> | |
<?php foreach ($events as $type => $event) : ?> | |
<div class="eea-people-addon-people-type-container"> | |
<h4 class="eea-people-addon-people-type-label"><?php echo $type; ?></h4> | |
<ul class="eea-people-addon-event-list-ul"> | |
<?php foreach ($event as $evt) : ?> | |
<li> | |
<a class="eea-people-addon-link-to-event" href="<?php echo get_permalink($evt->ID()); ?>" | |
title="<?php printf(__('Click here to view more info about %s', 'event_espresso'), $evt->name()); ?>"> | |
<span class="eea-people-addon-event-name"><?php echo $evt->name(); ?></span></a> | |
</li> | |
<?php endforeach; ?> | |
</ul> | |
</div> | |
<?php endforeach; ?> | |
<?php endif; ?> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment