Advertisement
Guest User

Untitled

a guest
Jan 7th, 2014
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. if( !class_exists( 'Events_List_Widget' ) ) {
  3.     /**
  4.      * Event List Widget
  5.      *
  6.      * Creates a widget that displays the next upcoming x events
  7.      */
  8.  
  9.     class Events_List_Widget extends WP_Widget {
  10.        
  11.         public $pluginDomain = 'the-events-calendar';
  12.        
  13.         function Events_List_Widget() {
  14.                 /* Widget settings. */
  15.                 $widget_ops = array( 'classname' => 'eventsListWidget', 'description' => __( 'A widget that displays the next upcoming x events.', $this->pluginDomain) );
  16.  
  17.                 /* Widget control settings. */
  18.                 $control_ops = array( 'id_base' => 'events-list-widget' );
  19.  
  20.                 /* Create the widget. */
  21.                 $this->WP_Widget( 'events-list-widget', 'Events List Widget', $widget_ops, $control_ops );
  22.             }
  23.        
  24.             function widget( $args, $instance ) {
  25.                 global $wp_query, $sp_ecp, $post;
  26.                 $old_post = $post;
  27.                 extract( $args, EXTR_SKIP );
  28.                 extract( $instance, EXTR_SKIP );
  29.                 // extracting $instance provides $title, $limit, $no_upcoming_events, $start, $end, $venue, $address, $city, $state, $province'], $zip, $country, $phone , $cost
  30.                 $title = apply_filters('widget_title', $title );
  31.                
  32.                 if ( sp_get_option('viewOption') == 'upcoming') {
  33.                     $event_url = sp_get_listview_link();
  34.                 } else {
  35.                     $event_url = sp_get_gridview_link();
  36.                 }
  37.  
  38.                 if( function_exists( 'sp_get_events' ) ) {
  39.                     $old_display = $wp_query->get('eventDisplay');
  40.                     $wp_query->set('eventDisplay', 'upcoming');
  41.                     $posts = sp_get_events( 'numResults=' . $limit .'&eventCat=' . $category );
  42.                     $template = $sp_ecp->getTemplateHierarchy('events-list-load-widget-display');
  43.                 }
  44.                
  45.                 // if no posts, and the don't show if no posts checked, let's bail
  46.                 if ( ! $posts && $no_upcoming_events ) {
  47.                     return;
  48.                 }
  49.                
  50.                 /* Before widget (defined by themes). */
  51.                 echo $before_widget;
  52.                
  53.                 /* Title of widget (before and after defined by themes). */
  54.                 echo ( $title ) ? $before_title . $title . $after_title : '';
  55.                                    
  56.                 if ( $posts ) {
  57.                     /* Display list of events. */
  58.                     echo "<ul class='two-col-special'>";
  59.                     echo "<li>";
  60.                     foreach( $posts as $post ) :
  61.                         setup_postdata($post);
  62.                         include $template;
  63.                     endforeach;
  64.                     echo "</li>";
  65.                     echo "</ul>";
  66.  
  67.                     $wp_query->set('eventDisplay', $old_display);
  68.                    
  69.                     /* Display link to all events */
  70.                     echo '<div class="dig-in"><a href="' . $event_url . '">' . __('View All Events', $this->pluginDomain ) . '</a></div>';
  71.                 }
  72.                 else {
  73.                     _e('There are no upcoming events at this time.', $this->pluginDomain);
  74.                 }
  75.  
  76.                 /* After widget (defined by themes). */
  77.                 echo $after_widget;
  78.                 $post = $old_post;
  79.             }  
  80.        
  81.             function update( $new_instance, $old_instance ) {
  82.                     $instance = $old_instance;
  83.  
  84.                     /* Strip tags (if needed) and update the widget settings. */
  85.                     $instance['title'] = strip_tags( $new_instance['title'] );
  86.                     $instance['limit'] = $new_instance['limit'];
  87.                     $instance['no_upcoming_events'] = $new_instance['no_upcoming_events'];
  88.                     $instance['start'] = $new_instance['start'];
  89.                     $instance['end'] = $new_instance['end'];
  90.                     $instance['venue'] = $new_instance['venue'];
  91.                     $instance['country'] = $new_instance['country'];
  92.                     $instance['address'] = $new_instance['address'];
  93.                     $instance['city'] = $new_instance['city'];
  94.                     $instance['region'] = $new_instance['region'];
  95.                     $instance['zip'] = $new_instance['zip'];
  96.                     $instance['phone'] = $new_instance['phone'];
  97.                     $instance['cost'] = $new_instance['cost'];
  98.                     $instance['category'] = $new_instance['category'];
  99.  
  100.                     return $instance;
  101.             }
  102.        
  103.             function form( $instance ) {
  104.                 /* Set up default widget settings. */
  105.                 $defaults = array( 'title' => 'Upcoming Events', 'limit' => '5', 'start' => true, 'end' => false, 'venue' => false, 'country' => true, 'address' => false, 'city' => true, 'region' => true, 'zip' => false, 'phone' => false, 'cost' => false,'category' => false);
  106.                 $instance = wp_parse_args( (array) $instance, $defaults );         
  107.                 include( $sp_ecp->pluginPath . 'views/events-list-load-widget-admin.php' );
  108.             }
  109.     }
  110.  
  111.     /* Add function to the widgets_ hook. */
  112.     add_action( 'widgets_init', 'events_list_load_widgets',100 );
  113.  
  114.     /* Function that registers widget. */
  115.     function events_list_load_widgets() {
  116.         global $pluginDomain;
  117.         register_widget( 'Events_List_Widget' );
  118.         // load text domain after class registration
  119.         load_plugin_textdomain( 'the-events-calendar', false, basename(dirname(__FILE__)) . '/lang/');
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement