Example #1
0
 /**
  * Google Calendar Link
  *
  * Returns an "add to Google Calendar link for a single event. Must be used in the loop
  *
  * @param int $postId (optional)
  *
  * @return string URL for google calendar.
  * @since 2.0
  */
 function tribe_get_gcal_link($postId = null)
 {
     $postId = TribeEvents::postIdHelper($postId);
     $tribe_ecp = TribeEvents::instance();
     $output = esc_url($tribe_ecp->googleCalendarLink($postId));
     return apply_filters('tribe_get_gcal_link', $output);
 }
 /**
  * Initialize the class and place hooks and styling.
  */
 function init()
 {
     $this->title(__('Tribe', 'tribe-events-calendar'));
     remove_action('tribe_debug', array(TribeEvents::instance(), 'renderDebug'), 10, 2);
     add_action('tribe_debug', array($this, 'logDebug'), 8, 3);
     wp_enqueue_style('tribe-debugger', TribeEvents::instance()->pluginUrl . 'resources/debugger.css');
 }
 private function hack_to_remove_broken_filters()
 {
     // a stupid hack for some stupid code
     // the callback will automatically replace every Venue title with "Unnamed Venue"
     $TribeEvents = TribeEvents::instance();
     remove_action('save_post', array($TribeEvents, 'save_venue_data'), 16, 2);
 }
Example #4
0
/**
 * Output a link for the mini calendar month next nav, includes data attributes needed to update the month with ajax
 *
 * @return void
 * @since 3.0
 * @author Jessica Yazbek
 **/
function tribe_events_the_mini_calendar_next_link()
{
    $tribe_ecp = TribeEvents::instance();
    $args = tribe_events_get_mini_calendar_args();
    $html = '<a class="tribe-mini-calendar-nav-link next-month" href="#" data-month="' . $tribe_ecp->nextMonth($args['eventDate']) . '-01" title="' . tribe_get_next_month_text() . '"><span>&raquo;</span></a>';
    echo apply_filters('tribe_events_the_mini_calendar_prev_link', $html);
}
function tribe_attachment_404_fix()
{
    if (class_exists('TribeEvents')) {
        remove_action('init', array(TribeEvents::instance(), 'init'), 10);
        add_action('init', array(TribeEvents::instance(), 'init'), 1);
    }
}
Example #6
0
function _backend_load_event_of_date()
{
    if (isset($_POST['event_date']) && $_POST['event_date']) {
        TribeEventsQuery::init();
        $states[] = 'publish';
        if (0 < get_current_user_id()) {
            $states[] = 'private';
        }
        $args = array('post_status' => $states, 'eventDate' => $_POST["event_date"], 'eventDisplay' => 'day');
        TribeEvents::instance()->displaying = 'day';
        $query = TribeEventsQuery::getEvents($args, true);
        global $wp_query, $post;
        $wp_query = $query;
        add_filter('tribe_is_day', '__return_true');
        $html = '';
        if ($query->have_posts()) {
            while ($query->have_posts()) {
                $query->the_post();
                $html .= '<option value="' . get_the_ID() . '"> ' . get_the_title() . '</option>';
            }
            wp_reset_postdata();
        }
        $response = array('html' => $html, 'success' => true, 'total_count' => $query->found_posts, 'view' => 'day');
        header('Content-type: application/json');
        echo json_encode($response);
        die;
    }
}
Example #7
0
 /**
  * Set the notices used on week view
  *
  * @since  3.0
  * @author tim@imaginesimplicty.com
  * @return void
  * */
 function set_notices()
 {
     global $wp_query;
     $search_term = $geographic_term = '';
     // We have events to display, no need for notices!
     if (!empty(self::$events->all_day) || !empty(self::$events->hourly)) {
         return;
     }
     // Was the user searching for a keyword or place?
     if (!empty($wp_query->query_vars['s'])) {
         $search_term = $wp_query->query_vars['s'];
     } elseif (!empty($_REQUEST['tribe-bar-search'])) {
         $search_term = $_REQUEST['tribe-bar-search'];
     } elseif (!empty($_REQUEST['tribe-bar-geoloc'])) {
         $geographic_term = $_REQUEST['tribe-bar-geoloc'];
     }
     // Set an appropriate notice
     if (!empty($search_term)) {
         TribeEvents::setNotice('event-search-no-results', sprintf(__('There were no results found for <strong>"%s"</strong> this week. Try searching another week.', 'tribe-events-calendar-pro'), esc_html($search_term)));
     } elseif (!empty($geographic_term)) {
         TribeEvents::setNotice('event-search-no-results', sprintf(__('No results were found for events in or near <strong>"%s"</strong> this week. Try searching another week.', 'tribe-events-calendar-pro'), esc_html($geographic_term)));
     } else {
         TribeEvents::setNotice('event-search-no-results', __('No results were found for this week. Try searching another week.', 'tribe-events-calendar-pro'));
     }
 }
Example #8
0
 function form($instance)
 {
     /* Set up default widget settings. */
     $defaults = array('title' => 'Upcoming Events', 'limit' => '5', 'no_upcoming_events' => false);
     $instance = wp_parse_args((array) $instance, $defaults);
     $tribe_ecp = TribeEvents::instance();
     include $tribe_ecp->pluginPath . 'admin-views/widget-admin-list.php';
 }
Example #9
0
/**
 * Replaces tribe_event_meta_cats();
 */
