Events Manager

'title' => __('Events','events-manager'),
'scope' => 'future',
'order' => 'ASC',
'limit' => 5,
'category' => 0,
'format' => '

  • #_EVENTLINK
    • #_EVENTDATES
    • #_LOCATIONTOWN

',
'nolistwrap' => false,
'orderby' => 'event_start_date,event_start_time,event_name',
'all_events' => 0,
'all_events_text' => __('all events', 'events-manager'),
'no_events_text' => '

  • '.__('No events', 'events-manager').'

'
);
$this->em_orderby_options = apply_filters('em_settings_events_default_orderby_ddm', array(
'event_start_date,event_start_time,event_name' => __('start date, start time, event name','events-manager'),
'event_name,event_start_date,event_start_time' => __('name, start date, start time','events-manager'),
'event_name,event_end_date,event_end_time' => __('name, end date, end time','events-manager'),
'event_end_date,event_end_time,event_name' => __('end date, end time, event name','events-manager'),
));
$widget_ops = array('description' => __( "Display a list of events on Events Manager.", 'events-manager') );
parent::__construct(false, $name = 'Events', $widget_ops);
}

/** @see WP_Widget::widget */
function widget($args, $instance) {
$instance = array_merge($this->defaults, $instance);
$instance = $this->fix_scope($instance); // depcreciate

echo $args['before_widget'];
if( !empty($instance['title']) ){
echo $args['before_title'];
echo apply_filters('widget_title',$instance['title'], $instance, $this->id_base);
echo $args['after_title'];
}
//remove owner searches
$instance['owner'] = false;

//legacy stuff
//add li tags to old widgets that have no forced li wrappers
if ( !preg_match('/^<li/i', trim($instance['format'])) ) $instance['format'] = '

  • '. $instance['format'] .'

';
if (!preg_match('/^<li/i', trim($instance['no_events_text'])) ) $instance['no_events_text'] = '

  • '.$instance['no_events_text'].'

';
//orderby fix for previous versions with old orderby values
if( !array_key_exists($instance['orderby'], $this->em_orderby_options) ){
//replace old values
$old_vals = array(
'name' => 'event_name',
'end_date' => 'event_end_date',
'start_date' => 'event_start_date',
'end_time' => 'event_end_time',
'start_time' => 'event_start_time'
);
foreach($old_vals as $old_val => $new_val){
$instance['orderby'] = str_replace($old_val, $new_val, $instance['orderby']);
}
}

//get events
$events = EM_Events::get(apply_filters('em_widget_events_get_args',$instance));

//output events
echo "

    • ";

 

    • if ( count($events) > 0 ){

 

    • foreach($events as $event){

 

    • echo $event->output( $instance['format'] );

 

    • }

 

    • }else{

 

    • echo $instance['no_events_text'];

 

    • }

 

    • if ( !empty($instance['all_events']) ){

 

    • $events_link = (!empty($instance['all_events_text'])) ? em_get_link($instance['all_events_text']) : em_get_link(__('all events','events-manager'));

 

    • echo '

';
}
echo "

";

echo $args['after_widget'];
}

/** @see WP_Widget::update */
function update($new_instance, $old_instance) {
foreach($this->defaults as $key => $value){
if( !isset($new_instance[$key]) ){
$new_instance[$key] = $value;
}
//make sure formats and the no locations text are wrapped with li tags
if( ($key == 'format' || $key == 'no_events_text') && !preg_match('/^<li/i', trim($new_instance[$key])) ){
$new_instance[$key] = '

  • '.force_balance_tags($new_instance[$key]).'

';
}
//balance tags and sanitize output formats
if( in_array($key, array('format', 'no_events_text', 'all_events_text')) ){
if( is_multisite() && !em_wp_is_super_admin() ) $new_instance[$key] = wp_kses_post($new_instance[$key]); //for multisite
$new_instance[$key] = force_balance_tags($new_instance[$key]);
}
}
return $new_instance;
}

/** @see WP_Widget::form */
function form($instance) {
$instance = array_merge($this->defaults, $instance);
$instance = $this->fix_scope($instance); // depcreciate
?>









class="widefat">


" >




" >

$instance['scope'] = $instance['time_limit'].'-months';
}elseif( !empty($instance['time_limit']) && $instance['time_limit'] == 1){
$instance['scope'] = 'month';
}elseif( !empty($instance['time_limit']) && $instance['time_limit'] == 'no-limit'){
$instance['scope'] = 'all';
}
return $instance;
}
}
add_action('widgets_init', 'EM_Widget::init');