Changeset 692097
- Timestamp:
- 04/05/2013 08:41:25 AM (11 years ago)
- Location:
- event-organiser/trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
event-organiser/trunk/classes/class-eo-calendar-widget.php
r688029 r692097 140 140 $key= $month->format('YM').serialize($args).get_locale().$today->format('Y-m-d'); 141 141 $calendar = get_transient('eo_widget_calendar'); 142 if( $calendar && is_array($calendar) && isset($calendar[$key]) ){142 if( ) ){ 143 143 return $calendar[$key]; 144 144 } -
event-organiser/trunk/event-organiser.php
r688912 r692097 3 3 Plugin Name: Event Organiser 4 4 Plugin URI: http://www.wp-event-organiser.com 5 Version: 1.8. 45 Version: 1.8. 6 6 Description: Creates a custom post type 'events' with features such as reoccurring events, venues, Google Maps, calendar views and events and venue pages 7 7 Author: Stephen Harris … … 42 42 */ 43 43 global $eventorganiser_db_version; 44 $eventorganiser_db_version = '1.8. 4';44 $eventorganiser_db_version = '1.8.'; 45 45 46 46 -
event-organiser/trunk/includes/event-organiser-archives.php
r688029 r692097 339 339 $post_types = get_post_types( array('exclude_from_search' => false) ); 340 340 341 342 341 if( $post_types == 'event' ){ 343 342 $bool = true; … … 352 351 $taxonomies = wp_list_pluck( $query->tax_query->queries, 'taxonomy' ); 353 352 354 foreach ( get_post_types( array( 'exclude_from_search' => false ) ) as $pt ) { 355 $object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt ); 353 foreach ( get_post_types() as $pt ) { 354 355 if( version_compare( '3.4', get_bloginfo( 'version' ) ) <= 0 ){ 356 $object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt ); 357 }else{ 358 //Backwards compat for 3.3 359 $object_taxonomies = $pt === 'attachment' ? array() : get_object_taxonomies( $pt ); 360 } 361 356 362 if ( array_intersect( $taxonomies, $object_taxonomies ) ) 357 363 $post_types[] = $pt; 358 364 } 359 365 360 366 if( in_array( 'event', $post_types ) ){ 361 if( $exclusive && 1 == count( $post_types ) ) 367 if( $exclusive && 1 == count( $post_types ) ){ 368 $query->set( 'post_type', 'event' ); 362 369 $bool = true; 363 elseif( !$exclusive )370 364 371 $bool = true; 365 else372 366 373 $bool = false; 374 367 375 }else{ 368 376 $bool = false; -
event-organiser/trunk/includes/event-organiser-event-functions.php
r688912 r692097 9 9 * Retrieve list of events matching criteria. 10 10 * 11 * This function is a wrapper for {@see `get_posts()`}. As such you can also use `get_posts()` or {@link http://codex.wordpress.org/Class_Reference/WP_Query `WP_Query`} instead to retrieve events.12 * **All the arguments listed below can be used with them**.13 * *Arguments from {@link http://codex.wordpress.org/Template_Tags/get_posts `get_posts()`} and {@link http://codex.wordpress.org/Class_Reference/WP_Query `WP_Query`} can also be used. Their default values are as indicated by the relevant codex page.*14 * 11 * This function is a wrapper for 12 * . 13 * 14 * 15 15 * The `$args` array can include the following. 16 16 * 17 * * **event_start_before** - default: null18 * * **event_end_before** - default: null19 * * **event_start_after** - default: null20 * * **event_end_after** - default: null. This argument, and those above can take a date in 'Y-m-d'format or {@link http://wp-event-organiser.com/documentation/relative-date-formats/ relative dates}.21 * * **numberposts** - default is - 1(all events)22 * * **orderby** - default is 'eventstart'23 * * **showpastevents** - default is true(it's recommended to use `event_start_after=today` or `event_end_after=today` instead)17 * * **event_start_before** - default: 18 * * **event_end_before** - default: 19 * * **event_start_after** - default: 20 * * **event_end_after** - default: format or {@link http://wp-event-organiser.com/documentation/relative-date-formats/ relative dates}. 21 * * **numberposts** - default is (all events) 22 * * **orderby** - default is 23 * * **showpastevents** - default is (it's recommended to use `event_start_after=today` or `event_end_after=today` instead) 24 24 * 25 25 * If you use `get_posts()` or `WP_Query` instead then you should ensure the following: … … 31 31 * ###Example 32 32 * 33 33 34 * $events = eo_get_events(array( 34 35 * 'numberposts'=>5, … … 37 38 * )); 38 39 * 39 * <?phpif($events):40 * if($events): 40 41 * echo '<ul>'; 41 42 * foreach ($events as $event): 42 * //Check if all day, set format accordingly 43 * $format = ( eo_is_all_day($event->ID) ? get_option('date_format') : get_option('date_format').' '.get_option('time_format') ); 44 * printf('<li><a href="%s"> %s </a> on %s </li>', 45 * get_permalink($event->ID), 46 * get_the_title($event->ID), 47 * eo_get_the_start($format, $event->ID,null,$event->occurrence_id) 48 * ); 43 * //Check if all day, set format accordingly 44 * $format = ( eo_is_all_day($event->ID) ? get_option('date_format') : get_option('date_format').' '.get_option('time_format') ); 45 * printf( 46 * '<li><a href="%s"> %s </a> on %s </li>', 47 * get_permalink($event->ID), 48 * get_the_title($event->ID), 49 * eo_get_the_start($format, $event->ID,null,$event->occurrence_id) 50 * ); 49 51 * endforeach; 50 * echo '</ul>'; 51 * endif; ?> 52 * echo '</ul>'; 53 * endif; 54 * ?> 52 55 * 53 56 * @since 1.0.0 … … 664 667 endforeach; 665 668 666 return $occurrences;669 return ; 667 670 } 668 671 /** … … 710 713 } 711 714 712 return $occurrences;715 return ; 713 716 } 714 717 -
event-organiser/trunk/includes/event-organiser-install.php
r683356 r692097 319 319 foreach ( $blog_ids as $blog_id ) { 320 320 switch_to_blog( $blog_id ); 321 eventorganiser_uninstall_ install();321 eventorganiser_uninstall_(); 322 322 } 323 323 switch_to_blog( $current_blog_id ); 324 324 }else{ 325 eventorganiser_uninstall_ install();325 eventorganiser_uninstall_(); 326 326 } 327 327 }else { 328 eventorganiser_uninstall_ install();328 eventorganiser_uninstall_(); 329 329 } 330 330 -
event-organiser/trunk/includes/event-organiser-register.php
r688912 r692097 10 10 function eventorganiser_register_script() { 11 11 global $wp_locale; 12 $version = '1.8. 4';12 $version = '1.8.'; 13 13 14 14 $ext = (defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG) ? '' : '.min'; … … 77 77 */ 78 78 function eventorganiser_register_scripts(){ 79 $version = '1.8. 4';79 $version = '1.8.'; 80 80 $ext = (defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG) ? '' : '.min'; 81 81 -
event-organiser/trunk/includes/event-organiser-venue-functions.php
r683356 r692097 133 133 /** 134 134 * Returns the name of the venue of an event. 135 * If used with any arguments uses the venue of the current event.135 * If used with any arguments uses the venue of the current event. 136 136 * 137 137 * Returns the name of a venue specified by it's slug or ID. If used inside the loop, it can return the name of the current post's venue. If specifying the venue by ID, **the ID must be an integer**. -
event-organiser/trunk/includes/event.php
r688912 r692097 35 35 * @return int $post_id - the post ID of the updated event 36 36 */ 37 function eo_update_event($post_id, $event_data=array(), $post_data=array() ){ 38 39 $post_id = (int) $post_id; 40 41 if( empty($post_id) ) 42 return new WP_Error('eo_error','Empty post ID.'); 43 44 if( !empty($event_data['venue']) || !empty($event_data['category']) ){ 45 $post_data['taxonomy']['event-venue'] = isset($event_data['venue']) ? $event_data['venue'] : null; 46 $post_data['taxonomy']['event-category'] = isset($event_data['category']) ? $event_data['category'] : null; 47 unset($event_data['venue']); 48 unset($event_data['category']); 49 } 50 51 $event_data = apply_filters( 'eventorganiser_update_event_event_data', $event_data, $post_id, $post_data, $event_data ); 52 $post_data = apply_filters( 'eventorganiser_update_event_post_data', $post_data, $post_id, $post_data, $event_data ); 53 54 if( !empty($post_data) ){ 55 $post_data['ID'] = $post_id; 56 wp_update_post( $post_data ); 57 } 58 59 //Get previous data, parse with data to be updated 60 $prev = eo_get_event_schedule($post_id); 61 $event_data = wp_parse_args( $event_data, $prev ); 62 63 //If schedule is 'once' and dates are included - set to 'custom': 64 if( ( empty($event_data['schedule']) || 'once' == $event_data['schedule'] ) && !empty($event_data['include']) ){ 65 $event_data['schedule'] = 'custom'; 66 } 67 68 //Do we need to delete existing dates from db? 69 $delete_existing = false; 70 $diff = array(); 71 if( $prev ){ 72 foreach ( $prev as $key => $prev_value ){ 73 if( $event_data[$key] != $prev_value ){ 74 if('monthly' == $event_data['schedule'] && $key =='schedule_meta'){ 75 if( $event_data['occurs_by'] != $prev['occurs_by'] ){ 76 $diff[]=$key; 77 $delete_existing = true; 78 break; 79 } 80 }else{ 37 function eo_update_event($post_id, $event_data=array(), $post_data=array() ){ 38 39 $post_id = (int) $post_id; 40 41 if( empty($post_id) ) 42 return new WP_Error('eo_error','Empty post ID.'); 43 44 if( !empty($event_data['venue']) || !empty($event_data['category']) ){ 45 $post_data['taxonomy']['event-venue'] = isset($event_data['venue']) ? $event_data['venue'] : null; 46 $post_data['taxonomy']['event-category'] = isset($event_data['category']) ? $event_data['category'] : null; 47 unset($event_data['venue']); 48 unset($event_data['category']); 49 } 50 51 $event_data = apply_filters( 'eventorganiser_update_event_event_data', $event_data, $post_id, $post_data, $event_data ); 52 $post_data = apply_filters( 'eventorganiser_update_event_post_data', $post_data, $post_id, $post_data, $event_data ); 53 54 if( !empty($post_data) ){ 55 $post_data['ID'] = $post_id; 56 wp_update_post( $post_data ); 57 } 58 59 //Get previous data, parse with data to be updated 60 $prev = eo_get_event_schedule($post_id); 61 $event_data = wp_parse_args( $event_data, $prev ); 62 63 //If schedule is 'once' and dates are included - set to 'custom': 64 if( ( empty($event_data['schedule']) || 'once' == $event_data['schedule'] ) && !empty($event_data['include']) ){ 65 $event_data['schedule'] = 'custom'; 66 } 67 68 //Do we need to delete existing dates from db? 69 $delete_existing = false; 70 $diff = array(); 71 if( $prev ){ 72 foreach ( $prev as $key => $prev_value ){ 73 if( $event_data[$key] != $prev_value ){ 74 if('monthly' == $event_data['schedule'] && $key =='schedule_meta'){ 75 if( $event_data['occurs_by'] != $prev['occurs_by'] ){ 81 76 $diff[]=$key; 82 77 $delete_existing = true; 83 78 break; 84 79 } 80 81 82 83 85 84 } 86 85 } 87 86 } 88 89 //Need to replace occurrences 90 if( $delete_existing || !empty( $event_data['force_regenerate_dates'] ) ){ 91 //Generate occurrences 92 $event_data = _eventorganiser_generate_occurrences($event_data); 93 94 if( is_wp_error($event_data) ) 95 return $event_data; 96 97 //Delete old dates 98 eo_delete_event_occurrences($post_id); 99 100 //Insert new ones and update meta 101 $re = _eventorganiser_insert_occurrences($post_id,$event_data); 102 } 103 104 do_action( 'eventorganiser_save_event', $post_id ); 105 return $post_id; 106 } 87 } 88 89 //Need to replace occurrences 90 if( $delete_existing || !empty( $event_data['force_regenerate_dates'] ) ){ 91 //Generate occurrences 92 $event_data = _eventorganiser_generate_occurrences($event_data); 93 94 if( is_wp_error($event_data) ) 95 return $event_data; 96 97 //Delete old dates 98 eo_delete_event_occurrences($post_id); 99 100 //Insert new ones and update meta 101 $re = _eventorganiser_insert_occurrences($post_id,$event_data); 102 } 103 104 do_action( 'eventorganiser_save_event', $post_id ); 105 return $post_id; 106 } 107 107 108 108 … … 139 139 * @return int the post ID of the updated event 140 140 */ 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 141 function eo_insert_event($post_data=array(),$event_data=array()){ 142 global $wpdb; 143 144 if( !empty($event_data['venue'] ) ){ 145 $post_data['tax_input']['event-venue'] = $event_data['venue']; 146 unset($event_data['venue']); 147 } 148 if( !empty($event_data['category'] ) ){ 149 $post_data['tax_input']['event-category'] = $event_data['category']; 150 unset($event_data['category']); 151 } 152 153 //If schedule is 'once' and dates are included - set to 'custom': 154 if( ( empty($event_data['schedule']) || 'once' == $event_data['schedule'] ) && !empty($event_data['include']) ){ 155 $event_data['schedule'] = 'custom'; 156 } 157 158 $event_data = _eventorganiser_generate_occurrences($event_data); 159 160 if( is_wp_error($event_data) ) 161 return $event_data; 162 163 $event_data = apply_filters( 'eventorganiser_insert_event_event_data', $event_data, $post_data, $event_data ); 164 $post_data = apply_filters( 'eventorganiser_insert_event_post_data', $post_data, $post_data, $event_data ); 165 166 //Finally we create event (first create the post in WP) 167 $post_input = array_merge(array('post_title'=>'untitled event'), $post_data, array('post_type'=>'event')); 168 $post_id = wp_insert_post($post_input, true); 169 170 //Did the event insert correctly? 171 if ( is_wp_error( $post_id) ) 172 return $post_id; 173 174 _eventorganiser_insert_occurrences($post_id, $event_data); 175 175 176 177 178 179 176 //Action used to break cache & trigger Pro actions (& by other plug-ins?) 177 do_action( 'eventorganiser_save_event', $post_id ); 178 return $post_id; 179 } 180 180 181 181 /** … … 304 304 * @return array event schedule details 305 305 */ 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 return $event_details;353 306 function eo_get_event_schedule( $post_id=0 ){ 307 308 $post_id = (int) ( empty($post_id) ? get_the_ID() : $post_id); 309 310 if( empty($post_id) ) 311 return false; 312 313 $event_details = get_post_meta( $post_id,'_eventorganiser_event_schedule',true); 314 $event_details = wp_parse_args($event_details, array( 315 'schedule'=>'once', 316 'schedule_meta'=>'', 317 'frequency'=>1, 318 'all_day'=>0, 319 'duration_str'=>'', 320 'include'=>array(), 321 'exclude'=>array(), 322 '_occurrences'=>array(), 323 )); 324 325 $tz = eo_get_blog_timezone(); 326 $event_details['start'] = new DateTime(get_post_meta( $post_id,'_eventorganiser_schedule_start_start', true), $tz); 327 $event_details['end'] = new DateTime(get_post_meta( $post_id,'_eventorganiser_schedule_start_finish', true), $tz); 328 $event_details['schedule_start'] = clone $event_details['start']; 329 $event_details['schedule_last'] = new DateTime(get_post_meta( $post_id,'_eventorganiser_schedule_last_start', true), $tz); 330 $event_details['schedule_finish'] = new DateTime(get_post_meta( $post_id,'_eventorganiser_schedule_last_finish', true), $tz); 331 332 if( !empty($event_details['_occurrences']) ){ 333 $event_details['_occurrences'] = array_map('eventorganiser_date_create', $event_details['_occurrences']); 334 } 335 336 if( !empty($event_details['include']) ){ 337 $event_details['include'] = array_map('eventorganiser_date_create', $event_details['include'] ); 338 } 339 if( !empty($event_details['exclude']) ){ 340 $event_details['exclude'] = array_map('eventorganiser_date_create',$event_details['exclude'] ); 341 } 342 343 if($event_details['schedule'] == 'weekly'){ 344 $event_details['occurs_by'] = ''; 345 }elseif($event_details['schedule'] == 'monthly'){ 346 $bymonthday = preg_match('/BYMONTHDAY=/',$event_details['schedule_meta']); 347 $event_details['occurs_by'] = ($bymonthday ? 'BYMONTHDAY' : 'BYDAY'); 348 }else{ 349 $event_details['occurs_by'] =''; 350 } 351 352 ; 353 } 354 354 355 355 … … 595 595 $schedule_last = clone end($occurrences); 596 596 597 returnarray(597 array( 598 598 'start'=>$start, 599 599 'end'=>$end, … … 608 608 'occurrences'=>$occurrences 609 609 ); 610 611 610 612 } 611 613 -
event-organiser/trunk/readme.md
r688912 r692097 5 5 **Requires at least:** 3.3 6 6 **Tested up to:** 3.5 7 **Stable tag:** 1.8. 47 **Stable tag:** 1.8. 8 8 **License:** GPLv3 9 9 … … 177 177 ## Changelog ## 178 178 179 180 181 182 183 184 185 179 186 ### 1.8.4 ### 180 187 * Fixes bug with the widget calendar (see [this post](http://wp-event-organiser.com/forums/topic/calendar-widget-nextprevious-links-bug/)) -
event-organiser/trunk/readme.txt
r688912 r692097 5 5 Requires at least: 3.3 6 6 Tested up to: 3.5 7 Stable tag: 1.8. 47 Stable tag: 1.8. 8 8 License: GPLv3 9 9 … … 165 165 == Changelog == 166 166 167 168 169 170 171 172 173 167 174 = 1.8.4 = 168 175 * Fixes bug with the widget calendar (see [this post](http://wp-event-organiser.com/forums/topic/calendar-widget-nextprevious-links-bug/))
Note: See TracChangeset
for help on using the changeset viewer.