[Plugin: The Events Calendar] Empty Widget li With No Upcoming Event (5 posts)

  1. sassymonkey
    Posted 6 years ago #

    I notice that the The Events Plugin widget can be set to NOT display in the sidebar if no upcoming events are available. That's great but the plugin still places an empty list item (li) into the sidebar.

    This can be a pain since styling the list items (such as horizontal rules or whatever) will cause an empty sidebar area to show up with no content. Hence, there might be two horizontal rules (one for the empty Upcoming Events list item and then a second rule immediately below for the next sidebar list item that has content).

    Seems like a much better approach to have no list item appear at all if there are no upcoming events.

  2. tokidoki2005
    Posted 6 years ago #

    on events-list-widget.class.php
    Look for
    /* Before widget (defined by themes). */
    from that statement all the way to:
    /* After widget (defined by themes). */

    replace everything in-between with:

    /* Before widget (defined by themes). */
    				if( function_exists( 'get_events' ) ) {
    					$old_display = $wp_query->get('eventDisplay');
    					$wp_query->set('eventDisplay', 'upcoming');
    					$posts = get_events($limit, The_Events_Calendar::CATEGORYNAME);
    				/* Title of widget (before and after defined by themes). */
    				if ( $title && !$noUpcomingEvents )
    				echo $before_widget;
    				echo $before_title . $title . $after_title;
    				if( $posts ) {
    					/* Display list of events. */
    						if( function_exists( 'get_events' ) ) {
    							echo "<ul class='upcoming'>";
    							foreach( $posts as $post ) :
    								if (file_exists(TEMPLATEPATH.'/events/events-list-load-widget-display.php') ) {
    									include (TEMPLATEPATH.'/events/events-list-load-widget-display.php');
    								} else {
    									include( dirname( __FILE__ ) . '/views/events-list-load-widget-display.php' );
    							echo "</ul>";
    							$wp_query->set('eventDisplay', $old_display);
    						/* Display link to all events */
    						echo '<div class="dig-in"><a href="' . $event_url . '">' . __('View All Events', $this->pluginDomain ) . '</a></div>';
    			echo $after_widget;	}
    			else if( !$noUpcomingEvents ) _e('There are no upcoming events at this time.', $this->pluginDomain);
    				/* After widget (defined by themes). */

    All I did was put the echo $before_widget; and echo $after_widget;
    inside the if ( $title && !$noUpcomingEvents ) loop

  3. justinendler
    Posted 6 years ago #


    Thanks for the fix. This will be included in the next release.


  4. sassymonkey
    Posted 6 years ago #

    Excellent! And thanks for both the fix and integrating it so quickly. It's working perfectly now. Thanks again.

  5. kgagne
    Posted 6 years ago #

    Yes, thanks for this fix!

Topic Closed

This topic has been closed to new replies.

About this Topic