/** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget($args, $instance) { global $post; // make sure there is some kinda post object if ($post instanceof WP_Post) { $before_widget = ''; $before_title = ''; $after_title = ''; $after_widget = ''; // but NOT an events archives page, cuz that would be like two event lists on the same page $show_everywhere = isset($instance['show_everywhere']) ? (bool) absint($instance['show_everywhere']) : TRUE; if ($show_everywhere || !($post->post_type == 'espresso_events' && is_archive())) { // let's use some of the event helper functions' // make separate vars out of attributes extract($args); // add function to make the title a link add_filter('widget_title', array($this, 'make_the_title_a_link'), 15); // filter the title $title = apply_filters('widget_title', $instance['title']); // remove the function from the filter, so it does not affect other widgets remove_filter('widget_title', array($this, 'make_the_title_a_link'), 15); // Before widget (defined by themes). echo $before_widget; // Display the widget title if one was input (before and after defined by themes). if (!empty($title)) { echo $before_title . $title . $after_title; } // grab widget settings $category = isset($instance['category_name']) && !empty($instance['category_name']) ? $instance['category_name'] : FALSE; $show_expired = isset($instance['show_expired']) ? (bool) absint($instance['show_expired']) : FALSE; $image_size = isset($instance['image_size']) && !empty($instance['image_size']) ? $instance['image_size'] : 'medium'; $show_desc = isset($instance['show_desc']) ? (bool) absint($instance['show_desc']) : TRUE; $show_dates = isset($instance['show_dates']) ? (bool) absint($instance['show_dates']) : TRUE; $date_limit = isset($instance['date_limit']) && !empty($instance['date_limit']) ? $instance['date_limit'] : NULL; $date_range = isset($instance['date_range']) && !empty($instance['date_range']) ? $instance['date_range'] : FALSE; // start to build our where clause $where = array('status' => 'publish'); // add category if ($category) { $where['Term_Taxonomy.taxonomy'] = 'espresso_event_categories'; $where['Term_Taxonomy.Term.slug'] = $category; } // if NOT expired then we want events that start today or in the future if (!$show_expired) { $where['Datetime.DTT_EVT_end'] = array('>=', EEM_Datetime::instance()->current_time_for_query('DTT_EVT_end')); } // run the query $events = EE_Registry::instance()->load_model('Event')->get_all(array($where, 'limit' => $instance['limit'] > 0 ? '0,' . $instance['limit'] : '0,10', 'order_by' => 'Datetime.DTT_EVT_start', 'order' => 'ASC', 'group_by' => 'EVT_ID')); if (!empty($events)) { echo '<ul class="ee-upcoming-events-widget-ul">'; foreach ($events as $event) { if ($event instanceof EE_Event && (!is_single() || $post->ID != $event->ID())) { //printr( $event, '$event <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); echo '<li id="ee-upcoming-events-widget-li-' . $event->ID() . '" class="ee-upcoming-events-widget-li">'; // how big is the event name ? $name_length = strlen($event->name()); switch ($name_length) { case $name_length > 70: $len_class = ' three-line'; break; case $name_length > 35: $len_class = ' two-line'; break; default: $len_class = ' one-line'; } $event_url = apply_filters('FHEE_EEW_Upcoming_Events__widget__event_url', $event->get_permalink(), $event); echo '<h5 class="ee-upcoming-events-widget-title-h5"><a class="ee-widget-event-name-a' . $len_class . '" href="' . $event_url . '">' . $event->name() . '</a></h5>'; if (has_post_thumbnail($event->ID()) && $image_size != 'none') { echo '<div class="ee-upcoming-events-widget-img-dv"><a class="ee-upcoming-events-widget-img" href="' . $event_url . '">' . get_the_post_thumbnail($event->ID(), $image_size) . '</a></div>'; } $desc = $event->short_description(25); if ($show_dates) { $date_format = apply_filters('FHEE__espresso_event_date_range__date_format', get_option('date_format')); $time_format = apply_filters('FHEE__espresso_event_date_range__time_format', get_option('time_format')); $single_date_format = apply_filters('FHEE__espresso_event_date_range__single_date_format', get_option('date_format')); $single_time_format = apply_filters('FHEE__espresso_event_date_range__single_time_format', get_option('time_format')); if ($date_range == TRUE) { echo espresso_event_date_range($date_format, $time_format, $single_date_format, $single_time_format, $event->ID()); } else { echo espresso_list_of_event_dates($event->ID(), $date_format, $time_format, FALSE, NULL, TRUE, TRUE, $date_limit); } } if ($show_desc && $desc) { echo '<p style="margin-top: .5em">' . $desc . '</p>'; } echo '</li>'; } } echo '</ul>'; } // After widget (defined by themes). echo $after_widget; } } }
?> <div class="post-header section"> <div class="post-header-inner section-inner medium"> <?php if ('espresso_events' == get_post_type()) { ?> <p class="post-meta-top"><a href="<?php the_permalink(); ?> " title="<?php espresso_event_date_range(); ?> "><?php espresso_event_date_range(); ?> </a> <?php if (comments_open()) { echo '<span class="sep">/</span> '; comments_popup_link('0 comments', '1 comment', '% comments', 'post-comments'); } ?> <?php edit_post_link('Edit', '<span class="sep">/</span> '); ?> </p> <?php } elseif ('espresso_venues' == get_post_type()) { ?> <p class="post-meta-top"><a href="<?php