1: | <?php |
2: | |
3: | |
4: | |
5: | |
6: | class EventPost_Search extends WP_Widget { |
7: | var $defaults; |
8: | function __construct() { |
9: | parent::__construct(false, __( 'Events Search Form', 'event-post' ),array('description'=>__( 'List of future events posts', 'event-post' ))); |
10: | $this->defaults = array( |
11: | 'numberposts' => '', |
12: | 'widgettitle' => '', |
13: | 'cat' => '', |
14: | 'tag' => '', |
15: | 'future' => 0, |
16: | 'past' => 0, |
17: | 'thumbnail' => 0, |
18: | 'thumbnail_size' => '', |
19: | 'excerpt' => 0, |
20: | 'feed' => 0, |
21: | 'order' => 'ASC', |
22: | 'excerpt' => '', |
23: | 'excerpt' => '', |
24: | 'excerpt' => '', |
25: | ); |
26: | |
27: | } |
28: | function EventPost_Search(){ |
29: | $this->__construct(); |
30: | } |
31: | function widget($args, $local_instance) { |
32: | if(!defined('ALLOW_DEPRECATED') || !ALLOW_DEPRECATED) { |
33: | _deprecated_function(__FUNCTION__, '5.9.0', __('Legacy widgets have been deprecated. Consider using blocks instead.', 'event-post')); |
34: | } |
35: | extract( $args ); |
36: | $instance = wp_parse_args( (array) $local_instance, $this->defaults ); |
37: | |
38: | global $EventPost; |
39: | $numberposts = intval($instance['numberposts']); |
40: | $future = intval($instance['future']); |
41: | $past = intval($instance['past']); |
42: | $cat = sanitize_text_field($instance['cat']); |
43: | $tag = sanitize_text_field($instance['tag']); |
44: | $order = sanitize_text_field($instance['order']); |
45: | |
46: | $events = $EventPost->get_events( |
47: | array( |
48: | 'nb'=>$numberposts, |
49: | 'future'=>$future, |
50: | 'past'=>$past, |
51: | 'geo'=>0, |
52: | 'cat'=>$cat, |
53: | 'tag'=>$tag, |
54: | 'order'=>$order |
55: | ) |
56: | ); |
57: | if(count($events)==0){ |
58: | return; |
59: | } |
60: | |
61: | echo $args['before_widget']; |
62: | if(!empty($instance['widgettitle'])){ |
63: | echo $args['before_title']; |
64: | echo esc_html($instance['widgettitle']); |
65: | if(!empty($instance['cat']) && $instance['feed']){ |
66: | $rss_link = admin_url('admin-ajax.php') . '?action=EventPostFeed&cat=' . $instance['cat']; |
67: | echo' <a href="' . esc_url($rss_link) . '" title="'.sprintf(__('feed of %s', 'event-post'), esc_attr($instance['cat'])).'"><span class="dashicons dashicons-rss"></span></a>'; |
68: | } |
69: | echo $args['after_title']; |
70: | } |
71: | $atts=array( |
72: | 'events' => $events, |
73: | 'class' => 'eventpost_widget', |
74: | 'thumbnail' => esc_attr($instance['thumbnail']), |
75: | 'thumbnail_size' => esc_attr($instance['thumbnail_size']), |
76: | 'excerpt' => esc_attr($instance['excerpt']), |
77: | 'order' => $order |
78: | ); |
79: | echo $EventPost->list_events($atts, 'event_list', 'widget'); |
80: | echo $args['after_widget']; |
81: | } |
82: | |
83: | function update($new_instance, $old_instance) { |
84: | return $new_instance; |
85: | } |
86: | |
87: | function form($local_instance) { |
88: | global $EventPost; |
89: | $instance = wp_parse_args( (array) $local_instance, $this->defaults ); |
90: | |
91: | $cats = get_categories(); |
92: | $tags = get_tags(); |
93: | $thumbnail_sizes = $EventPost->get_thumbnail_sizes(); |
94: | ?> |
95: | <input type="hidden" id="<?php echo $this->get_field_id('widgettitle'); ?>-title" value="<?php echo $instance['widgettitle']; ?>"> |
96: | <p> |
97: | <label for="<?php echo $this->get_field_id('widgettitle'); ?>"><?php _e('Title','event-post'); ?> |
98: | <input class="widefat" id="<?php echo $this->get_field_id('widgettitle'); ?>" name="<?php echo $this->get_field_name('widgettitle'); ?>" type="text" value="<?php echo $instance['widgettitle']; ?>" /> |
99: | </label> |
100: | </p> |
101: | |
102: | <p style="margin-top:10px;"> |
103: | <label for="<?php echo $this->get_field_id('numberposts'); ?>"><?php _e('Number of posts','event-post'); ?> |
104: | <input id="<?php echo $this->get_field_id('numberposts'); ?>" name="<?php echo $this->get_field_name('numberposts'); ?>" type="number" value="<?php echo $instance['numberposts']; ?>" /> |
105: | </label> <?php _e('(-1 is no limit)','event-post'); ?> |
106: | </p> |
107: | |
108: | |
109: | <p style="margin-top:10px;"> |
110: | <label for="<?php echo $this->get_field_id('future'); ?>"> |
111: | <input id="<?php echo $this->get_field_id('future'); ?>" name="<?php echo $this->get_field_name('future'); ?>" type="checkbox" value="1" <?php checked($instance['future'], true, true); ?> /> |
112: | <?php _e('Display future events','event-post'); ?> |
113: | </label> |
114: | </p> |
115: | <p style="margin-top:10px;"> |
116: | <label for="<?php echo $this->get_field_id('past'); ?>"> |
117: | <input id="<?php echo $this->get_field_id('past'); ?>" name="<?php echo $this->get_field_name('past'); ?>" type="checkbox" value="1" <?php checked($instance['past'], true, true); ?> /> |
118: | <?php _e('Display past events','event-post'); ?> |
119: | </label> |
120: | </p> |
121: | |
122: | <p> |
123: | <label for="<?php echo $this->get_field_id('cat'); ?>"> |
124: | <span class="dashicons dashicons-category"></span> |
125: | <?php _e('Only in:','event-post'); ?> |
126: | <select class="widefat" id="<?php echo $this->get_field_id('cat'); ?>" name="<?php echo $this->get_field_name('cat'); ?>"> |
127: | <option value=''><?php _e('All categories','event-post') ?></option> |
128: | <?php foreach($cats as $_cat){ ?> |
129: | <option value="<?php echo $_cat->slug; ?>" <?php selected($_cat->slug, $instance['cat'], true); ?>><?php echo $_cat->cat_name; ?></option> |
130: | <?php } ?> |
131: | </select> |
132: | </label> |
133: | </p> |
134: | |
135: | <p style="margin-top:10px;"> |
136: | <label for="<?php echo $this->get_field_id('feed'); ?>"> |
137: | <input id="<?php echo $this->get_field_id('feed'); ?>" name="<?php echo $this->get_field_name('feed'); ?>" type="checkbox" value="1" <?php checked($instance['feed'], true, true); ?> /> |
138: | <?php _e('Show category ICS link','event-post'); ?> |
139: | </label> |
140: | </p> |
141: | <hr> |
142: | |
143: | <p> |
144: | <label for="<?php echo $this->get_field_id('tag'); ?>"> |
145: | <span class="dashicons dashicons-tag"></span> |
146: | <?php _e('Only in:','event-post'); ?> |
147: | <select class="widefat" id="<?php echo $this->get_field_id('tag'); ?>" name="<?php echo $this->get_field_name('tag'); ?>"> |
148: | <option value=''><?php _e('All tags','event-post') ?></option> |
149: | <?php foreach($tags as $_tag){?> |
150: | <option value="<?php echo $_tag->slug; ?>" <?php selected($_tag->slug, $instance['tag'], true); ?>><?php echo $_tag->name; ?></option> |
151: | <?php } ?> |
152: | </select> |
153: | </label> |
154: | </p> |
155: | |
156: | <hr> |
157: | <p style="margin-top:10px;"> |
158: | <label for="<?php echo $this->get_field_id('thumbnail'); ?>"> |
159: | <input id="<?php echo $this->get_field_id('thumbnail'); ?>" name="<?php echo $this->get_field_name('thumbnail'); ?>" type="checkbox" value="1" <?php checked($instance['thumbnail'], true, true); ?> /> |
160: | <?php _e('Show thumbnails','event-post'); ?> |
161: | </label> |
162: | </p> |
163: | <p> |
164: | <label for="<?php echo $this->get_field_id('thumbnail_size'); ?>"> |
165: | <?php _e('Thumbnail size:','event-post'); ?> |
166: | <select class="widefat" id="<?php echo $this->get_field_id('thumbnail_size'); ?>" name="<?php echo $this->get_field_name('thumbnail_size'); ?>"> |
167: | <option value=''></option> |
168: | <?php foreach($thumbnail_sizes as $size){?> |
169: | <option value="<?php echo $size; ?>" <?php selected($size, $instance['thumbnail_size'], true); ?>><?php echo $size; ?></option> |
170: | <?php } ?> |
171: | </select> |
172: | </label> |
173: | </p> |
174: | |
175: | |
176: | <p style="margin-top:10px;"> |
177: | <label for="<?php echo $this->get_field_id('excerpt'); ?>"> |
178: | <input id="<?php echo $this->get_field_id('excerpt'); ?>" name="<?php echo $this->get_field_name('excerpt'); ?>" type="checkbox" value="1" <?php checked($instance['excerpt'], true, true); ?> /> |
179: | <?php _e('Show excerpt','event-post'); ?> |
180: | </label> |
181: | </p> |
182: | |
183: | <p> |
184: | <label for="<?php echo $this->get_field_id('order'); ?>"> |
185: | <?php _e('Order:','event-post'); ?> |
186: | <select class="widefat" id="<?php echo $this->get_field_id('order'); ?>" name="<?php echo $this->get_field_name('order'); ?>"> |
187: | <option value='DESC' <?php selected('DESC', $instance['order'], true); ?>><?php _e('Reverse chronological','event-post') ?></option> |
188: | <option value='ASC' <?php selected('ASC', $instance['order'], true); ?>><?php _e('Chronological','event-post') ?></option> |
189: | </select> |
190: | </label> |
191: | </p> |
192: | <?php |
193: | } |
194: | |
195: | } |
196: | |