function krafit_event_meta_cats($label = null, $separator = ', ')
{
    if (!$label) {
        $label = '';
    }
    $tribe_ecp = TribeEvents::instance();
    $list = apply_filters('krafit_event_meta_cats', get_the_term_list(get_the_ID(), $tribe_ecp->get_event_taxonomy(), '<h3 class="event-preheader">' . $label . '', $separator, '</h3>'));
    echo $list;
}
 function column_order_status($item)
 {
     $icon = "";
     if (strtolower($item['order_status']) !== 'completed') {
         $tec = TribeEvents::instance();
         $icon = sprintf("<span class='warning'><img src='%s'/></span> ", trailingslashit($tec->pluginUrl) . 'resources/warning.png');
     }
     return $icon . ucwords($item['order_status']);
 }
/**
 * Add the agenda view rewrite rule
 *
 * @param $wp_rewrite the WordPress rewrite rules object
 * @return void
 **/
function tribe_events_agenda_add_routes($wp_rewrite)
{
    // Get the instance of the TribeEvents plugin, and the rewriteSlug that the plugin uses
    $tec = TribeEvents::instance();
    $tec_rewrite_slug = trailingslashit($tec->rewriteSlug);
    // create new rule for the agenda view
    $newRules = array($tec_rewrite_slug . 'agenda/?$' => 'index.php?post_type=' . TribeEvents::POSTTYPE . '&eventDisplay=agenda');
    // Add the new rule to the global rewrite rules array
    $wp_rewrite->rules = $newRules + $wp_rewrite->rules;
}
Example #12
0
 /**
  * Set up the notices for this template
  *
  * @return void
  * @since 3.0
  **/
 public function set_notices()
 {
     parent::set_notices();
     // Check if event has passed
     $gmt_offset = get_option('gmt_offset') >= '0' ? ' +' . get_option('gmt_offset') : " " . get_option('gmt_offset');
     $gmt_offset = str_replace(array('.25', '.5', '.75'), array(':15', ':30', ':45'), $gmt_offset);
     if (!tribe_is_showing_all() && strtotime(tribe_get_end_date(get_the_ID(), false, 'Y-m-d G:i') . $gmt_offset) <= time()) {
         TribeEvents::setNotice('event-past', __('This event has passed.', 'tribe-events-calendar'));
     }
 }
 /**
  * Check to make sure that 'previous_ecp_versions' is saving correctly.
  *
  * @since 2.0.5
  * @author Paul Hughes
  */
 function test_previous_ecp_versions_saving()
 {
     $tribe_ecp = TribeEvents::instance();
     $tribe_ecp->init();
     $tribe_ecp->setOption('latest_ecp_version', '1.6.5');
     $tribe_ecp->init();
     $previous_ecp_versions = tribe_get_option('previous_ecp_versions');
     $this->assertEquals('0', $previous_ecp_versions[0]);
     $this->assertEquals('1.6.5', $previous_ecp_versions[1]);
     $this->assertFalse(isset($previous_ecp_versions[2]));
 }
Example #14
0
 /**
  * Enqueues the JS and CSS for the attendees page in the admin
  * @param $hook
  */
 public function attendees_page_load_css_js($hook)
 {
     if ($hook != $this->attendees_page) {
         return;
     }
     $ecp = TribeEvents::instance();
     wp_enqueue_style(TribeEventsTicketsPro::$attendees_slug, trailingslashit($ecp->pluginUrl) . 'resources/tickets-attendees.css', array(), apply_filters('tribe_events_css_version', TribeEvents::VERSION));
     wp_enqueue_style(TribeEventsTicketsPro::$attendees_slug . '-print', trailingslashit($ecp->pluginUrl) . 'resources/tickets-attendees-print.css', array(), apply_filters('tribe_events_css_version', TribeEvents::VERSION), 'print');
     wp_enqueue_script(TribeEventsTicketsPro::$attendees_slug, trailingslashit($ecp->pluginUrl) . 'resources/tickets-attendees.js', array('jquery'), apply_filters('tribe_events_js_version', TribeEvents::VERSION));
     $mail_data = array('nonce' => wp_create_nonce('email-attendee-list'), 'required' => __('You need to select a user or type a valid email address', 'tribe-events-calendar'), 'sending' => __('Sending...', 'tribe-events-calendar'), 'checkin_nonce' => wp_create_nonce('checkin'), 'uncheckin_nonce' => wp_create_nonce('uncheckin'));
     wp_localize_script(TribeEventsTicketsPro::$attendees_slug, 'Attendees', $mail_data);
 }
