/**
  * Available only on multisite.
  */
 public static function serve()
 {
     if (!is_multisite()) {
         return false;
     }
     $me = new Eab_Network();
     $me->_add_hooks();
 }
 function widget($args, $instance)
 {
     extract($args);
     $title = apply_filters('widget_title', $instance['title']);
     $limit = (int) $instance['limit'];
     $events = Eab_Network::get_upcoming_events($limit);
     echo $before_widget;
     if ($title) {
         echo $before_title . $title . $after_title;
     }
     if ($events) {
         echo '<ul>';
         foreach ($events as $event) {
             echo '<li><a href="' . get_blog_permalink($event->blog_id, $event->ID) . '">' . $event->post_title . '</a>' . '</li>';
         }
         echo '</ul>';
     } else {
         echo '<p class="eab-widget-no_events">' . __('No upcoming events on network', $this->translation_domain) . '</p>';
     }
     echo $after_widget;
 }
 /**
  * Archive shortcode handler.
  */
 function process_archive_shortcode($args = array(), $content = false)
 {
     $args = $this->_preparse_arguments($args, array('network' => false, 'date' => false, 'relative_date' => false, 'lookahead' => false, 'weeks' => false, 'category' => false, 'categories' => false, 'limit' => false, 'order' => false, 'paged' => false, 'page' => 1, 'class' => false, 'template' => 'get_shortcode_archive_output', 'override_styles' => false, 'override_scripts' => false));
     if ($args['paged']) {
         $requested_page = get_query_var('page');
         $requested_page = $requested_page ? $requested_page : get_query_var('paged');
         $args['page'] = $requested_page ? $requested_page : $args['page'];
     }
     $events = array();
     if (is_multisite() && $args['network']) {
         $events = Eab_Network::get_upcoming_events(30);
     } else {
         $query = $this->_to_query_args($args);
         $order_method = $args['order'] ? create_function('', 'return "' . $args['order'] . '";') : false;
         if ($order_method) {
             add_filter('eab-collection-date_ordering_direction', $order_method);
         }
         // Lookahead - depending on presence, use regular upcoming query, or poll week count
         if ($args['lookahead']) {
             $method = $args['weeks'] ? create_function('', 'return ' . $args['weeks'] . ';') : false;
             if ($method) {
                 add_filter('eab-collection-upcoming_weeks-week_number', $method);
             }
             $events = Eab_CollectionFactory::get_upcoming_weeks_events($args['date'], $query);
             if ($method) {
                 remove_filter('eab-collection-upcoming_weeks-week_number', $method);
             }
         } else {
             // No lookahead, get the full month only
             $events = Eab_CollectionFactory::get_upcoming_events($args['date'], $query);
         }
         if ($order_method) {
             remove_filter('eab-collection-date_ordering_direction', $order_method);
         }
     }
     $output = Eab_Template::util_apply_shortcode_template($events, $args);
     if ($output) {
         if ($args['paged'] && !(is_multisite() && $args['network'])) {
             if ($method) {
                 add_filter('eab-collection-upcoming_weeks-week_number', $method);
             }
             $events_query = $args['lookahead'] ? Eab_CollectionFactory::get_upcoming_weeks($args['date'], $query) : Eab_CollectionFactory::get_upcoming($args['date'], $query);
             if ($method) {
                 remove_filter('eab-collection-upcoming_weeks-week_number', $method);
             }
             $output .= eab_call_template('get_shortcode_paging', $events_query, $args);
         }
     } else {
         $output = $content;
     }
     if (!$args['override_styles']) {
         wp_enqueue_style('eab_front');
     }
     if (!$args['override_scripts']) {
         wp_enqueue_script('eab_event_js');
         do_action('eab-javascript-do_enqueue_api_scripts');
     }
     return $output;
 }
 private function _render_calendar($date, $network = false, $category = array())
 {
     $args = array();
     $category_class = false;
     if (!empty($category)) {
         $args['tax_query'] = array('relation' => 'OR');
         foreach ($category as $cat) {
             if (!$cat) {
                 continue;
             }
             $args['tax_query'][] = array('taxonomy' => 'eab_events_category', 'field' => 'id', 'terms' => $cat);
         }
         if (1 === count($category)) {
             $term = get_term_by('id', $category[0], 'eab_events_category');
             $category_class = !empty($term->slug) ? $term->slug : false;
         }
     }
     $events = $network ? Eab_Network::get_upcoming_events(10) : Eab_CollectionFactory::get_upcoming_events($date, $args);
     if (!class_exists('Eab_CalendarTable_UpcomingCalendarWidget')) {
         require_once EAB_PLUGIN_DIR . 'lib/class_eab_calendar_helper.php';
     }
     $renderer = new Eab_CalendarTable_UpcomingCalendarWidget($events);
     $renderer->set_class($category_class);
     return $renderer->get_month_calendar($date);
 }
    define('EAB_MAX_UPCOMING_EVENTS', 500, true);
}
require_once EAB_PLUGIN_DIR . 'lib/class_eab_error_reporter.php';
Eab_ErrorReporter::serve();
require_once EAB_PLUGIN_DIR . 'lib/class_eab_options.php';
require_once EAB_PLUGIN_DIR . 'lib/class_eab_collection.php';
require_once EAB_PLUGIN_DIR . 'lib/class_eab_codec.php';
require_once EAB_PLUGIN_DIR . 'lib/class_eab_event_model.php';
require_once EAB_PLUGIN_DIR . 'lib/class_eab_template.php';
require_once EAB_PLUGIN_DIR . 'lib/class_eab_api.php';
require_once EAB_PLUGIN_DIR . 'lib/class-eab-taxonomies.php';
// Lets get things started
$__booking = events_and_bookings();
// @TODO: Refactor
require_once EAB_PLUGIN_DIR . 'lib/class_eab_network.php';
Eab_Network::serve();
require_once EAB_PLUGIN_DIR . 'lib/class_eab_shortcodes.php';
Eab_Shortcodes::serve();
require_once EAB_PLUGIN_DIR . 'lib/class_eab_scheduler.php';
Eab_Scheduler::serve();
require_once EAB_PLUGIN_DIR . 'lib/class_eab_addon_handler.php';
Eab_AddonHandler::serve();
require_once EAB_PLUGIN_DIR . 'lib/default_filters.php';
if (is_admin()) {
    require_once EAB_PLUGIN_DIR . 'lib/class_eab_admin_tutorial.php';
    Eab_AdminTutorial::serve();
    require_once dirname(__FILE__) . '/lib/contextual_help/class_eab_admin_help.php';
    Eab_AdminHelp::serve();
    // Dashboard notification
    global $wpmudev_notices;
    if (!is_array($wpmudev_notices)) {