My Calendar - Version 2.5.12

Version Description

  • Bug fix: missing space in conflict identification
  • Bug fix: internationalization of string to time created conflict when entering month abbreviations
  • Add filter to enable creation of a custom content editor
Download this release

Release Info

Developer joedolson
Plugin Icon 128x128 My Calendar
Version 2.5.12
Comparing to
See all releases

Code changes from version 2.5.11 to 2.5.12

js/jquery.public.js ADDED
@@ -0,0 +1,19 @@
1
+ (function ($) {
2
+ $(function () {
3
+ // Delete single instances of recurring events.
4
+ $( '.mc_response' ).hide();
5
+ $('button.delete_occurrence').on( 'click', function () {
6
+ var value = $(this).attr( 'data-value' );
7
+ var data = {
8
+ 'action': mc_data.action,
9
+ 'occur_id': value,
10
+ 'security': mc_data.security
11
+ };
12
+ $.post( ajaxurl, data, function (response) {
13
+ if ( response.success == 1 ) {
14
+ $( "button[data-value='"+value+"']" ).parent( 'li' ).hide();
15
+ }
16
+ $('.mc_response').text( response.response ).show( 300 );
17
+ }, "json" );
18
+ });
19
+ }(jQuery));
my-calendar-event-manager.php CHANGED
@@ -53,6 +53,7 @@ function mc_event_post( $action, $data, $event_id ) {
53
if ( $data['event_image'] == '' ) {
54
delete_post_thumbnail( $post_id );
55
} else {
56
$attachment_id = ( isset( $_POST['event_image_id'] ) && is_numeric( $_POST['event_image_id'] ) ) ? $_POST['event_image_id'] : false;
57
if ( $attachment_id ) {
58
set_post_thumbnail( $post_id, $attachment_id );
@@ -831,21 +832,26 @@ function mc_show_block( $field, $has_data, $data, $echo = true, $default = '' )
831
global $current_screen;
832
// because wp_editor cannot return a value, event_desc fields cannot be filtered if its enabled.
833
$value = ( $has_data ) ? stripslashes( $data->event_desc ) : '';
834
- if ( $current_screen->base == 'post' ) {
835
- $return = '<div class="event_description">
836
- <label for="content" class="screen-reader-text">' . __( 'Event Description', 'my-calendar' ) . '</label>
837
- <textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes( esc_attr( $value ) ) . '</textarea>
838
- </div>';
839
} else {
840
- echo '
841
- <div class="event_description">
842
- <label for="content" class="screen-reader-text">' . __( 'Event Description', 'my-calendar' ) . '</label>';
843
- if ( user_can_richedit() ) {
844
- wp_editor( $value, 'content', array( 'textarea_rows' => 10 ) );
845
} else {
846
- echo '<textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes( esc_attr( $value ) ) . '</textarea>';
847
}
848
- echo '</div>';
849
}
850
}
851
break;
@@ -2365,7 +2371,7 @@ function mcs_check_conflicts( $begin, $time, $end, $endtime, $event_label ) {
2365
$event_query = "SELECT occur_id
2366
FROM " . my_calendar_table() . "
2367
ON ( " . my_calendar_event_table() . "
2368
- JOINevent_id=occur_event_id)
2369
WHERE $select_location
2370
( occur_begin BETWEEN '$begin $time'AND '$end $endtime'OR occur_end BETWEEN '$begin $time'AND '$end $endtime')";
2371
$results = $wpdb->get_results( $event_query );
@@ -2645,7 +2651,7 @@ function mc_post_update_event( $id ) {
2645
/**
2646
* Parse a string and replace internationalized months with English so strtotime() will parse correctly
2647
*/
2648
- function mc_strtotime( $string ) {
2649
$months = array(
2650
date_i18n( 'F', strtotime( 'January 1' ) ),
2651
date_i18n( 'F', strtotime( 'February 1' ) ),
@@ -2685,20 +2691,20 @@ function mc_strtotime( $string ) {
2685
'October',
2686
'November',
2687
'December',
2688
- 'January',
2689
- 'February',
2690
- 'March',
2691
- 'April',
2692
'May',
2693
- 'June',
2694
- 'July',
2695
- 'August',
2696
- 'September',
2697
- 'October',
2698
- 'November',
2699
- 'December'
2700
);
2701
-
2702
return strtotime( str_replace( $months, $english, $string ) );
2703
2704
}
53
if ( $data['event_image'] == '' ) {
54
delete_post_thumbnail( $post_id );
55
} else {
56
+ // check POST data
57
$attachment_id = ( isset( $_POST['event_image_id'] ) && is_numeric( $_POST['event_image_id'] ) ) ? $_POST['event_image_id'] : false;
58
if ( $attachment_id ) {
59
set_post_thumbnail( $post_id, $attachment_id );
832
global $current_screen;
833
// because wp_editor cannot return a value, event_desc fields cannot be filtered if its enabled.
834
$value = ( $has_data ) ? stripslashes( $data->event_desc ) : '';
835
+ $custom_editor = apply_filters( 'mc_custom_content_editor', false, $value, $data );
836
+ if ( $custom_editor !== false ) {
837
+ $return = $custom_editor;
838
} else {
839
+ if ( $current_screen->base == 'post' ) {
840
+ $return = '<div class="event_description">
841
+ <label for="content" class="screen-reader-text">' . __( 'Event Description', 'my-calendar' ) . '</label>
842
+ <textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes( esc_attr( $value ) ) . '</textarea>
843
+ </div>';
844
} else {
845
+ echo '
846
+ <div class="event_description">
847
+ <label for="content" class="screen-reader-text">' . __( 'Event Description', 'my-calendar' ) . '</label>';
848
+ if ( user_can_richedit() ) {
849
+ wp_editor( $value, 'content', array( 'textarea_rows' => 10 ) );
850
+ } else {
851
+ echo '<textarea id="content" name="content" class="event_desc" rows="8" cols="80">' . stripslashes( esc_attr( $value ) ) . '</textarea>';
852
+ }
853
+ echo '</div>';
854
}
855
}
856
}
857
break;
2371
$event_query = "SELECT occur_id
2372
FROM " . my_calendar_table() . "
2373
ON ( " . my_calendar_event_table() . "
2374
+ JOIN event_id=occur_event_id)
2375
WHERE $select_location
2376
( occur_begin BETWEEN '$begin $time'AND '$end $endtime'OR occur_end BETWEEN '$begin $time'AND '$end $endtime')";
2377
$results = $wpdb->get_results( $event_query );
2651
/**
2652
* Parse a string and replace internationalized months with English so strtotime() will parse correctly
2653
*/
2654
+ function mc_strtotime( $string ) {
2655
$months = array(
2656
date_i18n( 'F', strtotime( 'January 1' ) ),
2657
date_i18n( 'F', strtotime( 'February 1' ) ),
2691
'October',
2692
'November',
2693
'December',
2694
+ 'Jan',
2695
+ 'Feb',
2696
+ 'Mar',
2697
+ 'Apr',
2698
'May',
2699
+ 'Jun',
2700
+ 'Jul',
2701
+ 'Aug',
2702
+ 'Sep',
2703
+ 'Oct',
2704
+ 'Nov',
2705
+ 'Dec'
2706
);
2707
+
2708
return strtotime( str_replace( $months, $english, $string ) );
2709
2710
}
my-calendar-install.php CHANGED
@@ -238,7 +238,7 @@ function mc_default_settings() {
238
'mini' => $mini_template,
239
'rss' => $rss_template,
240
'details' => $single_template,
241
- 'label' => addslashes( 'More<span class="screen-reader-text"> about {title}</span>' )
242
) );
243
add_option( 'mc_skip_holidays', 'false' );
244
add_option( 'mc_css_file', 'twentyfifteen.css' );
238
'mini' => $mini_template,
239
'rss' => $rss_template,
240
'details' => $single_template,
241
+ 'label' => addslashes( __( 'More<span class="screen-reader-text"> about {title}</span>', 'my-calendar' ) )
242
) );
243
add_option( 'mc_skip_holidays', 'false' );
244
add_option( 'mc_css_file', 'twentyfifteen.css' );
my-calendar-output.php CHANGED
@@ -1426,6 +1426,7 @@ function my_calendar( $name, $format, $category, $time = 'month', $ltype = '', $
1426
$list_heading = jd_draw_template( $values, stripslashes( get_option( 'mc_week_caption' ) ) );
1427
}
1428
$h2 = apply_filters( 'mc_list_header_level', 'h2' );
1429
$my_calendar_body .= "<$h2 class=\"heading my-calendar-$time\">$list_heading</$h2>\n";
1430
}
1431
// If not a valid time or layout format, skip.
1426
$list_heading = jd_draw_template( $values, stripslashes( get_option( 'mc_week_caption' ) ) );
1427
}
1428
$h2 = apply_filters( 'mc_list_header_level', 'h2' );
1429
+ $list_heading = apply_filters( 'mc_list_heading', $list_heading, $current_month_header, $through_month_header, $caption_text );
1430
$my_calendar_body .= "<$h2 class=\"heading my-calendar-$time\">$list_heading</$h2>\n";
1431
}
1432
// If not a valid time or layout format, skip.
my-calendar.php CHANGED
@@ -7,7 +7,7 @@ Author: Joseph C Dolson
7
Author URI: http://www.joedolson.com
8
Text Domain: my-calendar
9
Domain Path: lang
10
- Version: 2.5.11
11
*/
12
/* Copyright 2009-2017 Joe Dolson (email : joe@joedolson.com)
13
@@ -30,7 +30,7 @@ if ( ! defined( 'ABSPATH' ) ) {
30
} // Exit if accessed directly
31
32
global $mc_version, $wpdb;
33
- $mc_version = '2.5.11';
34
35
register_activation_hook( __FILE__, 'mc_plugin_activated' );
36
register_deactivation_hook( __FILE__, 'mc_plugin_deactivated' );
7
Author URI: http://www.joedolson.com
8
Text Domain: my-calendar
9
Domain Path: lang
10
+ Version: 2.5.12
11
*/
12
/* Copyright 2009-2017 Joe Dolson (email : joe@joedolson.com)
13
30
} // Exit if accessed directly
31
32
global $mc_version, $wpdb;
33
+ $mc_version = '2.5.12';
34
35
register_activation_hook( __FILE__, 'mc_plugin_activated' );
36
register_deactivation_hook( __FILE__, 'mc_plugin_deactivated' );
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: joedolson
3
Donate link: http://www.joedolson.com/donate/
4
Tags: calendar, dates, times, event, events, scheduling, schedule, event manager, event calendar, class, concert, venue, location, box office, tickets, registration
5
Requires at least: 4.4
6
- Tested up to: 4.7
7
- Stable tag: 2.5.10
8
Text domain: my-calendar
9
License: GPLv2 or later
10
@@ -80,9 +80,15 @@ Translating my plug-ins is always appreciated. Visit <a href="https://translate.
80
4. Edit or create a page on your blog which includes the shortcode [my_calendar] and visit
81
the page you have edited or created. You should see your calendar. Visit My Calendar -> Help for assistance
82
with shortcode options or widget configuration.
83
-
84
== Changelog ==
85
86
= 2.5.11 =
87
88
* Bug fix: Bottom mass action buttons outside of form
@@ -840,6 +846,7 @@ This is a major revision.
840
* Event occurrence IDs can change when events dates are changed
841
* Add option to insert events simultaneously to both global & local calendar in multisite networks [todo]
842
* JS to delete events from front-end when logged-in
843
844
== Frequently Asked Questions ==
845
3
Donate link: http://www.joedolson.com/donate/
4
Tags: calendar, dates, times, event, events, scheduling, schedule, event manager, event calendar, class, concert, venue, location, box office, tickets, registration
5
Requires at least: 4.4
6
+ Tested up to: 4.8
7
+ Stable tag: 2.5.11
8
Text domain: my-calendar
9
License: GPLv2 or later
10
80
4. Edit or create a page on your blog which includes the shortcode [my_calendar] and visit
81
the page you have edited or created. You should see your calendar. Visit My Calendar -> Help for assistance
82
with shortcode options or widget configuration.
83
+
84
== Changelog ==
85
86
+ = 2.5.12 =
87
+
88
+ * Bug fix: missing space in conflict identification
89
+ * Bug fix: internationalization of string to time created conflict when entering month abbreviations
90
+ * Add filter to enable creation of a custom content editor
91
+
92
= 2.5.11 =
93
94
* Bug fix: Bottom mass action buttons outside of form
846
* Event occurrence IDs can change when events dates are changed
847
* Add option to insert events simultaneously to both global & local calendar in multisite networks [todo]
848
* JS to delete events from front-end when logged-in
849
+ * TODO: delete this instance and all subsequent instances
850
851
== Frequently Asked Questions ==
852