/** * Replace featured images with the Eventbrite event logo. * * @access public * * @param string $html Original unfiltered HTML for a featured image. * @param int $post_id The current event ID. * @return string HTML <img> tag for the Eventbrite logo linked to the event single view. */ public function filter_event_logo($html, $post_id) { // Are we dealing with an Eventbrite event? if (eventbrite_is_event()) { $html = ''; // Get our event. $event = Eventbrite_Event::get_instance($post_id); // Does the event have a logo set? if (!empty($event->logo_url)) { // No need for a permalink on event single views. if (eventbrite_is_single()) { $html = '<img src="' . esc_url($event->logo_url) . '" class="wp-post-image">'; } else { $html = sprintf('<a class="post-thumbnail" href="%1$s"><img src="%2$s" class="wp-post-image"></a>', esc_url(get_the_permalink()), esc_url($event->logo_url)); } } } return $html; }
/** * Adjust body classes when our Eventbrite templates are in use. * * @access public * * @param array $classes Unfiltered body classes * @return array Filtered body classes */ public function adjust_body_classes($classes) { // Check if we're loading an Eventbrite single view. if (eventbrite_is_single()) { $classes[] = 'single'; $classes[] = 'single-event'; $key = array_search('page', $classes); unset($classes[$key]); } elseif ('eventbrite-index.php' == get_post_meta(get_the_ID(), '_wp_page_template', true)) { $classes[] = 'archive'; $classes[] = 'archive-eventbrite'; foreach (array('page', 'singular') as $value) { $key = array_search($value, $classes); unset($classes[$key]); } } return $classes; }
/** * Output Eventbrite event information such as date, time, venue, and organizer */ function writr_eventbrite_event_meta() { // Start with the event time. $time = sprintf('<li class="event-time"><span class="screen-reader-text">%s</span>%s</li>', esc_html__('Event date and time', 'writr'), eventbrite_event_time()); // Add a venue name if available. $venue = ''; if (!empty(eventbrite_event_venue()->name)) { $venue = sprintf('<li class="event-venue"><span class="screen-reader-text">%s</span><a class="event-venue-link url fn n" href="%s">%s</a></li>', esc_html__('Venue', 'writr'), esc_url(eventbrite_venue_get_archive_link()), esc_html(eventbrite_event_venue()->name)); } // Add the organizer's name if available. Author-related functions are filtered to use the event's organizer. $organizer = ''; if (!empty(eventbrite_event_organizer()->name)) { $organizer = sprintf('<li class="event-organizer"><span class="screen-reader-text">%s</span><a class="event-organizer-link url fn n" href="%s">%s</a></li>', esc_html__('Organizer', 'writr'), esc_url(get_author_posts_url(get_the_author_meta('ID'))), esc_html(get_the_author())); } // Add a contextual link to event details. if (eventbrite_is_single()) { // Link to event info on eventbrite.com. $url = add_query_arg(array('ref' => 'wporglink'), eventbrite_event_eb_url()); } else { // Link to the event single view. $url = get_the_permalink(); } $details = sprintf('<li class="event-details"><a class="event-details-link" href="%s">%s</a></li>', esc_url($url), esc_html__('Details', 'writr')); // Add an event Edit link. $edit = ''; if (current_user_can('edit_posts')) { $url = add_query_arg(array('eid' => get_the_ID(), 'ref' => 'wporgedit'), 'https://eventbrite.com/edit'); $edit = sprintf('<li class="event-edit"><a href="%s">%s</a></li>', esc_url($url), esc_html__('Edit', 'writr')); } // Assemble our HTML. Yugly. $html = sprintf('<ul class="clear">%1$s%2$s%3$s%4$s%5$s</ul>', $time, $venue, $organizer, $details, $edit); echo apply_filters('eventbrite_event_meta', $html, $time, $venue, $organizer, $details, $edit); }
/** * Output event information such as date, time, venue, and organizer */ function eventbrite_event_meta() { // Determine our separator. $separator = apply_filters('eventbrite_meta_separator', '<span class="sep"> · </span>'); // Start our HTML output with the event time. $time = '<span class="event-time">' . eventbrite_event_time() . '</span>'; // Add a venue name if available. $venue = ''; if (!empty(eventbrite_event_venue()->name)) { $venue = sprintf('%s<span class="event-venue"><a class="event-venue-link url fn n" href="%s"><span class="event-venue-text">%s</span></a></span>', wp_kses($separator, array('span' => array('class' => array()))), esc_url(eventbrite_venue_get_archive_link()), esc_html(eventbrite_event_venue()->name)); } // Add the organizer's name if available. Author-related functions are filtered to use the event's organizer. $organizer = ''; if (!empty(eventbrite_event_organizer()->name)) { $organizer = sprintf('%s<span class="event-organizer"><a class="event-organizer-link url fn n" href="%s"><span class="event-organizer-text">%s</span></a></span>', wp_kses($separator, array('span' => array('class' => array()))), esc_url(get_author_posts_url(get_the_author_meta('ID'))), esc_html(get_the_author())); } // Add a contextual link to event details. if (eventbrite_is_single()) { // Link to event info on eventbrite.com. $url = add_query_arg(array('ref' => 'wporglink'), eventbrite_event_eb_url()); } else { // Link to the event single view. $url = get_the_permalink(); } $details = sprintf('%s<span class="event-details"><a class="event-details-link" href="%s"><span class="event-details-text">%s</span></a></span>', wp_kses($separator, array('span' => array('class' => array()))), esc_url($url), esc_html__('Details', 'eventbrite_api')); // Assemble our HTML. Yugly. $html = sprintf(_x('%1$s%2$s%3$s%4$s', '%1$s: time, %2$s: venue, %3$s: organizer, %4$s: event details (only on index views)', 'eventbrite-api'), $time, $venue, $organizer, $details); echo apply_filters('eventbrite_event_meta', $html, $time, $venue, $organizer, $details); }