/** * Redirect to event listing or single event template. * * @uses Voce_Eventbrite_API::get_auth_service() * @uses eventbrite_venue_get_page_id() * @uses is_front_page() * @uses get_option() * @uses set_query_var() * @uses get_query_var() * @uses get_template_directory() * @uses eb_get_event_by_id() * @uses eventbrite_venue_maybe_include_template() */ function eventbrite_venue_template_redirect() { if (!class_exists('Voce_Eventbrite_API') || !Voce_Eventbrite_API::get_auth_service()) { return; } // handle case when reading settings, front page setting is set to upcoming events $upcoming_events_page_id = eventbrite_venue_get_page_id('upcoming-events'); if (is_front_page() && $upcoming_events_page_id && $upcoming_events_page_id == get_option('page_on_front')) { // set paged variable set_query_var('paged', get_query_var('page')); include get_template_directory() . '/upcoming-events.php'; die; } // handle case when reading settings, front page setting is set to events $events_page_id = eventbrite_venue_get_page_id('events'); if (is_front_page() && $events_page_id && $events_page_id == get_option('page_on_front')) { // set paged variable set_query_var('paged', get_query_var('page')); include get_template_directory() . '/event.php'; die; } if (get_query_var('eb_event') && eventbrite_venue_get_page_url('events')) { $event_id = get_query_var('eb_event_id'); if ($event_id) { if (!eb_get_event_by_id($event_id)) { global $wp_query; $wp_query->is_404 = true; return; } include get_template_directory() . '/event-single.php'; die; } include get_template_directory() . '/event.php'; die; } if (get_query_var('eb_dynamic_page')) { // check currently queried object against Eventbrite pages to see if we // need to load a different template $dynamic_pages = eventbrite_venue_get_dynamic_pages(); if ($dynamic_pages) { $queried_object_id = get_queried_object_id(); foreach ($dynamic_pages as $key => $template) { eventbrite_venue_maybe_include_template(eventbrite_venue_get_page_id($key), $queried_object_id, $template); } } } }
<?php /** * Template part home loop * * @package eventbrite-venue */ $venue_id = get_eventbrite_setting('venue-id', 'all'); $organizer_id = get_eventbrite_setting('organizer-id', 'all'); $language = get_eventbrite_setting('call-to-action'); $page = max(1, get_query_var('paged')); $per_page = get_option('posts_per_page'); $events = Voce_Eventbrite_API::get_user_events(array('per_page' => -1, 'page' => -1, 'venue' => $venue_id, 'organizer' => $organizer_id)); $total_events = count($events); if ($page > 0) { $events = array_slice($events, ($page - 1) * $per_page, $per_page); } else { // return the specified number if ($count > 0) { $events = array_slice($events, 0, $count); } } ?> <h1><?php _e('Upcoming Events', 'eventbrite-venue'); ?> </h1> <div class="event-items"> <?php if ($events) {
/** * Display function for widget * @param type $args * @param type $instance * @return type */ function widget($args, $instance) { if (!Voce_Eventbrite_API::get_auth_service()) { return; } $cache = wp_cache_get('widget_just_announced', 'widget'); if (!is_array($cache)) { $cache = array(); } if (!isset($args['widget_id'])) { $args['widget_id'] = $this->id; } if (isset($cache[$args['widget_id']])) { echo wp_kses($cache[$args['widget_id']], wp_kses_allowed_html('post')); return; } ob_start(); extract($args); $title = !empty($instance['title']) ? $instance['title'] : __('Just Announced', 'eventbrite-parent'); $title = apply_filters('widget_title', $title, $instance, $this->id_base); $recent_events = Voce_Eventbrite_API::get_user_events(array('count' => 5, 'orderby' => 'created', 'order' => 'desc')); if (!empty($recent_events)) { ?> <?php echo $before_widget; ?> <?php if ($title) { echo $before_title . esc_html($title) . $after_title; } ?> <ul> <?php foreach ($recent_events as $recent_event) { $wp_event_url = eventbrite_venue_get_wp_event_url($recent_event); ?> <li> <?php if ($wp_event_url) { ?> <a href="<?php echo esc_url($wp_event_url); ?> " title="<?php echo esc_attr($recent_event->name->text); ?> "> <?php } ?> <?php echo esc_html($recent_event->name->text); ?> <?php if ($wp_event_url) { ?> </a> <?php } ?> <br/> <span><?php echo esc_html(mysql2date(get_option('date_format'), $recent_event->start->utc)); ?> </span> </li> <?php } ?> </ul> <?php echo $after_widget; ?> <?php } $cache[$args['widget_id']] = ob_get_flush(); wp_cache_set('widget_just_announced', $cache, 'widget'); }
/** * add Theme Options settings specific to this theme */ function eventbrite_venue_page_settings() { if (class_exists('Voce_Eventbrite_API') && Voce_Eventbrite_API::get_auth_service()) { $settings = Voce_Settings_API::GetInstance()->add_page(__('Eventbrite', 'eventbrite-parent'), __('Eventbrite', 'eventbrite-parent'), 'eventbrite', 'edit_theme_options', '')->add_group('', Eventbrite_Settings::eventbrite_group_key())->add_setting('<h3 id="eb-pages">' . __('Recommended Page Settings for This Theme', 'eventbrite-venue') . '</h3>', 'eventbrite-page-settings', array('display_callback' => 'eventbrite_venue_page_settings_description_cb'))->group->add_setting(__('Events List', 'eventbrite-venue'), 'events-page-id', array('description' => __('This page will be used to show a list of your upcoming Eventbrite events.', 'eventbrite-venue'), 'display_callback' => 'eventbrite_venue_page_settings_cb', 'sanitize_callbacks' => array('absint')))->group->add_setting(__('Featured Events List', 'eventbrite-venue'), 'upcoming-events-page-id', array('description' => __('This page will be used to display a carousel of the selected featured Eventbrite events along with a listing of upcoming Eventbrite events.', 'eventbrite-venue'), 'display_callback' => 'eventbrite_venue_page_settings_cb', 'sanitize_callbacks' => array('absint')))->group->add_setting(__('Calendar Page', 'eventbrite-venue'), 'calendar-page-id', array('description' => __('This page will show a calendar (monthly) view of your Eventbrite events.', 'eventbrite-venue'), 'display_callback' => 'eventbrite_venue_page_settings_cb', 'sanitize_callbacks' => array('absint')))->group->add_setting(__('Additional Suggested Pages', 'eventbrite-venue'), 'suggested-pages', array('display_callback' => 'eventbrite_venue_page_suggested_cb')); } }