Example #15
0
 /**
  * AJAX handler for the Map view
  */
 function ajax_response()
 {
     $tribe_paged = !empty($_POST['tribe_paged']) ? $_POST['tribe_paged'] : 1;
     TribeEventsQuery::init();
     $defaults = array('post_type' => TribeEvents::POSTTYPE, 'posts_per_page' => tribe_get_option('postsPerPage', 10), 'paged' => $tribe_paged, 'post_status' => array('publish'), 'eventDisplay' => 'map');
     $view_state = 'map';
     /* if past view */
     if (!empty($_POST['tribe_event_display']) && $_POST['tribe_event_display'] == 'past') {
         $view_state = 'past';
         $defaults['eventDisplay'] = 'past';
     }
     if (isset($_POST['tribe_event_category'])) {
         $defaults[TribeEvents::TAXONOMY] = $_POST['tribe_event_category'];
     }
     $query = TribeEventsQuery::getEvents($defaults, true);
     $have_events = 0 < $query->found_posts;
     if ($have_events && TribeEventsGeoLoc::instance()->is_geoloc_query()) {
         $lat = isset($_POST['tribe-bar-geoloc-lat']) ? $_POST['tribe-bar-geoloc-lat'] : 0;
         $lng = isset($_POST['tribe-bar-geoloc-lng']) ? $_POST['tribe-bar-geoloc-lng'] : 0;
         TribeEventsGeoLoc::instance()->assign_distance_to_posts($query->posts, $lat, $lng);
     } elseif (!$have_events && isset($_POST['tribe-bar-geoloc'])) {
         TribeEvents::setNotice('event-search-no-results', sprintf(__('No results were found for events in or near <strong>"%s"</strong>.', 'tribe-events-calendar-pro'), esc_html($_POST['tribe-bar-geoloc'])));
     } elseif (!$have_events && isset($_POST['tribe_event_category'])) {
         TribeEvents::setNotice('events-not-found', sprintf(__('No matching events listed under %s. Please try viewing the full calendar for a complete list of events.', 'tribe-events-calendar'), esc_html($_POST['tribe_event_category'])));
     } elseif (!$have_events) {
         TribeEvents::setNotice('event-search-no-results', __('There were no results found.', 'tribe-events-calendar-pro'));
     }
     $response = array('html' => '', 'markers' => array(), 'success' => true, 'tribe_paged' => $tribe_paged, 'max_pages' => $query->max_num_pages, 'total_count' => $query->found_posts, 'view' => $view_state);
     // @TODO: clean this up / refactor the following conditional
     if ($have_events) {
         global $wp_query, $post;
         $data = $query->posts;
         $post = $query->posts[0];
         $wp_query = $query;
         TribeEvents::instance()->displaying = 'map';
         ob_start();
         tribe_get_view('pro/map/content');
         $response['html'] .= ob_get_clean();
         $response['markers'] = TribeEventsGeoLoc::instance()->generate_markers($data);
     } else {
         global $wp_query;
         $wp_query = $query;
         TribeEvents::instance()->setDisplay();
         ob_start();
         tribe_get_view('pro/map/content');
         $response['html'] .= ob_get_clean();
     }
     $response = apply_filters('tribe_events_ajax_response', $response);
     header('Content-type: application/json');
     echo json_encode($response);
     exit;
 }
Example #16
0
 /**
  * Output the upcoming events associated with a venue
  *
  * @return void
  * @since 3.0
  */
 function tribe_venue_upcoming_events($post_id = false)
 {
     $post_id = TribeEvents::postIdHelper($post_id);
     if ($post_id) {
         // turn off the venue group
         tribe_set_the_meta_visibility('tribe_event_venue', false, 'meta_group');
         $args = array('venue' => $post_id, 'eventDisplay' => 'upcoming');
         $html = tribe_include_view_list($args);
         // housekeeping: turn on the venue meta group before we leave
         tribe_set_the_meta_visibility('tribe_event_venue', true, 'meta_group');
         return apply_filters('tribe_venue_upcoming_events', $html);
     }
 }
 /**
  * Add the Tribe Bar to the tribe_events_before_html filter.
  * @param $content
  *
  * @filter tribe-events-bar-should-show set it to false to prevent infinite nesting
  * @filter tribe-events-bar-filters to get the list of registered filters
  * @filter tribe-events-bar-views to get the list of registered views
  *
  * To add filters:
  *
  * add_filter( 'tribe-events-bar-filters',  'setup_my_field_in_bar', 1, 1 );
  *
  * public function setup_my_field_in_bar( $filters ) {
  *   $filters[] = array( 'name'    => 'tribe-bar-my-field',
  *                       'caption' => 'My Field',
  *                       'html'    => '<input type="text" name="tribe-bar-my-field" id="tribe-bar-my-field">' );
  *   return $filters;
  * }
  *
  * To add views:
  *
  * add_filter( 'tribe-events-bar-views',  'my_setup_view_for_bar', 10);
  *
  * public function my_setup_view_for_bar( $views ) {
  *     $tec = TribeEvents::instance();
  *     $views[] = array('displaying' => 'myview', 'anchor' => 'My view', 'url' =>  $tec->getOption( 'eventsSlug', 'events' ) . '/my_view_slug'  );
  *     return $views;
  * }
  *
  * @return string
  */
 public function show($content)
 {
     $tec = TribeEvents::instance();
     //set it to false to prevent infinite nesting
     add_filter('tribe-events-bar-should-show', '__return_false', 9999);
     // Load the registered filters and views for the Bar. This values will be used in the template.
     $filters = apply_filters('tribe-events-bar-filters', self::instance()->filters);
     $views = apply_filters('tribe-events-bar-views', self::instance()->views);
     //Load the template
     ob_start();
     include TribeEventsTemplates::getTemplateHierarchy('bar.php', array('subfolder' => 'modules'));
     $html = ob_get_clean() . $content;
     echo apply_filters('tribe_events_bar_show', $html, $filters, $views, $content);
 }
Example #18
0
 /**
  * Set the notices used on week view
  *
  * @since  3.0
  * @author tim@imaginesimplicty.com
  * @return void
  * */
 function set_notices()
 {
     global $wp_query;
     // setup a search term for query or via ajax
     if (!empty($wp_query->query_vars['s'])) {
         $search_term = $wp_query->query_vars['s'];
     } else {
         if (!empty($_POST['tribe-bar-search'])) {
             $search_term = $_POST['tribe-bar-search'];
         }
     }
     if (!empty($search_term) && !have_posts()) {
         TribeEvents::setNotice('event-search-no-results', sprintf(__('There were no results found for <strong>"%s"</strong> this week. Try searching another week.', 'tribe-events-calendar-pro'), esc_html($search_term)));
     }
 }
 /**
  *
  */
 public function do_menu_page()
 {
     $remote = $this->get_all_products();
     if ($remote) {
         $products = NULL;
         if (property_exists($remote, 'data')) {
             $products = $remote->data;
         }
         $banner = NULL;
         if (property_exists($remote, 'banner')) {
             $banner = $remote->banner;
         }
         $categories = array_unique(wp_list_pluck($products, 'category'));
         include_once TribeEvents::instance()->pluginPath . 'admin-views/app-shop.php';
     }
 }
