| 1: | <?php |
| 2: | |
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | class EventPost_Map extends WP_Widget { |
| 9: | var $defaults; |
| 10: | function __construct() { |
| 11: | global $EventPost; |
| 12: | parent::__construct(false, __( 'Events Map', 'event-post' ),array('description'=>__( 'Map of events posts', 'event-post' ))); |
| 13: | $this->defaults = array( |
| 14: | 'numberposts' => '', |
| 15: | 'widgettitle' => '', |
| 16: | 'cat' => '', |
| 17: | 'tag' => '', |
| 18: | 'height' => '', |
| 19: | 'width' => '', |
| 20: | 'future' => 0, |
| 21: | 'past' => 0, |
| 22: | 'thumbnail' => 0, |
| 23: | 'thumbnail_size' => '', |
| 24: | 'excerpt' => 0, |
| 25: | 'tile' => $EventPost->settings['tile'], |
| 26: | 'zoom' => '', |
| 27: | ); |
| 28: | |
| 29: | foreach($EventPost->map_interactions as $int_key=>$int_name){ |
| 30: | $this->defaults[$int_key]=true; |
| 31: | } |
| 32: | } |
| 33: | public function EventPost_Map(){ |
| 34: | $this->__construct(); |
| 35: | } |
| 36: | function widget($args, $local_instance) { |
| 37: | if(!defined('ALLOW_DEPRECATED') || !ALLOW_DEPRECATED) { |
| 38: | _deprecated_function(__FUNCTION__, '5.9.0', __('Legacy widgets have been deprecated. Consider using blocks instead.', 'event-post')); |
| 39: | } |
| 40: | global $EventPost; |
| 41: | extract( $args ); |
| 42: | $instance = wp_parse_args((array) $local_instance, $this->defaults); |
| 43: | |
| 44: | $numberposts = intval($instance['numberposts']); |
| 45: | $future = intval($instance['future']); |
| 46: | $past = intval($instance['past']); |
| 47: | $cat = sanitize_text_field($instance['cat']); |
| 48: | $tag = sanitize_text_field($instance['tag']); |
| 49: | |
| 50: | $events = $EventPost->get_events( |
| 51: | array( |
| 52: | 'nb' => $numberposts, |
| 53: | 'future' => $future, |
| 54: | 'past' => $past, |
| 55: | 'geo' => 1, |
| 56: | 'cat' => $cat, |
| 57: | 'tag' => $tag |
| 58: | ) |
| 59: | ); |
| 60: | if (sizeof($events) > 0) { |
| 61: | echo $args['before_widget']; |
| 62: | if (!empty($instance['widgettitle'])) { |
| 63: | echo $args['before_title']; |
| 64: | echo $instance['widgettitle']; |
| 65: | echo $args['after_title']; |
| 66: | } |
| 67: | $atts = array( |
| 68: | 'events' => $events, |
| 69: | 'width' => esc_attr($instance['width']), |
| 70: | 'height' => esc_attr($instance['height']), |
| 71: | 'zoom' => esc_attr($instance['zoom']), |
| 72: | 'geo' => 1, |
| 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: | 'tile' => esc_attr($instance['tile']) |
| 78: | ); |
| 79: | foreach($EventPost->map_interactions as $int_key=>$int_name){ |
| 80: | $atts[$int_key] = isset($instance[$int_key]) ? esc_attr($instance[$int_key]) : ''; |
| 81: | } |
| 82: | echo $EventPost->list_events($atts, 'event_geolist', 'widget'); |
| 83: | echo $args['after_widget']; |
| 84: | } |
| 85: | } |
| 86: | |
| 87: | |
| 88: | |
| 89: | |
| 90: | |
| 91: | |
| 92: | |
| 93: | function update($new_instance, $old_instance) { |
| 94: | global $EventPost; |
| 95: | foreach($EventPost->map_interactions as $int_key=>$int_name){ |
| 96: | if(!isset($new_instance[$int_key])){ |
| 97: | $new_instance[$int_key]=false; |
| 98: | } |
| 99: | } |
| 100: | return $new_instance; |
| 101: | } |
| 102: | |
| 103: | |
| 104: | |
| 105: | |
| 106: | |
| 107: | function form($local_instance) { |
| 108: | global $EventPost; |
| 109: | $instance = wp_parse_args( (array) $local_instance, $this->defaults ); |
| 110: | |
| 111: | $cats = get_categories(); |
| 112: | $tags = get_tags(); |
| 113: | $thumbnail_sizes = $EventPost->get_thumbnail_sizes(); |
| 114: | ?> |
| 115: | <input type="hidden" id="<?php echo $this->get_field_id('widgettitle'); ?>-title" value="<?php echo $instance['widgettitle']; ?>"> |
| 116: | <p> |
| 117: | <label for="<?php echo $this->get_field_id('widgettitle'); ?>"><?php _e('Title','event-post'); ?> |
| 118: | <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']; ?>" /> |
| 119: | </label> |
| 120: | </p> |
| 121: | |
| 122: | <p style="margin-top:10px;"> |
| 123: | <label for="<?php echo $this->get_field_id('numberposts'); ?>"><?php _e('Number of posts','event-post'); ?> |
| 124: | <input id="<?php echo $this->get_field_id('numberposts'); ?>" name="<?php echo $this->get_field_name('numberposts'); ?>" type="number" value="<?php echo $instance['numberposts']; ?>" /> |
| 125: | </label> <?php _e('(-1 is no limit)','event-post'); ?> |
| 126: | </p> |
| 127: | |
| 128: | |
| 129: | <p style="margin-top:10px;"> |
| 130: | <label for="<?php echo $this->get_field_id('future'); ?>"> |
| 131: | <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); ?> /> |
| 132: | <?php _e('Display future events','event-post'); ?> |
| 133: | </label> |
| 134: | </p> |
| 135: | <p style="margin-top:10px;"> |
| 136: | <label for="<?php echo $this->get_field_id('past'); ?>"> |
| 137: | <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); ?> /> |
| 138: | <?php _e('Display past events','event-post'); ?> |
| 139: | </label> |
| 140: | </p> |
| 141: | |
| 142: | <p> |
| 143: | <label for="<?php echo $this->get_field_id('cat'); ?>"> |
| 144: | <span class="dashicons dashicons-category"></span> |
| 145: | <?php _e('Only in:','event-post'); ?> |
| 146: | <select class="widefat" id="<?php echo $this->get_field_id('cat'); ?>" name="<?php echo $this->get_field_name('cat'); ?>"> |
| 147: | <option value=''><?php _e('All categories','event-post') ?></option> |
| 148: | <?php |
| 149: | $cats = get_categories(); |
| 150: | foreach($cats as $_cat){ ?> |
| 151: | <option value="<?=$_cat->slug?>" <?php selected($instance['cat'], $_cat->slug , true); ?>><?=$_cat->cat_name?></option> |
| 152: | <?php } ?> |
| 153: | </select> |
| 154: | </label> |
| 155: | </p> |
| 156: | |
| 157: | <p> |
| 158: | <label for="<?php echo $this->get_field_id('tag'); ?>"> |
| 159: | <span class="dashicons dashicons-tag"></span> |
| 160: | <?php _e('Only in:','event-post'); ?> |
| 161: | <select class="widefat" id="<?php echo $this->get_field_id('tag'); ?>" name="<?php echo $this->get_field_name('tag'); ?>"> |
| 162: | <option value=''><?php _e('All tags','event-post') ?></option> |
| 163: | <?php |
| 164: | $tags = get_tags(); |
| 165: | foreach($tags as $_tag){?> |
| 166: | <option value="<?=$_tag->slug?>" <?php selected($instance['tag'], $_tag->slug , true); ?>><?=$_tag->name?></option> |
| 167: | <?php } ?> |
| 168: | </select> |
| 169: | </label> |
| 170: | </p> |
| 171: | |
| 172: | <hr> |
| 173: | <p style="margin-top:10px;"> |
| 174: | <label for="<?php echo $this->get_field_id('width'); ?>"><?php _e('Width','event-post'); ?> |
| 175: | <input id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" value="<?php echo $instance['width']; ?>" /> |
| 176: | </label> (px, %) |
| 177: | </p> |
| 178: | <p style="margin-top:10px;"> |
| 179: | <label for="<?php echo $this->get_field_id('height'); ?>"><?php _e('Height','event-post'); ?> |
| 180: | <input id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" value="<?php echo $instance['height']; ?>" /> |
| 181: | </label> (px, %) |
| 182: | </p> |
| 183: | <p style="margin-top:10px;"> |
| 184: | <label for="<?php echo $this->get_field_id('zoom'); ?>"><?php _e('Force zoom','event-post'); ?> |
| 185: | <input id="<?php echo $this->get_field_id('zoom'); ?>" name="<?php echo $this->get_field_name('zoom'); ?>" value="<?php echo $instance['zoom']; ?>" type="number" min="3" max="20" size="2"/> |
| 186: | </label> |
| 187: | </p> |
| 188: | |
| 189: | <p style="margin-top:10px;"> |
| 190: | <label for="<?php echo $this->get_field_id('thumbnail'); ?>"> |
| 191: | <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); ?>/> |
| 192: | <?php _e('Show thumbnails','event-post'); ?> |
| 193: | </label> |
| 194: | </p> |
| 195: | <p> |
| 196: | <label for="<?php echo $this->get_field_id('thumbnail_size'); ?>"> |
| 197: | <?php _e('Thumbnail size:','event-post'); ?> |
| 198: | <select class="widefat" id="<?php echo $this->get_field_id('thumbnail_size'); ?>" name="<?php echo $this->get_field_name('thumbnail_size'); ?>"> |
| 199: | <option value=''></option> |
| 200: | <?php foreach($thumbnail_sizes as $size){?> |
| 201: | <option value="<?php echo $size; ?>" <?php selected($size, $instance['thumbnail_size'], true); ?>><?php echo $size; ?></option> |
| 202: | <?php } ?> |
| 203: | </select> |
| 204: | </label> |
| 205: | </p> |
| 206: | <p style="margin-top:10px;"> |
| 207: | <label for="<?php echo $this->get_field_id('excerpt'); ?>"> |
| 208: | <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); ?> /> |
| 209: | <?php _e('Show excerpt','event-post'); ?> |
| 210: | </label> |
| 211: | </p> |
| 212: | |
| 213: | <p style="margin-top:10px;"> |
| 214: | <label for="<?php echo $this->get_field_id('tile'); ?>"> |
| 215: | <?php _e('Map background', 'event-post'); ?> |
| 216: | <select id="<?php echo $this->get_field_id('tile'); ?>" name="<?php echo $this->get_field_name('tile'); ?>"> |
| 217: | <?php |
| 218: | foreach ($EventPost->maps as $id => $map): |
| 219: | ?> |
| 220: | <option value="<?php |
| 221: | if ($EventPost->settings['tile'] != $map['id']) { |
| 222: | echo $map['id']; |
| 223: | } |
| 224: | ?>" <?php selected($instance['tile'], $id, true);?>> |
| 225: | <?php echo $map['name']; ?><?php |
| 226: | if ($EventPost->settings['tile'] == $map['id']) { |
| 227: | echo' (default)'; |
| 228: | } |
| 229: | ?> |
| 230: | </option> |
| 231: | <?php endforeach; ?> |
| 232: | </select> |
| 233: | </label> |
| 234: | </p> |
| 235: | <hr> |
| 236: | <?php foreach($EventPost->map_interactions as $int_key=>$int_name): ?> |
| 237: | <p> |
| 238: | <label for="<?php echo $this->get_field_id($int_key); ?>"> |
| 239: | <input id="<?php echo $this->get_field_id($int_key); ?>" name="<?php echo $this->get_field_name($int_key); ?>" type="checkbox" value="1" <?php checked($instance[$int_key], true , true); ?>/> |
| 240: | <?php printf(__('Activate %s interaction','event-post'), $int_name); ?> |
| 241: | </label> |
| 242: | </p> |
| 243: | <?php endforeach; ?> |
| 244: | <?php |
| 245: | } |
| 246: | |
| 247: | } |
| 248: | |