'events', 'description' => __('A widget to display your upcoming events.', 'event_espresso')); /* Widget control settings. */ $control_options = array('width' => 300, 'height' => 350, 'id_base' => 'events-widget'); /* Create the widget. */ $this->WP_Widget('events-widget', __('Event Espresso Upcoming Events Widget', 'event_espresso'), $widget_options, $control_options); } function widget($args, $instance) { extract($args); global $wpdb, $org_options; /* Our variables from the widget settings. */ $title = apply_filters('widget_title', $instance['title']); /* Before widget (defined by themes). */ echo $before_widget; /* Display the widget title if one was input (before and after defined by themes). */ if ($title) echo $before_title . $title . $after_title; if ($instance['category_name'] != '') { $type = 'category'; } $event_page_id = $org_options['event_page_id']; $show_expired = $instance['show_expired'] == 'false' ? " AND (e.start_date >= '" . date('Y-m-d') . "' OR e.event_status = 'O' OR e.registration_end >= '" . date('Y-m-d') . "') " : ''; $show_secondary = $instance['show_secondary'] == 'false' ? " AND e.event_status != 'S' " : ''; $show_deleted = $instance['show_deleted'] == 'false' ? " AND e.event_status != 'D' " : ''; $show_recurrence = $instance['show_recurrence'] == 'false' ? " AND e.recurrence_id = '0' " : ''; $limit = $instance['limit'] > 0 ? " LIMIT 0," . $instance['limit'] . " " : ' LIMIT 0,5 '; //$order_by = $order_by != 'NULL'? " ORDER BY ". $order_by ." ASC " : " ORDER BY date(start_date), id ASC "; $order_by = " ORDER BY date(start_date), id ASC "; if (isset($type) && $type == 'category') { $sql = "SELECT e.*, c.category_name, c.category_name, c.category_desc, ese.start_time FROM " . EVENTS_CATEGORY_TABLE . " c "; $sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.cat_id = c.id "; $sql .= " JOIN " . EVENTS_DETAIL_TABLE . " e ON e.id = r.event_id "; $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id "; $sql .= " WHERE c.id = '" . $instance['category_name'] . "' "; $sql .= " AND e.is_active = 'Y' "; } else { $sql = "SELECT e.*, ese.start_time FROM " . EVENTS_DETAIL_TABLE . " e "; $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id "; $sql .= " WHERE e.is_active = 'Y' "; } $sql .= $show_expired; $sql .= $show_secondary; $sql .= $show_deleted; $sql .= $show_recurrence; $sql .= " GROUP BY e.id "; $sql .= $order_by; $sql .= $limit; $events = $wpdb->get_results($sql); //print_r($events); //event_espresso_get_event_details($sql); foreach ($events as $event) { $event->id = $event->id; $event->event_name = isset($event->event_name) ? $event->event_name : ''; $event->start_date = isset($event->start_date) ? $event->start_date : ''; $event->category_name = isset($event->category_name) ? $event->category_name : ''; $event->category_desc = isset($event->category_desc) ? $event->category_desc : ''; $event->externalURL = isset($event->externalURL) ? $event->externalURL : ''; $registration_url = $event->externalURL != '' ? $event->externalURL : espresso_reg_url($event->id); $all_meta = array( 'is_active' => $event->is_active, 'event_status' => $event->event_status, 'event_address' => $event->address, 'event_address2' => $event->address2, 'registration_startT' => $event->registration_startT, 'registration_start' => $event->registration_start, 'registration_endT' => $event->registration_endT, 'registration_end' => $event->registration_end, 'start_date' => event_date_display($event->start_date, get_option('date_format')), 'start_time' => event_date_display($event->start_time, get_option('time_format')), 'end_date' => event_date_display($event->end_date, get_option('date_format')), ); //Here we can create messages based on the event status $status = event_espresso_get_is_active($event->id, $all_meta); //Print out the array of event status options //print_r (event_espresso_get_is_active($event->id)); $status_display = ' - ' . $status['display_custom']; $status_display_ongoing = $status['status'] == 'ONGOING' ? ' - ' . $status['display_custom'] : ''; $status_display_deleted = $status['status'] == 'DELETED' ? ' - ' . $status['display_custom'] : ''; $status_display_secondary = $status['status'] == 'SECONDARY' ? ' - ' . $status['display_custom'] : ''; //Waitlist event $status_display_reg_closed = $status['status'] == 'REGISTRATION_CLOSED' ? ' - ' . $status['display_custom'] : ''; $status_display_not_open = $status['status'] == 'REGISTRATION_NOT_OPEN' ? ' - ' . $status['display_custom'] : ''; $status_display_open = $status['status'] == 'REGISTRATION_OPEN' ? ' - ' . $status['display_custom'] : ''; //You can also display a custom message. For example, this is a custom registration not open message: $status_display_custom_closed = $status['status'] == 'REGISTRATION_CLOSED' ? ' - ' . __('Regsitration is Closed', 'event_espresso') . '' : ''; //End if (!is_user_logged_in() && defined('EVENTS_MEMBER_REL_TABLE') && !empty($member_only) && $member_only == 'Y') { //Display a message if the user is not logged in. //_e('Member Only Event. Please ','event_espresso') . event_espresso_user_login_link() . '.'; } else { //Serve up the event list //As of version 3.0.17 the event list details have been moved to event_list_display.php switch ($status['status']) { case 'NOT_ACTIVE': //Don't show the event if any of the above are true break; default: ?>
event_name) ?> - start_date) ?>
__('Upcoming Events', 'event_espresso'), 'category_name' => '', 'show_expired' => 'false', 'show_secondary' => 'false', 'show_deleted' => 'false', 'show_recurrence' => 'false'); $instance = wp_parse_args((array) $instance, $defaults); $values = array( array('id' => 'false', 'text' => __('No', 'event_espresso')), array('id' => 'true', 'text' => __('Yes', 'event_espresso'))); //select_input('allow_multiple', $values, $allow_multiple); ?>
get_field_name('category_name')) ?>
get_field_name('show_expired'), $values, $instance['show_expired']); ?>
get_field_name('show_secondary'), $values, $instance['show_secondary']); ?>
get_field_name('show_deleted'), $values, $instance['show_deleted']); ?>
get_field_name('show_recurrence'), $values, $instance['show_recurrence']); ?>