Example #20
0
 /**
  * List view ajax handler
  *
  * @return void
  */
 function ajax_response()
 {
     TribeEventsQuery::init();
     $tribe_paged = !empty($_POST['tribe_paged']) ? intval($_POST['tribe_paged']) : 1;
     $args = array('eventDisplay' => 'list', 'post_type' => TribeEvents::POSTTYPE, 'post_status' => 'publish', 'paged' => $tribe_paged);
     // check & set past display
     if (isset($_POST['tribe_event_display']) && $_POST['tribe_event_display'] == 'past') {
         $args['eventDisplay'] = 'past';
     }
     // check & set event category
     if (isset($_POST['tribe_event_category'])) {
         $args[TribeEvents::TAXONOMY] = $_POST['tribe_event_category'];
     }
     $query = tribe_get_events($args, true);
     // $hash is used to detect whether the primary arguments in the query have changed (i.e. due to a filter bar request)
     // if they have, we want to go back to page 1
     $hash = $query->query_vars;
     $hash['paged'] = null;
     $hash['start_date'] = null;
     $hash['end_date'] = null;
     $hash_str = md5(maybe_serialize($hash));
     if (!empty($_POST['hash']) && $hash_str !== $_POST['hash']) {
         $tribe_paged = 1;
         $args['paged'] = 1;
         $query = TribeEventsQuery::getEvents($args, true);
     }
     $response = array('html' => '', 'success' => true, 'max_pages' => $query->max_num_pages, 'hash' => $hash_str, 'tribe_paged' => $tribe_paged, 'total_count' => $query->found_posts, 'view' => 'list');
     global $wp_query, $post, $paged;
     $wp_query = $query;
     if (!empty($query->posts)) {
         $post = $query->posts[0];
     }
     $paged = $tribe_paged;
     TribeEvents::instance()->displaying = 'list';
     if (!empty($_POST['tribe_event_display']) && $_POST['tribe_event_display'] == 'past') {
         $response['view'] = 'past';
     }
     ob_start();
     tribe_get_view('list/content');
     $response['html'] .= ob_get_clean();
     apply_filters('tribe_events_ajax_response', $response);
     header('Content-type: application/json');
     echo json_encode($response);
     die;
 }
 /**
  * The asset loading function.
  *
  * @param string $name The name of the package reqested.
  * @param array $deps An array of dependencies (this should be the registered name that is registered to the wp_enqueue functions).
  * @return void
  * @author Timothy Wood
  * @since 3.0
  */
 public static function asset_package($name, $deps = array())
 {
     $tec_pro = TribeEventsPro::instance();
     $prefix = 'tribe-events-pro';
     // setup plugin resources & 3rd party vendor urls
     $resources_url = trailingslashit($tec_pro->pluginUrl) . 'resources/';
     $vendor_url = trailingslashit($tec_pro->pluginUrl) . 'vendor/';
     switch ($name) {
         case 'ajax-weekview':
             $ajax_data = array("ajaxurl" => admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http'), 'post_type' => TribeEvents::POSTTYPE);
             $path1 = Tribe_Template_Factory::getMinFile($vendor_url . 'jquery-slimscroll/jquery.slimscroll.js', true);
             $path2 = Tribe_Template_Factory::getMinFile($resources_url . 'tribe-events-week.js', true);
             wp_enqueue_script('tribe-events-pro-slimscroll', $path1, array('tribe-events-pro', 'jquery-ui-draggable'), apply_filters('tribe_events_pro_js_version', TribeEventsPro::VERSION), true);
             wp_enqueue_script('tribe-events-pro-week', $path2, array('tribe-events-pro-slimscroll'), apply_filters('tribe_events_pro_js_version', TribeEventsPro::VERSION), true);
             wp_localize_script('tribe-events-pro-week', 'TribeWeek', $ajax_data);
             break;
         case 'ajax-photoview':
             $tribe_paged = !empty($_REQUEST['tribe_paged']) ? $_REQUEST['tribe_paged'] : 0;
             $ajax_data = array("ajaxurl" => admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http'), 'tribe_paged' => $tribe_paged);
             $path1 = Tribe_Template_Factory::getMinFile($vendor_url . 'isotope/jquery.isotope.js', true);
             $path2 = Tribe_Template_Factory::getMinFile($resources_url . 'tribe-events-photo-view.js', true);
             wp_enqueue_script('tribe-events-pro-isotope', $path1, array('tribe-events-pro'), apply_filters('tribe_events_pro_js_version', TribeEventsPro::VERSION), true);
             wp_enqueue_script('tribe-events-pro-photo', $path2, array('tribe-events-pro-isotope'), apply_filters('tribe_events_pro_js_version', TribeEventsPro::VERSION), true);
             wp_localize_script('tribe-events-pro-photo', 'TribePhoto', $ajax_data);
             break;
         case 'ajax-dayview':
             $ajax_data = array("ajaxurl" => admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http'), 'post_type' => TribeEvents::POSTTYPE);
             $path = Tribe_Template_Factory::getMinFile($resources_url . 'tribe-events-ajax-day.js', true);
             wp_enqueue_script('tribe-events-pro-ajax-day', $path, array('tribe-events-pro'), apply_filters('tribe_events_pro_js_version', TribeEventsPro::VERSION), true);
             wp_localize_script('tribe-events-pro-ajax-day', 'TribeCalendar', $ajax_data);
             break;
         case 'ajax-maps':
             $http = is_ssl() ? 'https' : 'http';
             wp_register_script('gmaps', $http . '://maps.google.com/maps/api/js?sensor=false', array('tribe-events-pro'));
             $path = Tribe_Template_Factory::getMinFile($resources_url . 'tribe-events-ajax-maps.js', true);
             wp_register_script('tribe-events-pro-geoloc', $path, array('gmaps', parent::get_placeholder_handle()), apply_filters('tribe_events_pro_js_version', TribeEventsPro::VERSION));
             wp_enqueue_script('tribe-events-pro-geoloc');
             $geoloc = TribeEventsGeoLoc::instance();
             $data = array('ajaxurl' => admin_url('admin-ajax.php', $http), 'nonce' => wp_create_nonce('tribe_geosearch'), 'map_view' => TribeEvents::instance()->displaying == 'map' ? true : false);
             wp_localize_script('tribe-events-pro-geoloc', 'GeoLoc', $data);
             break;
     }
     parent::asset_package($name, $deps);
 }
Example #22
0
 /**
  * AJAX handler for Photo view
  *
  * @return void
  */
 function ajax_response()
 {
     $tec = TribeEvents::instance();
     TribeEventsQuery::init();
     $tribe_paged = !empty($_POST['tribe_paged']) ? intval($_POST['tribe_paged']) : 1;
     $args = array('eventDisplay' => 'list', 'post_type' => TribeEvents::POSTTYPE, 'post_status' => 'publish', 'paged' => $tribe_paged);
     $view_state = 'photo';
     if (isset($_POST['tribe_event_category'])) {
         $args[TribeEvents::TAXONOMY] = $_POST['tribe_event_category'];
     }
     /* if past view */
     if (!empty($_POST['tribe_event_display']) && $_POST['tribe_event_display'] == 'past') {
         $view_state = 'past';
         $args['eventDisplay'] = 'past';
     }
     $query = TribeEventsQuery::getEvents($args, true);
     $hash = $query->query_vars;
     $hash['paged'] = null;
     $hash['start_date'] = null;
     $hash_str = md5(maybe_serialize($hash));
     if (!empty($_POST['hash']) && $hash_str !== $_POST['hash']) {
         $tribe_paged = 1;
         $args['paged'] = 1;
         $query = TribeEventsQuery::getEvents($args, true);
     }
     $response = array('html' => '', 'success' => true, 'max_pages' => $query->max_num_pages, 'hash' => $hash_str, 'tribe_paged' => $tribe_paged, 'view' => $view_state);
     global $wp_query, $post;
     $wp_query = $query;
     if (!empty($query->posts)) {
         $post = $query->posts[0];
     }
     add_filter('tribe_events_list_pagination', array('TribeEvents', 'clear_module_pagination'), 10);
     $tec->displaying = 'photo';
     ob_start();
     tribe_get_view('pro/photo/content');
     $response['html'] .= ob_get_clean();
     apply_filters('tribe_events_ajax_response', $response);
     header('Content-type: application/json');
     echo json_encode($response);
     die;
 }
 /**
  * Is hooked by init() filter to parse the WP_Query arguments for main and alt queries.
  *
  * @param object $query WP_Query object args supplied or default
  *
  * @return object $query (modified)
  */
 public static function pre_get_posts($query)
 {
     if ($query->is_main_query() && is_home()) {
         // check option for including events in the main wordpress loop, if true, add events post type
         if (tribe_get_option('showEventsInMainLoop', false)) {
             $query->query_vars['post_type'] = isset($query->query_vars['post_type']) ? (array) $query->query_vars['post_type'] : array('post');
             $query->query_vars['post_type'][] = TribeEvents::POSTTYPE;
             $query->tribe_is_multi_posttype = true;
         }
     }
     if ($query->tribe_is_multi_posttype) {
         do_action('log', 'multi_posttype', 'default', $query->tribe_is_multi_posttype);
         add_filter('posts_fields', array(__CLASS__, 'multi_type_posts_fields'), 10, 2);
         add_filter('posts_join', array(__CLASS__, 'posts_join'), 10, 2);
         add_filter('posts_join', array(__CLASS__, 'posts_join_orderby'), 10, 2);
         add_filter('posts_distinct', array(__CLASS__, 'posts_distinct'));
         add_filter('posts_groupby', array(__CLASS__, 'posts_groupby'), 10, 2);
         add_filter('posts_orderby', array(__CLASS__, 'posts_orderby'), 10, 2);
         do_action('tribe_events_pre_get_posts', $query);
         return;
     }
     if ($query->tribe_is_event || $query->tribe_is_event_category) {
         if (!($query->is_main_query() && $query->get('eventDisplay') == 'month')) {
             add_filter('posts_fields', array(__CLASS__, 'posts_fields'), 10, 2);
             add_filter('posts_join', array(__CLASS__, 'posts_join'), 10, 2);
             add_filter('posts_join', array(__CLASS__, 'posts_join_orderby'), 10, 2);
             add_filter('posts_where', array(__CLASS__, 'posts_where'), 10, 2);
             add_filter('posts_distinct', array(__CLASS__, 'posts_distinct'));
             add_filter('posts_groupby', array(__CLASS__, 'posts_groupby'), 10, 2);
         } else {
             // reduce number of queries triggered by main WP_Query on month view
             $query->set('posts_per_page', 1);
             $query->set('no_found_rows', true);
             $query->set('cache_results', false);
             $query->set('update_post_meta_cache', false);
             $query->set('update_post_term_cache', false);
             $query->set('meta_query', array(array('key' => '_EventStartDate', 'type' => 'DATETIME')));
             do_action('tribe_events_pre_get_posts', $query);
             return $query;
         }
         // if a user selects a date in the event bar we want it to persist as long as possible
         if (!empty($_REQUEST['tribe-bar-date'])) {
             $query->set('eventDate', $_REQUEST['tribe-bar-date']);
             do_action('log', 'changed eventDate to tribe-bar-date', 'tribe-events-query', $_REQUEST['tribe-bar-date']);
         }
         // if a user provides a search term we want to use that in the search params
         if (!empty($_REQUEST['tribe-bar-search'])) {
             $query->query_vars['s'] = $_REQUEST['tribe-bar-search'];
         }
         $query->query_vars['eventDisplay'] = !empty($query->query_vars['eventDisplay']) ? $query->query_vars['eventDisplay'] : TribeEvents::instance()->displaying;
         //@todo stop calling EOD cutoff transformations all over the place
         if (!empty($query->query_vars['eventDisplay'])) {
             switch ($query->query_vars['eventDisplay']) {
                 case 'custom':
                     // if the eventDisplay is 'custom', all we're gonna do is make sure the start and end dates are formatted
                     $start_date = $query->get('start_date');
                     if ($start_date) {
                         $query->set('start_date', date_i18n(TribeDateUtils::DBDATETIMEFORMAT, strtotime($start_date)));
                     }
                     $end_date = $query->get('end_date');
                     if ($end_date) {
                         $query->set('end_date', date_i18n(TribeDateUtils::DBDATETIMEFORMAT, strtotime($end_date)));
                     }
                     break;
                 case 'month':
                     // make sure start and end date are set
                     if ($query->get('start_date') == '') {
                         $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : date_i18n(TribeDateUtils::DBDATETIMEFORMAT);
                         $query->set('start_date', tribe_event_beginning_of_day($event_date));
                     }
                     if ($query->get('end_date' == '')) {
                         $query->set('end_date', tribe_event_end_of_day($query->get('start_date')));
                     }
                     $query->set('hide_upcoming', true);
                     break;
                 case 'day':
                     $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : Date('Y-m-d', current_time('timestamp'));
                     $query->set('eventDate', $event_date);
                     $beginning_of_day = strtotime(tribe_event_beginning_of_day($event_date)) + 1;
                     $query->set('start_date', date_i18n(TribeDateUtils::DBDATETIMEFORMAT, $beginning_of_day));
                     $query->set('end_date', tribe_event_end_of_day($event_date));
                     $query->set('posts_per_page', -1);
                     // show ALL day posts
                     $query->set('hide_upcoming', false);
                     $query->set('order', self::set_order('ASC', $query));
                     break;
                 case 'all':
                     $query->set('orderby', self::set_orderby(null, $query));
                     $query->set('order', self::set_order(null, $query));
                     break;
                 case 'single-event':
                     if ($query->get('eventDate') != '') {
                         $query->set('start_date', $query->get('eventDate'));
                         $query->set('eventDate', $query->get('eventDate'));
                     }
                     break;
                 case 'list':
                 default:
                     // default display query
                     $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : date_i18n(TribeDateUtils::DBDATETIMEFORMAT);
                     if (!$query->tribe_is_past) {
                         $query->set('start_date', tribe_event_beginning_of_day($event_date));
                         $query->set('end_date', '');
                         $query->set('order', self::set_order('ASC', $query));
                     } else {
                         // on past view, set the passed date as the end date
                         $query->set('start_date', '');
                         $query->set('end_date', tribe_event_end_of_day($event_date));
                         $query->set('order', self::set_order('DESC', $query));
                     }
                     $query->set('orderby', self::set_orderby(null, $query));
                     $query->set('hide_upcoming', true);
                     break;
             }
         } else {
             $query->set('hide_upcoming', true);
             $query->set('start_date', date_i18n(TribeDateUtils::DBDATETIMEFORMAT));
             $query->set('orderby', self::set_orderby(null, $query));
             $query->set('order', self::set_order(null, $query));
         }
         // eventCat becomes a standard taxonomy query - will need to deprecate and update views eventually
         if (!in_array($query->get(TribeEvents::TAXONOMY), array('', '-1'))) {
             $tax_query[] = array('taxonomy' => TribeEvents::TAXONOMY, 'field' => is_numeric($query->get(TribeEvents::TAXONOMY)) ? 'id' : 'slug', 'terms' => $query->get(TribeEvents::TAXONOMY), 'include_children' => apply_filters('tribe_events_query_include_children', true));
         }
         // Only add the postmeta hack if it's not the main admin events list
         // Because this method filters out drafts without EventStartDate.
         // For this screen we're doing the JOIN manually in TribeEventsAdminList
         $screen = !is_admin() || defined('DOING_AJAX') && DOING_AJAX ? null : get_current_screen();
         if (empty($screen) || $screen->id != 'edit-tribe_events') {
             $meta_query[] = array('key' => '_EventStartDate', 'type' => 'DATETIME');
         }
     }
     // filter by Venue ID
     if ($query->tribe_is_event_query && $query->get('venue') != '') {
         $meta_query[] = array('key' => '_EventVenueID', 'value' => $query->get('venue'));
     }
     // filter by Organizer ID
     if ($query->tribe_is_event_query && $query->get('organizer') != '') {
         $meta_query[] = array('key' => '_EventOrganizerID', 'value' => $query->get('organizer'));
     }
     // enable pagination setup
     if ($query->tribe_is_event_query && $query->get('posts_per_page') == '') {
         $query->set('posts_per_page', (int) tribe_get_option('postsPerPage', 10));
     }
     // hide upcoming events from query (only not in admin)
     if ($query->tribe_is_event_query && $query->get('hide_upcoming')) {
         $hide_upcoming_ids = self::getHideFromUpcomingEvents();
         if (!empty($hide_upcoming_ids)) {
             $query->set('post__not_in', $hide_upcoming_ids);
         }
     }
     if ($query->tribe_is_event_query && !empty($meta_query)) {
         // setup default relation for meta queries
         $meta_query['relation'] = 'AND';
         $meta_query_combined = array_merge((array) $meta_query, (array) $query->get('meta_query'));
         $query->set('meta_query', $meta_query_combined);
     }
     if ($query->tribe_is_event_query && !empty($tax_query)) {
         // setup default relation for tax queries
         $tax_query_combined = array_merge((array) $tax_query, (array) $query->get('tax_query'));
         $query->set('tax_query', $tax_query_combined);
     }
     if ($query->tribe_is_event_query) {
         add_filter('posts_orderby', array(__CLASS__, 'posts_orderby'), 10, 2);
     }
     // if is in the admin remove the event date & upcoming filters, unless is an ajax call
     global $current_screen;
     if (is_admin() && $query->tribe_is_event_query && !empty($current_screen->id) && $current_screen->id == 'edit-' . TribeEvents::POSTTYPE) {
         if (!defined('DOING_AJAX') || defined('DOING_AJAX') && !DOING_AJAX) {
             remove_filter('posts_where', array(__CLASS__, 'posts_where'), 10, 2);
             remove_filter('posts_fields', array(__CLASS__, 'posts_fields'));
             remove_filter('posts_groupby', array(__CLASS__, 'posts_groupby'));
             remove_filter('posts_orderby', array(__CLASS__, 'posts_orderby'), 10, 2);
             $query->set('post__not_in', '');
             // set the default order for posts within admin lists
             if (!isset($query->query['order'])) {
                 $query->set('order', 'DESC');
             } else {
                 // making sure we preserve the order supplied by the query string even if it is overwritten above
                 $query->set('order', $query->query['order']);
             }
         }
     }
     if ($query->tribe_is_event_query) {
         do_action('tribe_events_pre_get_posts', $query);
     }
     return $query;
 }
}
?>
		</abbr><!-- .dtend -->
	</div><!-- .duration -->

	<div class="tribe-events-event-body">
		<?php 
if (has_post_thumbnail($event->ID)) {
    ?>
			<div class="tribe-events-event-thumb "><?php 
    echo get_the_post_thumbnail($event->ID, array(75, 75));
    ?>
</div>
		<?php 
}
?>

		<p class="entry-summary description">
		<?php 
if (has_excerpt($event->ID)) {
    echo TribeEvents::truncate($event->post_excerpt, 30);
} else {
    echo TribeEvents::truncate($event->post_content, 30);
}
?>
		</p><!-- .entry-summary -->

	</div><!-- .tribe-events-event-body -->
	<span class="tribe-events-arrow"></span>
</div><!-- .tribe-events-tooltip -->
 /**
  * Collect system information for support
  *
  * @return array of system data for support
  * @author Peter Chester
  */
 public static function getSupportStats()
 {
     $user = wp_get_current_user();
     $plugins = array();
     if (function_exists('get_plugin_data')) {
         $plugins_raw = wp_get_active_and_valid_plugins();
         foreach ($plugins_raw as $k => $v) {
             $plugin_details = get_plugin_data($v);
             $plugin = $plugin_details['Name'];
             if (!empty($plugin_details['Version'])) {
                 $plugin .= sprintf(' version %s', $plugin_details['Version']);
             }
             if (!empty($plugin_details['Author'])) {
                 $plugin .= sprintf(' by %s', $plugin_details['Author']);
             }
             if (!empty($plugin_details['AuthorURI'])) {
                 $plugin .= sprintf('(%s)', $plugin_details['AuthorURI']);
             }
             $plugins[] = $plugin;
         }
     }
     $network_plugins = array();
     if (is_multisite() && function_exists('get_plugin_data')) {
         $plugins_raw = wp_get_active_network_plugins();
         foreach ($plugins_raw as $k => $v) {
             $plugin_details = get_plugin_data($v);
             $plugin = $plugin_details['Name'];
             if (!empty($plugin_details['Version'])) {
                 $plugin .= sprintf(' version %s', $plugin_details['Version']);
             }
             if (!empty($plugin_details['Author'])) {
                 $plugin .= sprintf(' by %s', $plugin_details['Author']);
             }
             if (!empty($plugin_details['AuthorURI'])) {
                 $plugin .= sprintf('(%s)', $plugin_details['AuthorURI']);
             }
             $network_plugins[] = $plugin;
         }
     }
     $mu_plugins = array();
     if (function_exists('get_mu_plugins')) {
         $mu_plugins_raw = get_mu_plugins();
         foreach ($mu_plugins_raw as $k => $v) {
             $plugin = $v['Name'];
             if (!empty($v['Version'])) {
                 $plugin .= sprintf(' version %s', $v['Version']);
             }
             if (!empty($v['Author'])) {
                 $plugin .= sprintf(' by %s', $v['Author']);
             }
             if (!empty($v['AuthorURI'])) {
                 $plugin .= sprintf('(%s)', $v['AuthorURI']);
             }
             $mu_plugins[] = $plugin;
         }
     }
     $keys = apply_filters('tribe-pue-install-keys', array());
     $systeminfo = array('url' => 'http://' . $_SERVER["HTTP_HOST"], 'name' => $user->display_name, 'email' => $user->user_email, 'install keys' => $keys, 'WordPress version' => get_bloginfo('version'), 'PHP version' => phpversion(), 'plugins' => $plugins, 'network plugins' => $network_plugins, 'mu plugins' => $mu_plugins, 'theme' => wp_get_theme()->get('Name'), 'multisite' => is_multisite(), 'settings' => TribeEvents::getOptions());
     $systeminfo = apply_filters('tribe-events-pro-support', $systeminfo);
     return $systeminfo;
 }
Example #26
0
 /**
  * Single Event Link
  *
  * Get link to a single event
  * 
  * @param int $postId (optional)
  * @return string
  * @since 2.0
  */
 function tribe_get_event_link($event = null)
 {
     if ('' == get_option('permalink_structure')) {
         return apply_filters('tribe_get_event_link', TribeEvents::instance()->getLink('single', $event), $event);
     } else {
         return trailingslashit(apply_filters('tribe_get_event_link', TribeEvents::instance()->getLink('single', $event), $event));
     }
 }
 *
 * @version    $Id$
 * @package    wpbase
 * @author     WPOpal  Team <wpopal@gmail.com, support@wpopal.com>
 * @copyright  Copyright (C) 2015 wpopal.com. All Rights Reserved.
 * @license    GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
 *
 * @website  http://www.wpopal.com
 * @support  http://www.wpopal.com/support/forum.html
 */
$atts = vc_map_get_attributes($this->getShortcode(), $atts);
extract($atts);
TribeEventsQuery::init();
$states[] = 'publish';
$args = array('post_status' => $states, 'eventDate' => $event_date, 'eventDisplay' => 'day', 'orderby' => 'date', 'order' => 'DESC', 'post_type' => 'tribe_events', 'post__in' => wp_parse_id_list($event_ids));
TribeEvents::instance()->displaying = 'day';
$query = TribeEventsQuery::getEvents($args, true);
$_id = training_wpo_makeid();
?>
<div class="widget wpo-event-of-date <?php 
echo esc_attr($el_class);
?>
">
   <?php 
if ($title) {
    ?>
      <h3 class="widget-title visual-title <?php 
    echo esc_attr($size) . ' ' . $alignment;
    ?>
">
      </h3>
Example #28
0
 /**
  * Get photo permalink by provided date
  * @return string $permalink
  * @since 3.0
  */
 function tribe_get_photo_permalink($term = true)
 {
     if (isset($wp_query->query_vars[TribeEvents::TAXONOMY])) {
         $term = $wp_query->query_vars[TribeEvents::TAXONOMY];
     }
     $output = TribeEvents::instance()->getLink('photo', null, $term);
     return apply_filters('tribe_get_photo_view_permalink', $output);
 }
 /**
  * save the settings
  *
  * @return void
  */
 public function save()
 {
     // some hooks
     do_action('tribe_settings_save');
     do_action('tribe_settings_save_tab_' . $this->currentTab);
     // we'll need this later
     $parent_options = array();
     /**
      * loop through each validated option and either
      * save it as is or figure out its parent option ID
      * (in that case, it's a serialized option array and
      * will be saved in the next loop)
      */
     if (!empty($this->validated)) {
         foreach ($this->validated as $field_id => $validated_field) {
             // get the value and filter it
             $value = $validated_field->value;
             $value = apply_filters('tribe_settings_save_field_value', $value, $field_id, $validated_field);
             // figure out the parent option [could be set to false] and filter it
             if (is_network_admin()) {
                 $parent_option = isset($validated_field->field['parent_option']) ? $validated_field->field['parent_option'] : TribeEvents::OPTIONNAMENETWORK;
             }
             if (!is_network_admin()) {
                 $parent_option = isset($validated_field->field['parent_option']) ? $validated_field->field['parent_option'] : TribeEvents::OPTIONNAME;
             }
             $parent_option = apply_filters('tribe_settings_save_field_parent_option', $parent_option, $field_id);
             // some hooks
             do_action('tribe_settings_save_field', $field_id, $value, $validated_field);
             do_action('tribe_settings_save_field_' . $field_id, $value, $validated_field);
             if (!$parent_option) {
                 if (is_network_admin()) {
                     update_site_option($field_id, $value);
                 } else {
                     update_option($field_id, $value);
                 }
             } else {
                 // set the parent option
                 $parent_options[$parent_option][$field_id] = $value;
             }
         }
     }
     /**
      * loop through parent option arrays
      * and save them
      * NOTE: in the case of the main option Tribe Options,
      * this will save using the TribeEvents:setOptions method.
      */
     foreach ($parent_options as $option_id => $new_options) {
         // get the old options
         if ($option_id == TribeEvents::OPTIONNAME) {
             $old_options = (array) get_option($option_id);
         } else {
             $old_options = (array) get_site_option($option_id);
         }
         // set the options by parsing old + new and filter that
         $options = apply_filters('tribe_settings_save_option_array', wp_parse_args($new_options, $old_options), $option_id);
         if ($option_id == TribeEvents::OPTIONNAME) {
             // save using the TribeEvents method
             TribeEvents::instance()->setOptions($options);
         } elseif ($option_id == TribeEvents::OPTIONNAMENETWORK) {
             TribeEvents::instance()->setNetworkOptions($options);
         } else {
             // save using regular WP method
             if (is_network_admin()) {
                 update_site_option($option_id, $options);
             } else {
                 update_option($option_id, $options);
             }
         }
     }
     do_action('tribe_settings_after_save');
     do_action('tribe_settings_after_save_' . $this->currentTab);
     remove_action('shutdown', array($this, 'deleteOptions'));
     add_option('tribe_settings_sent_data', $_POST);
     add_option('tribe_settings_errors', $this->errors);
     add_option('tribe_settings_major_error', $this->major_error);
     wp_redirect(add_query_arg(array('saved' => true), $this->url));
     exit;
 }
Example #30
0
 /**
  * @param string $date
  * @return WP_Query
  */
 private function get_daily_events($date)
 {
     global $wp_query;
     $tribe_ecp = TribeEvents::instance();
     $post_status = is_user_logged_in() ? array('publish', 'private') : 'publish';
     $args = wp_parse_args(array('post__in' => self::$event_daily_ids[$date], 'post_type' => TribeEvents::POSTTYPE, 'start_date' => tribe_event_beginning_of_day($date), 'end_date' => tribe_event_end_of_day($date), 'eventDisplay' => 'custom', 'no_found_rows' => true, 'posts_per_page' => self::$posts_per_page_limit), self::$args);
     $result = TribeEventsQuery::getEvents($args, true);
     return $result;
 }