=== My Calendar === Contributors: joedolson Donate link: http://www.joedolson.com/donate.php Tags: calendar, dates, times, event, events, scheduling, schedule, event manager, event calendar, class, concert, conference, meeting, venue, location, box office, tickets, registration Requires at least: 3.8.5 Tested up to: 4.2.2 License: GPLv2 or later Stable tag: 2.3.31 Accessible WordPress event calendar plugin. Show events from multiple calendars on pages, in posts, or in widgets. == Description == My Calendar does WordPress event management with richly customizable ways to display events. The plug-in supports individual event calendars within WordPress Multisite, multiple calendars displayed by categories, locations or author, or simple lists of upcoming events. Easy to use for anybody, My Calendar provides enormous flexibility for designers and developers needing a custom calendar. * [Buy the User's Guide](http://www.joedolson.com/my-calendar/users-guide/) for extensive help with set up and use. * [Buy My Calendar: Submissions](https://www.joedolson.com/my-calendar/submissions/), the PRO extension for front-end event submissions * [Use My Tickets](https://wordpress.org/plugins/my-tickets/) and sell tickets to your My Calendar events = Features: = * Standard calendar grid and list views of events * Show events in monthly, weekly, or daily view. * Mini-calendar view for compact displays (as widget or as shortcode) * Widgets: today's events, upcoming events, compact calendar, event search * Custom templates for event output * Limit views by categories, location, author, or host * Disable default CSS and default JavaScript or display only on specific Pages/Posts * Editable CSS styles and JavaScript behaviors * Schedule a wide variety of recurring events. * Edit individual occurrences of recurring events * Rich permissions handling to restrict access to parts of My Calendar * Email notification to administrator when events are scheduled or reserved * Post to Twitter when events are created. (with [WP to Twitter](http://wordpress.org/extend/plugins/wp-to-twitter/)) * Location Manager for frequently used venues * Fetch events from a remote MySQL database. (Sharing events in a network of sites.) * Import events from [Kieran O'Shea's Calendar plugin](http://wordpress.org/extend/plugins/calendar/) * Integrated Help page to guide in use of shortcodes and template tags * Shortcode Generator to help create customized views of My Calendar * [Developer Documentation](http://www.joedolson.com/doc-category/my-calendar-3/) = Translations = Available translations (in order of completeness): Polish, Spanish (Spain), Portuguese (Portugal), French, Danish, Czech, Japanese, German, Russian, Dutch, Swedish, Italian, Hebrew, Galician, Portuguese (Brazil), Hindi, Turkish, Slovak, Finnish, Slovenian, Ukrainian, Romanian, Norwegian (Bokmal), Catalan, Afrikaans, Icelandic, Hungarian Visit the [My Calendar translations site](http://translate.joedolson.com/projects/my-calendar) to check the progress of a translation. Translating my plug-ins is always appreciated. Visit my translations site to start getting your language into shape! Translator Credits == Installation == 1. Upload the `/my-calendar/` directory into your WordPress plugins directory. 2. Activate the plugin on your WordPress plugins page 3. Configure My Calendar using the following pages in the admin panel: My Calendar -> Add/Manage Events My Calendar -> Manage Categories My Calendar -> Manage Locations My Calendar -> Manage Event Groups My Calendar -> Style Editor My Calendar -> Script Manager My Calendar -> Template Editor My Calendar -> Settings My Calendar -> Help 4. Edit or create a page on your blog which includes the shortcode [my_calendar] and visit the page you have edited or created. You should see your calendar. Visit My Calendar -> Help for assistance with shortcode options or widget configuration. == Changelog == = 2.4.0 = [2.4.0 is currently in development.] = 2.3.32 = * Bug fix: end time for events auto-toggled to midnight, instead of +1 hour when end time omitted. = 2.3.31 = * Added escaping in 2.3.30 broke location & category limits (escape placed on wrong string.) = 2.3.30 = * Security Fix: Arbitrary File Override * Security Fix: Reflected XSS * Thanks for Tim Coen for responsibly disclosing these issues. * All issues apply for authenticated users with access to My Calendar settings pages. * Language updates: Updated Polish, Swedish, Galician, Czech, Norwegian, Italian * Added Slovak, Icelandic, Hebrew = 2.3.29 = * Security Fix: XSS issue with add_query_arg: https://yoast.com/tools/wrong-use-of-add_query_arg-and-remove_query_arg-causing-xss/ = 2.3.28 = * Bug fix: Problem saving My Calendar URI if My Calendar is intended for use behind a secured location. * Update languages: French, German, Catalan = 2.3.27 = * Bug fix: Things that happen when you failed to write down a minor change - you don't test it. Couldn't choose a preset location when creating an event in 2.3.26. = 2.3.26 = * Typo in aria-labelledby. * Bug fix: fatal error if wp_remote returns WP_error. * Bug fix: could not set calendar URI if site is password protected. * Bug fix: category key fetched icons using a different path generation than main calendar that could result in a broken link. * Bug fix: ensure that all image template tags exist in the array, even if the event post does not exist. * Bug fix: make print view respect current category/location filters * Bug fix: make iCal download respect current category/location filters * Added class on event data container for root ID of events. * Added 'current' class for currently selected category in category key if category filter applied. = 2.3.25 = * Bug fix: Escape URL for search form request URL * Bug fix in check whether event had a valid post container. * Bug fix to handle problem with weeks calculation on the first of the month. * Bug fix: Display problem in single-page event view in twentyfifteen.css * Bug fix: If My Calendar URL is invalid, re-check when settings page is loaded. * Bug fix: Don't display update notice on new installs. * Change: My Calendar automatically generates calendar page on installation. * Change to Upcoming Events default template to make usage more robust. * Change: mc-mini JS to auto close all open panels if a new one is opened. * Rearrange a few settings for better usability. * Added ability to use Upcoming Events widget to show the nth future month. (e.g., show events for the 6th month out from today.) * Deprecated upgrade cycles prior to version 1.11.0. * Improve accessibility of tab panels used in My Calendar UI. * Language updates: Updated Russian, Added Afrikaans = 2.3.24 = * Bug fix: In mini widget, date is not displayed if only event on date is private * Bug fix: Improved fix to year rendering (roughly fixed in 2.3.23) * Bug fix: Improved rendering of structured event data. * Bug fix: [my_calendar_now] incorrectly checked the current time. * Bug fix: "Archive" link pointed to wrong location in event manager. * Bug fix: Was no way to reverse archiving an event; added method * Bug fix: Shortcode generator produced incorrect Upcoming Events shortcode. * Bug fix: Overlapping occurrences warning inappropriately showed on events recurring on a month by day basis * Bug fix: If only event on date is private, don't add class 'has-events' * Bug fix: Save default values for top/bottom nav on install. * Bug fix: Restore default template array when plug-in is deleted and re-installed * Minor style change to twentyfourteen.css * New default theme: twentyfifteen.css * Feature add: AJAX control to delete individual instances of a recurring event from the event editor. * Feature change: Events post type content filter now replaces content instead of repeating. Use 'mc_event_content' filter to override. * Improvement: Show overlapping occurrences warnings in manage events view. * Improvement: List/Grid button only shows on month and week views. * Misc. UI improvements. * Performance fix: Hide overlapping recurring events on front-end. (They can consume massive amounts of memory.) * Language updates: French, Spanish, Japanese, Dutch, German, Ukrainian, Swedish ISSUE: What's causing templates to not be set? = 2.3.23 = * Bug fix: Calendar rendering 2014 at beginning of 2015. * Bug fix: Set Holiday category when adding new categories. * Bug fix: Search widget title heading HTML not rendered. * Bug fix: mc-ajax.js was not compatible with heading filter for output. * Language updates: French, Spanish, Ukrainian = 2.3.22 = * Edit: Allow integers up to 12 in the 'every' field for recurring events. (Previously 9) * Bug fix: Incorrect sprintf call in {recurs} template, effecting recurring events by month. * Language updates: German, Russian, Portuguese (Portugal), Hungarian, Ukrainian = 2.3.21 = * Plug-in conflict fix: CSS override to fix conflict with Ultimate Social Media Icons * Bug fix: Allow {image_url} to fall back to thumbnail size if no medium / create _url equivalents for each size. * Bug fix: Allow location controls to be entered with only keys. * Bug fix: Entering default value for controlled locations is empty value, instead of 'none'. * Bug fix: If value of location field is 'none', don't display. * Bug fix: Use Location URL as map link if URL is provided and no other mappable location information * Bug fix: if editing single instance, delete link will delete just that instance. * Bug fix: If recurring event fields were hidden, but event recurred, recurrences would be deleted. * Bug fix: Limiting locations did not work in Upcoming Events using 'events' mode. * Bug fix: Allow limiting locations but all event location fields. * Bug fix: Limiting locations accepts numeric values for limiting. * Bug fix: {recurs} template tag indicates frequency ("Weekly", vs "every 3 weeks") * Bug fix: fixed templating issue when custom templates used a tag multiple times with different attribute parameters. * Add filter to modify the title information shown in list view to hint at hidden events ('mc_list_event_title_hint') * Add filter: number of months shown in list view filterable on 'mc_show_months' * Feature: Add shortcode/function to display a current event. [my_calendar_now] * Feature: Add search results page option to calendar search widget. * Removed all remaining code related to user settings, which are no longer in use. * Language updates: French, Danish, Russian, Swedish, Portuguese/Brazil, Portuguese/Portugal, Norwegian Bokmal, Hungarian = 2.3.20 = * Bug fix: Escaped $ variable in custom JS wrapper * Bug fix: has-events class appearing in calendar on days after all-day events * Bug fix: Reset stylesheet applied outside calendar HTML. Eliminated elements not used by MC. * Bug fix: Missing required argument for My Calendar search form widget * Bug fix: 'Approve' link broken * Bug fix: Details link could return expired event links. * Translation updates: Spanish, Slovenian = 2.3.19 = * Bug fix: Could not un-check show today's events in Upcoming Events widget * Bug fix: Could not turn off event recurrences section in event manager * Bug fix: stripped HTML tags out of upcoming events & today's events template fields = 2.3.18 = * Bug in rendering of custom JS causing visible rendering of code. * Bug in saving Today's Events widget settings = 2.3.17 = * 2.3.16 bug fix was incomplete, triggered new error. Sorry for rushing! = 2.3.16 = * Bug fix: Upcoming events did not show for logged-in users if site did not have private categories defined. * Cleared a PHP notice. = 2.3.15 = * Bug fix: Controlled locations not input correctly from Add Event form * Bug fix: Use force_balance_tags() when saving descriptions & short descriptions to prevent descriptions from breaking layout * Bug fix: My Calendar reset stylesheet missing .mc-main on buttons; causing display issues with submit buttons. * Bug fix: shortcode generator produced results in disabled form field; changed to readonly because Firefox does not permit selecting text in disabled fields. * Bug fix: Widget navigation automatically reset itself if you saved widget form after clearing data * Bug fix: category classes for multi-day, all-day events showed on termination date * Bug fix: Checkbox states on JS scripts not retained * Bug fix: Show default values in upcoming events widget * Bug fix: Default values not saved on new installation * Bug fix: Admin event manager should sort by Date/Time instead of Date/Title * Documented [my_calendar_search] shortcode * Added 'current' option for author/host to shortcode generator. * Extensive code clean up * Feature: Default view next month option in calendar and upcoming events lists. * Deprecated upgrade cycles prior to version 1.10.0. * Language updates: Japanese, Dutch, Italian, Spanish, Finnish, Swedish, Norwegian = 2.3.14 = * Bug fix: Disabled front-end event editing links for logged-in users. * Language updates: Spanish, Norwegian, Hungarian = 2.3.13 = * Bug fix: Failed to handle "open links to event details" option in updated JS handling. = 2.3.12 = * Bug fix: change of option name meant that you couldn't enable/disable scripts. * Bug fix: shortcode generator generates a 'readonly' textarea instead of disabled so it can be copied in Firefox. * Accessibility: handle assignment of focus on AJAX navigation = 2.3.11 = * Change: Modified default JS saving so that only custom JS gets handled in editor. * Change: toggle to enable/disable custom JS; default to off * Change: Moved scripting into files. * Notice: admin notice to inform users of need to activate JS if using custom * Bug fix: Modify default JS so wpautop doesn't cause problems with toggles. * Bug fix: External links displaying is_external boolean instead of classes. * Bug fix: mysql error if location_type not defined but location_value is. * Bug fix: page_id unset when default permalinks in use. [Ick. Don't use default permalinks.] * Bug fix: My Calendar navigation panel could not disable top/bottom navigation. * Feature: * Add Bcc notification list * Accessibility: improvements to pop-up event details: focus & closing, ARIA * Filter: headers filter for My Calendar email notifications. * Filter: Add detection to pass custom JS from custom directory/theme directory * Updated French, Spanish translations. * Removed .po files from repository; reduces file size by over 2 MB. = 2.3.10 = * New filter: mc_jumpbox_future_years - alter the number of years into the future shown in the calendar date switcher. * New filter: mc_add_events_url - alter URL for Add Events in adminbar; return URL * New filter: mc_locate_events_page: alter menu parent of Add Events in admin menu; return menu slug or null * Bug fix: ltype and lvalue not passed from shortcode into handler for upcoming events. * Bug fix: disable comments by default for event post storage. * Bug fix: misnamed variable in filter; resolves notice on line 239 of my-calendar-output.php * Bug fix: do search and replace on default scripting as well when script fields are blank * Bug fix: Check default option for import data from remote database; verify the default will be false * Added template tag: {linking_title}; same as {link_title}, but falls back to details link if no URL input for event. * Change default widget template to use {linking_title}. * Security: Two XSS vulnerabilities fixed. Thanks Tim Hurley * Update Translation: Russian = 2.3.9 = * Bug fix: Minor event templates ( title, detail, etc. ) were not properly escaped in admin forms. * Bug fix: use reply-to email header in support messages * Bug fix: Mass approval of pending events broken. * Bug fix: {linking} template tag referenced wrong event URL. * Bug fix: My Calendar API RSS no longer dependent on default RSS data. * Bug fix: Replace mysql_* functions for PHP 5.5 compatibility. * Bug fix: Incorrect template tag in Single view template: {gcal} instead of {gcal_link} * Bug fix: PHP notice on $map * Language updates: Japanese, German, Italian = 2.3.8 = * Added {link_image} to add an image linked to the event URL in templates. * Bug fix: extended caption value saved but not shown. * Bug fix: For multi-day events ending at midnight, last date automatically extended one day at save. * Bug fix: on copy, if start date is changed, but end date isn't, increment end date to match length of original event. * Change: Eliminate error on empty title fields or invalid recurrence values. Set to default value instead. = 2.3.7 = * Did not enqueue jQuery on front-end unless Google Maps was enabled. (Incorrect condition nesting...) Whoops. = 2.3.6 = * Error in yesterday's bug fix for upcoming events. * Bug fix: Email notifications broken. = 2.3.5 = * Bug fix: Notice in today's events widget * Bug fix: Images from pre 2.3.0 configuration did not display in default Single event view. * Bug fix: Upcoming events list could return too few events. * Bug fix: Display default date format if format not set. * Bug fix: Fallback to default JS if custom JS not defined. * Filter: added filter to Google Maps code; mc_gmap_html * Option: enabled option to disable Google Maps output. = 2.3.4 = * Bug fix: Week date format wouldn't save. * Bug fix: Event posts & custom field data not saved on copy action * Bug fix: HTML errors in {hcard} address format. * Bug fix: Manage events search form overlapped pagination links * Bug fix: Events ending at midnight in Today's Events lists appeared twice = 2.3.3 = * Bug fix: Notice on access_options filter. * Bug fix: Invalid date values if no parameters set for iCal * Bug fix: Invalid nonce check in location entry prevented creation of new locations. One missing exclamation point. Sigh. * Bug fix: If location controls are on, allow old values to be saved, but raise notice that value is not part of controlled set. * Feature: add sync=true to root iCal URL to connect apps for scheduled syncing. (http://example.com/feeds/my-calendar-ics/?sync=true) * Updated: Polish translation = 2.3.2 = * Bug fix: label change to clarify entry format for location controls * Bug fix: Missing end tag on