= 3.5.21 =
* Bug fix: iCal feed link incorrect.
* Bug fix: Pass time frame into navigation calculation to help prevent calendars from switching formats when multiple calendars appear on a page.
* Code docs improvements.
= 3.5.20 =
* Bug fix: Undefined foreground color in some stylesheets.
* Bug fix: Missing close `span` in SVG wrapper.
* Bug fix: Check whether `$event` is an object before accessing properties in event template check.
* Bug fix: Add missing stylesheet class in some calendar themes.
* Bug fix: Handle uncommon case where a location ID is assigned but location no longer exists.
* Bug fix: Fix incorrect parentheses that could unset recurring event instances unintentionally.
* Bug fix: Allow help links to wrap.
* Bug fix: Root event link should point to source event, not self.
* Bug fix: When splitting an event, execute the 'add' action instead of the 'edit' action to ensure post meta fields are saved correctly.
* Update social media links.
* Add class for locations to event class list.
= 3.5.19 =
* Remove textdomain loader (obsolete since WP 4.6).
* Hide icon selector if icons are disabled.
* Hide color selector & column if category colors are disabled.
* Minor back-end CSS changes.
= 3.5.18 =
* Bug fix: PHP template for location single misnamed with incorrectly called variables.
* Docs: Improved function doc for `mc_ts()`.
= 3.5.17 =
* Accessibility: Move icon rendering to an `aria-hidden` element instead of directly generated content.
* Change: Misc. design changes to improve icon alignments and sizing.
* Change: Misc. changes to standardize rendering of icons between different stylesheets.
* Change: Add `rel="nofollow"` to filtering and navigation links to reduce crawling on duplicate views.
* Change: Add CSS prefix to stylesheets so additional stylesheets override reset.css.
* Change: Query location upcoming events by ID, not name.
* Docs: Add `timerange` to in-plugin docs list.
* Bug fix: Don't perform geolocation calls if passed fields have no values.
* Bug fix: Missing CSS variables & script localization in admin grid view.
* Bug fix: Style modal edit links in admin.
= 3.5.16 =
* Bug fix: Restore event and location pagination broken in 3.5.13.
* Bug fix: Pass valid `$type` parameters to admin notice function.
* Bug fix: Able to delete the custom all day time label for an event.
* Bug fix: Checkboxes not uncheckable for event date handling parameters.
* Accessibility: Wrap pagination and filters in `nav` elements.
* Accessibility: Consistent ordering of pagination and filters.
* Feature: Add event count column to locations screen.
= 3.5.15 =
* Bug fix: Execute `the_content` filters on output broke some displays.
* Bug fix: Use full event date & time in the stored _mc_event_date meta.
* Add: filter `mc_execute_the_content` to enable execution of `the_content` filters.
= 3.5.14 =
* Bug fix: Typo in template tag documentation. Props @robnicholson.
* Bug fix: Incorrectly escaped double quotes in CSV output broke importing.
* Bug fix: Verify whether 'event_location' property exists when processing submission errors.
* Bug fix: Autosetting end date failed due to incorrect logic & timezone offsetting.
* Bug fix: Don't offset timezone when calculating whether an event should be displayed based on options.
* Change: Execute `the_content` filters on output to support oEmbed and block output in events.
= 3.5.13 =
* Bug fix: Missing remote DB reference for event occurrence lists.
* Bug fix: Don't attempt to copy location relationships when fetching data remotely.
* Bug fix: Clear fragment cache when remote DB is acctivated.
* Feature: Add filter to change remote DB prefix when using remote DB.
* Feature: Setting to flush fragment cache.
* Change: Remove usages of deprecated 'SQL_CALC_FOUND_ROWS'.
= 3.5.12 =
* Add: Function that converts from a My Calendar approval status to the equivalent post status.
* Bug fix: If location name controls in place, do not show on location edit screen. Props @jacquebert.
* Change: Simplify My Calendar's admin notice function and support all standard notice types.
= 3.5.11 =
* Bug fix: Default image alt attribute incorrectly fetched.
* Bug fix: Remove stray quote in filter button text.
* Bug fix: Prevent PHP warning if category styles transient contains invalid content.
* Bug fix: PHP warning on Help screen.
* Bug fix: Increase z-index on modals.
* Change: Add filters for locations and events post type arguments.
* Change: Add 'autoexcerpt' as a template tag in addition to the `excerpt` and `short_desc` tags.
* Change: Add editor support for location post types.
* Change: Add link to location post editor in location manager.
* Change: Add `permalink` as alias for `details_link` for clearer tag & function usage.
* Remove override for deprecated filter `tmp_grunion_allow_editor_view`.
= 3.5.10 =
* Bug fix: Don't create custom icon cache when debugging.
* Bug fix: Only execute style vars foreach if is an array.
* Change: Add 'my-calendar' as body class on primary calendar page.
* Change: Noindex calendar archive pages.
= 3.5.9 =
* Bug fix: Fix CSV event download PHP error.
* Bug fix: Fix misc. HTML validation errors.
* Bug fix: Force text wrapping in button reset.
* Bug fix: Fix data checks for event author when no user is logged in. (Pro).
= 3.5.8 =
* Bug fix: Use `mc_exit_early()` to determine classes as well as to determine display.
* Bug fix: Editing a single date updated descriptions for all events.
* Bug fix: Only parse URL arguments for specific calendar ID.
* Bug fix: No content fallback text not passed to output function in main shortcode.
* Bug fix: Don't duplicate registration fields in front-end submissions (Pro).
* Bug fix: Handle the possibility that front-end location presets may be 0 instead of empty (Pro).
= 3.5.7 =
* Bug fix: PHP 8.2 deprecated error in `mc_ordinal`.
* Bug fix: Category dropdown navigation element should limit categories shown.
* Bug fix: Export dropdown button broken.
* Bug fix: Export/Subscribe dropdowns duplicated if multiple calendars present. Props @mikeknappe.
* Bug fix: Incorrect argument passed to mini widget ignored months setting.
* Bug fix: Reset styles didn't handle Mini calendar widget disclosure properly.
* Feature: Add setting to change subscribe and export button text. Props @mikeknappe.
* Docs: Fix incorrect docs on `mc_category_key`.
* I18n: Missing translator function. Props @DAnn2012.
= 3.5.6 =
* Bug fix: JS error breaking add new location in event editor.
* Bug fix: Imported settings should not strip HTML from templates.
* Revert: InnoDB change in version 3.5.5 created unanticipated problems.
= 3.5.5 =
* Bug fix: Templates rendered incorrectly when search-friendly permalinks disabled.
* Bug fix: Clear PHP warning if no future dates in export generation.
* Bug fix: Only show Pro promo inside My Calendar pages.
* Bug fix: Remove support for InnoDB search on pre 5.5 MySQL; add support for Fulltext search on InnoDB otherwise.
* Bug fix: Event title not rendered unless 'read more' enabled.
* Bug fix: Category color styles cache deleted in wrong place.
* Change: Move sqlite check to existing db engine check function.
= 3.5.4 =
* Bug fix: One further case where legacy templating could return invalid value in event details.
= 3.5.3 =
* Bug fix: Adjust CSS for themes that set inputs to a fixed height.
* Bug fix: JS in ajax navigation needs to only select first child of cells.
* Bug fix: Omit the current day border on single day views.
* Bug fix: Execute mc_get_details() regardless of whether there are already details.
* Try: Sqlite fix for Playground in upcoming events widget.
= 3.5.2 =
* Bug fix: If setting to link to event page enabled, event wrapper was not added.
* Bug fix: Incorrect kses on Mini calendar widget removed too much information.
* Bug fix: Category filters did not remove existing filter when adding categories.
* Bug fix: PHP templating rendered event details when linking to external URL.
* Bug fix: Fix handling of custom templates with legacy templating when passed via settings.
* Addition: class 'today-event' for events occurring on the current day.
= 3.5.1 =
* Bug fix: Mini calendar widget stripped out `select`, `option`, and `input`.
* Bug fix: Upcoming Events list showed out-of-query events.
* Update: Support sqlite to enable demo support in Playground.
= 3.5.0 =
* Major change: Remove CSS style editor and style migration functions.
* Major change: Remove CSS and Icon backup functions.
* Major change: Upcoming events list now returns fixed numbers of events by default.
* Major change: Location data only fetched from location table, no longer saved to event table.
* Major change: Implement responsive table CSS & JS.
* Major change: Introduce PHP templating.
* Major change: Rewrite all additional stylesheet skins.
* Change: Selecting a stylesheet is now optional.
* Change: Add autocompletion for country selection.
* Change: Make modal view the default pop-up view.
* Change: Improve HTML semantics in event display.
* Change: Switch popup triggers to buttons.
* Change: Navigation controls are always controls; don't switch to span when active.
* Change: Replace ical generation with spatie/icalendar-generator.
* Feature: Add card view.
* Feature: Style variable previews.
* Feature: Add importer to import events from The Events Calendar.
* Feature: Add support for featured image on locations.
* Breaking change: `mc_event_classes()` now echos classes. Use `mc_get_event_classes()` to return.
* Bug fix: Prevent My Calendar post types from showing up in export tool. Props @carstenbach.
* Performance: Use fragment caching to reduce duplicate db queries.
* Performance: Prevent infinite date navigation in calendar navigation tools.
* Performance/SEO: Only output Schema on main event views, not in widgets.
* Support Yoast schema engine (props @joostdevalk)
* Update to WPCS 3 (props @joostdevalk)
* Many, many minor visual changes to improve consistency.
= 3.4.24 =
* Security: Fix XSS scripting issue (shortcode parsing) reported by Patchstack.
* Security: Fix XSS scripting issue (event creation and output) reported by WPScan.
= 3.4.23 =
* Bug fix: Date validation function applied a timezone offset by mistake, causing functions detecting the current day to sometimes return the wrong day.
= 3.4.22 =
* Security: Fix unauthorized SQL injection vulnerability. Update as soon as possible. Props Tenable.
= 3.4.21 =
* Bug fix: Settings that allow HTML were aggressively sanitized, stripping HTML.
* Bug fix: Location field should not be disabled in shortcode generator when has value.
* Bug fix: Provide easier access to calendar page in shortcode generator.
* Bug fix: (Design) Fix change of month heading in mini calendar.
* Bug fix: Fix month number enumeration in date classes.
* Bug fix: Improve counting of events in upcoming events lists.
* Docs: Documentation on `mc_get_uri` filter incorrect.
* Change: Pass $event object to `mc_return_uri` filter.
= 3.4.20 =
* Feature: Add {edit_link} template tag for admin email notifications.
* Feature: Support filtering locations by ID when available.
* I18n: Make security information texts more consistent.
* Bug fix: Fix minor layout issues in admin grid view.
* Bug fix: Fix script load in admin grid view. Support modals.
* Bug fix: Update location configuration logic. Props @joergpe.
= 3.4.19 =
* Bug fix: missing space between attributes caused entire attribute string to fail `wp_kses` test.
* Bug fix: Force variable types in a couple of function returns.
* Bug fix: Use a persistent MySQL connection when accessing a remote DB. Props @joergpe.
* Bug fix: Add new categories to primary selector on creation.
= 3.4.18 =
* Bug fix: Fix issue with AJAX search within calendar navigation elements.
* Bug fix: Extra EOL possible in iCal output.
* Bug fix: Categories were passed with icons to iCal, leaving duplicated category names after HTML was stripped.
* Bug fix: Remove quoted-printable from iCal encoding.
* Bug fix: Deprecated argument error in calendar settings.
= 3.4.17 =
* Bug fix: Only render event title filters when processing the event.
* Bug fix: `mc_inner_content` filter should run whenever description content is displayed.
* Bug fix: `mc_inner_content` filter should not override disclosure close buttons.
* Bug fix: If a theme uses H1 for widgets, replace with H2 instead of removing.
* Bug fix: Hidden event redirect could fire on non-event pages.
* Bug fix: PHP 8.1 compatibility fix.
* Bug fix: allow {color} and {inverse} template tags in style attributes.
* Bug fix: Cache busting on reset.css broken.
* Docs: Some docs fixes.
* Docs: Move some additional template tags to the uncommon tags array.
* Change: Update microformat classes to remove '.fn' (collision with block editor footnotes.)
* Change: Updates to search mechanisms for advanced search (Pro).
* Change: Add baseline CSS for search results in reset.css
= 3.4.16 =
* Bug fix: Redirect single page for calendar to canonical location based on permalink settings.
* Bug fix: Remove .mcjs class for every calendar on page.
* Change: Pass event count to search results filter.
= 3.4.15 =
* Bug fix: Restore missing 'gmap' option.
* Bug fix: Set width/height on category SVGs in event manager.
* Bug fix: Accessibility data inconsistently passed from front-end submissions.
* Bug fix: Use excerpts by default in iCal. props @masonwolf
* Bug fix: Use details link by default in iCal. props @masonwolf
* Bug fix: Single ical exports need to use correct date, not series start date. props @masonwolf
* Bug fix: Series ical exports need to use root URL, not first instance URL. props @masonwolf
= 3.4.14 =
* Bug fix: Discrepancy in query arguments for event status counts and event lists.
* Bug fix: When publishing an event, remove any spam flag in place without requiring extra step.
* Bug fix: Use front-end links for delete and edit if viewed from front-end in Pro.
* Change: Add filter to enable RSS feeds for My Calendar post types.
* Security hardening: Move sanitizing earlier in numerous locations.
= 3.4.13 =
* Bug fix: Don't send admin edit link to public submitters.
* Bug fix: Unset 'current' keyword when replaced with user ID in MySQL query.
* Change: Hide adminbar when embedding calendar in iframe.
= 3.4.12 =
* Change: when mc_id not passed, display next event if there is one, rather than always the nearest event.
* Change: minify admin JS.
* Change: combine admin event ajax and category ajax into one file.
* Bug fix: Use user-supplied alt attributes from Pro when image provided via URL.
* Bug fix: Invalid canonical value when mc_id not passed.
* Bug fix: Get event data earlier when processing post responses. Fixes undeclared variable error.
* Bug fix: Pass event ID into submission data when editing an event. [Pro]
* Bug fix: Fix final week recurring patterns in iCal exports. Props @masonwolf.
= 3.4.11 =
* Bug fix: Exit without attempting to call category icons if database value is empty.
* Bug fix: Set canonical URLs when mc_id parameter is not set.
* Bug fix: Don't apply timezone offsets when creating recur rules.
* Bug fix: Saved custom templates were overwritten when updating settings that include templates.
* Bug fix: Event element allow lists mismatched on initial check and final check.
= 3.4.10 =
* Bug fix: Duplicate ID attributes on category SVG icons.
* Bug fix: Weekday recurring events used wrong basis for date addition.
= 3.4.9 =
* Bug fix: List view with grouped lists and modal JS enabled did not trigger modal.
* Bug fix: Add Event adminbar link should not depend on the My Calendar ID being set.
* Bug fix: If no calendar is located, automatically create a new calendar page.
* Bug fix: Location relationships were not created between locations and location posts.
* Feature: Add support for map links using alternate mapping services. Embedded maps still only available via Google.
= 3.4.8 =
* Bug fix: Don't show edit event link to users who don't have permission to edit events.
* Bug fix: Send front-end editing link when submitting from the front end. [Pro].
* Bug fix: Fix AJAX notices in event importer [Pro].
* Bug fix: Comment corrections & removal of unused variables.
= 3.4.7 =
* Bug fix: Two missed get_option references migrated to mc_get_option; fixes ability to skip events the occur on holidays.
* Bug fix: Add setting & filter for hiding past dates on list view on initial load.
* Docs: Update docs referencing 'mc_is_url' now that function is removed.
* Add 'check' action in mc_check_data() to handle data verification without taking action.
= 3.4.6 =
* Bug fix: Category classes on multibyte category names not rendered. (Props @sutefu23)
* Bug fix: Current category classes failed for multiple selected classes. (Props @sutefu23)
* Bug fix: Fix path references when using custom icon directories.
* Bug fix: Don't use icon transients when WP_DEBUG is true.
* Bug fix: Fix sorting direction on secondary sorts in events list.
* Bug fix: Fix aria-sort rendering in sortable tables.
= 3.4.5 =
* Bug fix: Group event editor stripped HTML from content.
* Bug fix: Clear PHP warning on 'event_approved'
* Bug fix: selected attribute stripped from select inputs in mc_kses_elements
* Bug fix: Change wide field inputs to prevent exceeding size of containers
* Change: Allow mc_admin_category_list() to work on front end for Pro.
= 3.4.4 =
* Bug fix: Improve modal CSS: better support for multiline titles, adminbar, and avoiding collision with close button.
* Bug fix: Modal should use single title, not current context title.
* Bug fix: Intermediary headings when viewing multiple months in grid were not translated.
* Bug fix: Add user notification if required function `mime_content_type` not available.
* Bug fix: Add eventattendancemode parameter to JSON schema.
* Change: Use ordinals for recurring events by days, for improved textual clarity.
* Docs: Document a couple undocumented filters.
* Security: Resolve four CSRF vulnerabilities in the admin. Props thiennv through Patchstack.
= 3.4.3 =
* Bug fix: Overly general no-scroll selector on modal behaviors caused. Added prefix & specificity.
* Bug fix: Wrong variable called for custom navigation items.
* Bug fix: Verify that callable functions exist before calling them.
* Bug fix: CSS Migration moved files into the wrong directory: move to correct directory.
* Bug fix: Perform integrity checks on imported settings files.
* Feature: Locate CSS migrated into wrong directory and offer to move them.
= 3.4.2 =
* Bug fix: Revert fix that supported custom title formats in Full Site Editor, as it caused problems in some classic themes.
* Bug fix: default_settings should only ever call add_option, not update_option. Resolves bug that could reset user's settings if they had previously uninstalled.
* Bug fix: Accidentally used sanitize_textarea_field on event content instead of wp_kses_post, which stripped HTML.
= 3.4.1 =
* Bug fix: Fatal error in installation routine on multisite.
* Bug fix: Broken popups in AJAX navigation on compact calendar.
* Bug fix: Error in child descendant if multi-language events called.
* Bug fix: Mis-called setting for default location.
= 3.4.0 =
* Feature: import and export calendar settings.
* Feature: Migrate CSS to custom file locations.
* Feature: Add modal option for all popup views.
* Feature: Copy to clipboard for help & shortcodes.
* Feature: REST API support for outputting events.
* Feature: New default stylesheet.
* Feature: Support 'current' as an argument in a comma-separated list of users.
* Bug fix: User category limits need to be configurable for all users who can add events.
* Bug fix: User category limits should limit the categories selectable by users, not just those editable.
* Bug fix: Default events screen says 'All' but only showed 'Published'
* Bug fix: Quick publish of a draft should keep user in draft events list.
* Bug fix: Don't repeat geolocation queries if a location does not have valid data.
* Bug fix: Should only require 'Add Events' permissions to set user categories.
* Bug fix: Category list did not filter out unavailable categories.
* Bug fix: Location slug callback had bad typos.
* Bug fix: Fix PHP notice if $templates not an array.
* Bug fix: Fix JS for list view to handle if an event has a language change.
* Bug fix: Mini URL used incorrectly.
* Bug fix: If primary category is already private, no need to check whether a private category is asigned.
* Bug fix: Dynamically manage color in SVG icons.
* Bug fix: Delete post meta when dropping database on uninstall.
* Bug fix: PHP 8.1. updates.
* Bug fix: All day events not rendered correctly in iCal clients. Props @drjoeward.
* Change: Manage settings in a single database option rather than individual options.
* Change: Improved design on print view.
* Change: Refresh undeprecated stylesheets.
* Change: Deprecate older stylesheets.
* Change: show category icons in event manager.
* Change: Render CSS variables using `wp_add_inline_style()`.
* Change: Render My Calendar main output without shortcode on defined home location.
* Change: Remove a couple very long deprecated functions.
* Change: Don't save default text settings; use coded fallbacks when empty.
* Planning: Prep for removal of core CSS editing.
* Planning: Prep work for new templating framework.
* Planning: Updates to support future changes in My Calendar Pro.
* Performance: caching of icon list data.
* Accessibility: Improve aria-label patterns so user settings override.
* Accessibility: Omit aria-label if link text is already unique.
* Accessibility: Improve calendar navigation using AJAX.
= 3.3.25 =
* Security: Cross Site Request Forgery vulnerability in Event/Location deletion. Props rezaduty/Patchstack Alliance
* Bug fix: Location handling problem when editing events where location is already set.
* Bug fix: [Pro] List JS broken when rendering non-primary-language events.
= 3.3.24.1 =
* Bug fix: minified mcjs.min.js was invalid in 3.3.24, breaking jump navigation selector.
= 3.3.24 =
* Bug fix: Don't catch non-ajax actions in navigation with JS.
* Change: Collapse template preview by default.
* Change: Change parsing of POST data when AJAX action executed.
= 3.3.23 =
* Bug fix: Don't set to default location if location already set.
* Bug fix: Add stopImmediatePropgation to click handlers to prevent other script's scroll effects
* Change: Remove .mcajax class as unneeded.
= 3.3.22 =
* Bug fix: Mismatched variable type broke default week view.
= 3.3.21 =
* Bug fix: Accidentally stripped HTML out of all event titles with search excerpt highlighting.
= 3.3.20 =
* Bug fix: Recurring month by day not propagating correctly.
* Bug fix: Available admin input settings not displaying correctly.
* Bug fix: Unset style variables array could throw PHP warning.
* Change: Improvements to structure of search results.
* Change: Change default search result template.
* Add: search_results template tag with search term highlighting.
= 3.3.19 =
* Bug fix: Missing support for 'show_recurring' parameter in shortcode builder.
* Bug fix: Checkbox input layout in shortcode builder
* Bug fix: Locations content filter needs to be restricted to main query only.
* Complete documentation of hooks.
= 3.3.18 =
* Bug fix: img and svg category icon styles applied to list items in category admin.
* Bug fix: duplicate sprintf call missing arguments.
* Bug fix: Globally review & align var type declarations with params & returns in functions & documentation.
* Bug fix: Fix some date iteration on recurring events in iCal exports.
* Change: Return http 500 if invalid URL passed to print view return URL.
* Continuing hook documentation.
= 3.3.17 =
* Security Fix: XSS flaw in print view.
* Bug fix: View full calendar could be empty if settings not edited.
* Bug fix: View full calendar text default not translatable.
* Bug fix: Allow class attribute on time element.
* Change open in new tab text to 'new tab'.
* Label error source in cases where wp_die() is used.
* Switch subscription links to webcal: protocol.
* Begin adding hook documentation at https://joedolson.github.io/my-calendar/
* Begin adding framework for future version of template handling.
= 3.3.16 =
* Bug fix: Incorrectly passed list type caused templates to encode html entities.
= 3.3.15 =
* Bug fix: CPT base values shouldn't allow URL-invalid characters.
* Bug fix: Improper variable type checking in mc_settings checkboxes.
* Bug fix: Unset search variable in auto-generated display hashes.
* New filters: Filter event object. (multilanguage support in Pro)
* New filter: Filters on single event HTML. (multilanguage support in Pro)
* Add: `language` attribute in main, today, and upcoming events shortcodes.
= 3.3.14 =
* Bug fix: Variables undefined if scripts disabled.
* Update tested to value for WP 6.0.
= 3.3.13 =
* Bug fix: Don't display empty field containers if field settings are empty.
* Bug fix: Pass version number to core stylesheet.
* Bug fix: Prevent warning from undefined GET variable in previous/next event links.
* Bug fix: Allow strong, b, and hr in shortcode output.
* Bug fix: Override masking; causing too many display problems.
* Bug fix: JS classes in main output used inverted comparisons.
* Notice: Custom JS will be disabled and removed in 3.4.
* Change: Collapsed view scripts from five files to one file.
* Change: Load new combined file minified.
= 3.3.12 =
* Bug fix: Find title and find event should use nearest event, not first event.
* Bug fix: Title replacement used event ID improperly if mc_id not passed.
* Bug fix: Seed GUID with home_url.
* Bug fix: Don't throw warnings if host/author ID no longer exists.
* Bug fix: Handle recurring event codes if passed from event importer.
= 3.3.11 =
* Bug fix: Modifying a category didn't refresh the icon SVG for that category.
* Bug fix: Contextual help should be viewable with 'view help' capability.
* Bug fix: Allow img in event title templates.
* Bug fix: 'all' category limit could be cast to an integer, breaking links.
* Change: text changes to location select label for clarification of purpose.
* Change: allow mc_bulk_actions() to take a second argument with events to modify.
= 3.3.10 =
* Bug fix: aria-current not rendered on event manager filters.
* Bug fix: published filter not marked as current by default.
* Bug fix: Cache allowed sites for CORS headers on multisite networks.
* Bug fix: fread error if no stylesheet defined.
* Bug fix: Extra closing div in single-day view.
* Bug fix: Better support for local user time.
* Change: Wrapper function for My Calendar time format: `mc_time_format()`
= 3.3.9 =
* Feature: Ability to merge duplicate locations.
* Bug fix: New locations created with events were not properly saved with the event, leading to possible location duplications.
* Bug fix: Add location to table should not be checked when copying an event.
* Bug fix: Possible fix to meta permissions.
* Bug fix: Fall back to non-fulltext queries if search term below length limit.
* Bug fix: 'search' nav item not rendering.
= 3.3.8 =
* Bug fix: Generated a duplicate location if event with location unselected location.
* Bug fix: Setting an event's all day label text to blank should not be overridden by defaults.
* Bug fix: Delete single event from front-end pointed to wrong destination.
* Bug fix: Missing help text for copying events.
* Change: Minor text change to empty location value.
* Change: Clear list items in list view (CSS)
= 3.3.7 =
* Bug fix: Fixes location admin verification error in manage locations list.
= 3.3.6 =
* Bug fix: Event template previews should only show to users who can use them.
* Bug fix: Category key icons should show background colors when configured.
= 3.3.5 =
* Bug fix: Default values for screen options were not called.
* Bug fix: Event count dots should not show in print view.
* Bug fix: PHP notice if mc_id not set on single event views.
* Bug fix: Documentation link led to removed page.
* Bug fix: Modal help links should open in parent window, not within modal.
* Bug fix: Search query sent to docs site should not be translatable.
* Bug fix: JPG or GIF custom icons should be accepted.
* Bug fix: Template attributes containing HTML stripped attributes in template manager.
* Bug fix: PHP Warning when checking for private category property and object not defined.
* Bug fix: Don't show admin grid view location dropdown if more than 200 locations.
* Bug fix: Prevent large icons from overflowing custom icon list.
* Bug fix: Fix display of custom icons in icons modal.
* Performance: only run mc_create_tags() once per event.
* Performance: cache whether icons are custom rather than inspecting directory for every icon load.
* New filter: `mc_display_location_events` on upcoming event arguments for location screen.
* Change: label My Calendar page in pages list.
= 3.3.4 =
* Bug fix: is_single() shouldn't be called in admin
* Bug fix: Prevent invalid events from breaking year dropdown.
* Bug fix: Make sure category colors are important.
* Bug fix: Set margins to 0 on input/button in nav.
* Bug fix: Decreasing font sizes in nav caused too many problems in older themes.
* Bug fix: Don't insert locations if no data passed to inserter.
* Bug fix: Delete location argument was not used.
* Bug fix: don't output empty locations.
* Bug fix: 'span' is not an attribute on 'span'.
* Bug fix: Verify validity of category relationships when parsing admin lists.
* Bug fix: $templates was undefined and broke saving templates.
* Bug fix: missing quote in 'delete template' button.
* Bug fix: custom templates sanitized incorrectly.
* Bug fix: translations link went to old translations site.
* Bug fix: Handle what happens if default category is deleted.
* Bug fix: Invalid class not reset in admin lists.
* Bug fix: date displayed in wrong timezone in admin recurring events list.
* Change: If location without any unique data is listed in admin, auto delete.
* Change: changes to add dates UI to clarify usage.
= 3.3.3 =
* Bug fix: Timezone omits positive/negative signifier in JSON LD in UTC+ timezones.
* Bug fix: Widen location autocomplete field.
* Bug fix: Fix show location shortcode templating.
* Bug fix: Recur daily by weekday did not produce valid times.
* Bug fix: Skip holidays default state filter missing.
* Bug fix: Only apply default state on special case recurrence fields on new events.
* Bug fix: Category relationships not updated correctly if category deleted.
* Bug fix: File path incorrectly referenced when finding custom icon directories.
= 3.3.2 =
* Change: Add classes representing start time and event length.
* Bug fix: Remove unneeded generic class declarations.
* Bug fix: Show stored location, not event location, in events list.
* Bug fix: Add missing elements to KSES filters for widgets.
* Bug fix: Incorrect logic to hide read more link.
* Feature: Add field to set calendar month heading.
= 3.3.1 =
* Bug fix: Bulk removal of locations broken.
* Bug fix: SVG category icons should not be queried remotely; use filesystem.
* Layout: wider max-width by default, center calendar in container.
* Bug fix: Display more information link had inverted logic & wrong label.
* Bug fix: Don't show location link if location is not post type mc-locations.
* Bug fix: Week view could end up offset incorrectly in some views due to dates getting double timezone offsets.
* Bug fix: Provide back-compatibility for tabs in older versions of My Calendar Pro
= 3.3.0 =
Backend Changes:
* Replaced date picker with the Duet Design Systems accessible date picker.
* Accessibility & usability improvements to adding additional occurrences to an event. (DB change)
* Add support for custom fields on locations. See demo at Github
* Extensive back-end user experience changes.
* Link location title to edit screen in location manager
* Improve checkbox labeling in event manager.
* Improve button labeling in nav ordering.
* Add row actions to Location manager.
* Add support for custom columns in location manager.
* Bug fix: use aria tab panels properly in settings.
* Removed upgrade cycles & associated code for upgrading from version 2.3.x (last release in 2015.)
* Support aria-sort on sortable tables.
* Locations support both descending & ascending sort.
* Bug fix: pagination when sorting in event manager.
* Update settings configuration for default calendar URL.
* New setting to control whether plugin settings are removed on uninstall.
* Text changes for clarity & simplification
* Change 'Short Description' to 'Excerpt' for clarity
* Collapse 'Event Groups' and 'Events List' into a single screen.
* Inline help pop-ups
* Show event count for category links.
* Add settings manager to My Calendar primary view page.
* Updated recurring events input method.
* Add category during event creation.
* Make event bulk actions a dropdown.
* With Google Maps API, auto query lat/lon data for locations.
* Add calendar view for navigating events in admin.
* Simplify featured image support.
* Use checkboxes to select categories in widgets & shortcode generator.
* Show warning if screen has unsaved changes
* Template tag & event template previews.
Bug fixes:
* Bug fix: Deleting a location from the location manager should not send user to the location editor.
* Bug fix: row action links not properly labeled.
* Bug fix: row action links not becoming visible on focus.
* Bug fix: PHP warning on installations without saved locations.
* Bug fix: Screen options weren't able to retrieve user settings correctly.
* Bug fix: Event manager displayed recurring event options on single event editing screens.
* Bug fix: Form overflows in responsive views.
* Bug fix: Need breaking container in map bubble after location name.
* Bug fix [a11y]: Ensure focus isn't loss in sortable lists; announce change via wp.a11y.speak.
* Bug fix: If no previous or next event, generated numerous PHP errors.
* Stylesheet previewer in Design manager.
* Only show "special scheduling options" when relevant.
* Add Help tab to explain statuses.
* Add color picker to CSS variable UI
Frontend changes:
* Add front-end location view.
* Update default custom templates.
* Support filtering by multiple locations in calendar shortcodes or by filter.
* Change: use a stateful heading for all calendar views.
* Change: Support AJAX navigation on date select form.
* Bug fix: Override custom select styles from Twenty Twenty One
* New: recurring-event classes in event lists.
* Rewrote Google Maps scripting
* New SVG category icons, sourced from Font Awesome (https://fontawesome.com/license)
* New default stylesheet: twentytwentyone.css
* Individual display settings for different calendar views
* Creates demo content on initial installation.
* Enable pretty permalinks by default on new installations
* Add accessibility fields as a default event output.
* Removed RSS feeds.
* Always show event title in pop-up.
* Update default date/time formatting.
* Support search in calendar navigation.
* Support category dropdown in calendar navigation.
* Support location dropdown in calendar navigation.
* Support accessibility feature dropdown in calendar navigation.
* Support ld+json schema.org data for events and locations.
* Changed heading structure for main calendar view.
* Add event number to list view and event number hint in mini view.
* 'Show recurring' flag in upcoming events list.
* Upcoming events list should not wrap empty value in `ul`
* New default stylesheet
Developer Changes:
* New actions: 'mc_event_happening', 'mc_event_future', 'mc_event_over' executed whenever an event is compared to the current time, usable for automatic transitions and notifications.
* Filter: 'mc_output_is_visible' to determine whether a given display feature should be shown on calendar.
* Disable sending email notifications for Spam events. Add action to optionally handle spam notifications.
* Remove the process shortcodes option. Shortcodes can be disabled using 'mc_process_shortcodes' filter.
* Published documentation to https://docs.joedolson.com/my-calendar/
* New filter to add custom permissions. 'mc_capabilities'
* New filter for event details `mc_event_detail_{value}`
* Started work on documenting filters and actions.
* Code reorganization.
* PHP 8.0 compatibility.
= 3.2.19 =
* Resolve svn problem causing missing files.
= 3.2.18 =
* Security: Fixes reflected XSS flaw in admin. Props to @erwinr and WPScan.
= 3.2.17 =
* Bug fix: Add parameter for required fields handling to ignore during imports.
* Add filter handling calendar URLs when using Polylang or WPML.
= 3.2.16 =
* Bug fix: Check for undefined objects in localization, not for undefined object props.
* Change: Set parameter for location autocomplete switchover to 50 instead of 25 locations.
* Change: Tweak directory removal process slightly.
= 3.2.15 =
* Bug fix: Hide event details section if no fields are visible for section.
* Bug fix: Update localization to correct usage of l10n parameter.
* Bug fix: Location AJAX query executed function that only existed in Pro.
= 3.2.14 =
* Bug fixes: Misc. type casting issues.
* Add filters `mc_filter_events` to filter results of main event queries.
* Add $args array to `mc_searched_events` filter parameters.
* Avoid running My Calendar core functionality through My Calendar's own hooks.
* When using REST API, variables are not submitted in a POST query.
* [Performance] Move custom location query into object creation to reduce DB calls.
* Use try/catch in mc-ajax.js to handle case where href does not contain a full URL.
* Autocomplete support for locations in admin.
* Reset select elements in My Calendar nav to inline.
* Minor refactoring in settings pages.
= 3.2.13 =
* Bug fix: Using embed targets is more complicated than expected; disable by default. Enable with 'mc_use_embed_targets' filter.
* Bug fix: Strip embed from parameters when building links (when embed target enabled.)
= 3.2.12 =
* Bug fix: Don't use embed target link when AJAX disabled.
* Improvement: Add AJAX navigation into browser history & address bar.
= 3.2.11 =
* Bug fix: switching to week view display broken.
* Bug fix: links to template help pointed to old location for help.
* Bug fix: AJAX nav pulled height from first rendered calendar, not current navigating calendar.
* Change: filter to pass custom notices for front end submissions and editing.
* Remove fallback function for is_ssl()
* Improve conflicting event errors when the conflicting event is still unpublished.
* Add custom template to pass a calendar that's embeddable via iframe.
* Bug fix: Multisite environments need to use navigation on current site, not from remote site.
= 3.2.10 =
* Change: Fallback text should have a stylable wrapper.
* Bug fix: Missing translatable string.
* Bug fix: When multiple categories selected, events in more than one category would appear multiple times.
* Bug fix: Missing space in MySQL filters in event manager.
* Bug fix: PHP Notice thrown in location manager.
* Bug fix: Add note to open events link field if no URI configured.
* Layout fix: Ensure there's always a space between date & time.
= 3.2.9 =
* Bug fix: Additional of required fields testing erased error messages generated prior to required fields testing.
* Bug fix: If an individual occurrence title is edited, event permalinks show the single change on all events.
* Bug fix: Prev/next event links don't include unique event IDs.
* Bug fix: Remove irrelevant arguments from prev/next event link generation.
* Bug fix: Ignore templates if no data passed.
= 3.2.8 =
* Bug fix: Extraneous screen-reader-text summary generated in event views.
* Bug fix: Fixes to missing parameters in Schema.org microdata.
* Bug fix: Incorrect type comparison caused custom templates not to render in single event view.
* New feature: Default location.
= 3.2.7 =
* Bug fix: Prevent events from being created without categories.
* Bug fix: Ensure category relationships are deleted when related events are deleted.
* Add handling for seeing & managing events that are invalid.
* Add styles for invalid rows.
= 3.2.6 =
* Added filter to change date format on calendar grid.
* New filter for modifying user selection output.
* Bug fix: only check for get_magic_quotes_gpc() if below PHP 7.4
* Bug fix: invalid query in mc_get_locations() if arguments passed as array.
= 3.2.5 =
* Bug fix: CSV exported text fields contained newline characters.
= 3.2.4 =
* Bug fix: Permissions issue caused by variable type mismatch.
= 3.2.3 =
* Bug fix: 3.2.2 created multiple post types with the same slug, triggering 404 errors.
* Bug fix: Templates could return the name of the template if template empty/missing.
= 3.2.2 =
* Bug fix: Curly brace offset access deprecated
* Bug fix: Make next/prev post link arguments optional.
* Bug fix: Template queries could return an empty template.
* Change: Remove trashed events from default events list.
= 3.2.1 =
* PHP Notice: undefined variable.
* Bug fix: screen options not saving.
* Bug fix: Accidental auto-assigning of first category to events when editing.
= 3.2.0 =
* Auto-toggle admin time format if display time format set to European format.
* Show API endpoint when API enabled.
* Add alternate alias for API endpoint.
* Add style variables with category colors to style output.
* Add color output icon with CSS variables in style editor.
* Add new default stylesheet: Twentytwenty.css
* Move permalink setting to general settings panel.
* Change event timestamps to use a real UTC timestamp for reference.
* Switch from using date() to gmdate().
* Update Pickadate to 3.6.4. Resolves some bugs, but introduces an accessibility issue.
* Customizations to Pickadate 3.6.4 to repair accessibility
* don't move focus to picker
* add 'close' button to time picker.
* Switch Pickadate to classic theme (modified).
* Improvements to output code layout.
* Eliminate empty HTML wrappers in content.
* New filter: mc_get_users. Use custom arguments to get users.
* New filters: mc_header_navigation, mc_footer_navigation
* New template tags: {userstart}, {userend} - date/time in local users timezone.
* Bug fix: Misc. ARIA/id relationships broken.
* Bug fix: remote locations sometimes pulled from local database.
* Bug fix: Long-standing issues in user input settings.
* Bug fix: Don't duplicate .summary values.
* Bug fix: Only render one close button in mini calendar.
* Collapse 'View Calendar' and 'Add Event' adminbar menus into a single menu.
* Remove upgrade path from 2.2.10.
* Remove .mc-event-visible from style output. Unused since 2011.
* Remove numerous deprecated functions.
* Conformance with latest WordPress PHPCS ruleset.
= 3.1.18 =
* Add filters to 'Add to Google Calendar' link: mc_gcal_location & mc_gcal_description
* Add 'nofollow' to links to past events.
* Include recurrence info in post meta box.
* Change limit on adding occurrences from 20 to 40.
* Minor code refactoring.
= 3.1.17 =
* Bug fix: comma misplaced in mc_list_title_title.
* Provide special handling in cases where multiple categories are enabled but selector is passed a non-array value.
= 3.1.16 =
* Bug fix: restricting styles & JS to specific pages broken by strict type checks.
* New filter: mc_list_title_title
= 3.1.15 =
* Bug fix: List of access features produced empty UL if no results.
* Bug fix: Always produce a class on event accessibility selection list.
* Bug fix: Docs error in describing custom files directory.
* Add: support passing multiple site IDs into the calendar shortcode in multisite.
= 3.1.14 =
* Bug fix: Unescaped event title in HTML output.
* Bug fix: Improper saving of Edit All Categories permissions in user profile.
* New: [my_calendar_next] shortcode.
= 3.1.13 =
* Bug fix: If plugin name is translated, script references were broken.
* Bug fix: If no holiday category assigned, Today's Events widget will return empty when category limits set.
* New filter: allow events post type to be made searchable. (Not recommended.)
* New: Support 'search' parameter in shortcode & URL parameters for main view.
* Remove option to disable max contrast category names.
= 3.1.12 =
* Bug fix: User-specific category permissions didn't handle unset (default) values.
* Bug fix: missing row closure element when weekends not displayed.
= 3.1.11 =
* New filter on mc_user_permissions operated on wrong variable.
= 3.1.10 =
* SECURITY FIX: Unauthenticated XSS scripting vulnerability. Update immediately. Thanks to Andreas Hell.
* Support for defining individual categories as having no category icon.
= 3.1.9 =
* Undefined variable notice.
* Disable Yoast canonical URL output on single events
* Use same time variable in templates & in main layout.
* Using default title template and empty time text, don't display unneeded colon.
= 3.1.8 =
* Bug fix: 'event_begin' is not always a string, so 'mc_event_date' not always registered correctly.
* Update 'sortable' code to be prepared for My Calendar Pro 1.9.0.
* Add 'mc_date_format()' function to get appropriate date format
* Minor settings design changes.
= 3.1.7 =
* Add meta field '_mc_event_date' for use in My Tickets
* Add option to disable output link using an explicit option.
* Change the JS so popups are only attached to links.
* Better UI with custom & deleted occurrences in recurring events.
* Bug fix: sessions should only be started if a search has been performed.
= 3.1.6 =
* Bug fix: If a category name was blank, it would automatically be filtered to by upcoming events lists.
* Bug fix: Show print view as list if main view is list.
* Bug fix: Strip HTML tags from aria-label attributes
* Bug fix: .details needs position: relative in twentyfifteen stylesheet
* Adjust tested to value to 5.1
= 3.1.5 =
* Bug fix: PHP error checking broken due to session creation
= 3.1.4 =
* Bug fix: typo in category string parameter for ical output
= 3.1.3 =
* New filter: 'mc_list_titles_separator'
* Bug fix: Help support data not displayed.
* Override content overflow in Twentynineteen
* Add support for iCal format in API exports
= 3.1.2 =
* Bug fix: Twentyeighteen styles missing from template directory
* Bug fix: Declare width on th as well as td
* Bug fix: optgroup close element broken
* Bug fix: Shortcode generator fixes.
* Bug fix: Handle case where hidden categories are not an array in event manager.
* Bug fix: If template tag value contains only whitespace, do not render before & after attributes.
* Bug fix: Handle form restrictions in KSES introduced in WP 5.0.1.
* Bug fix: check whether PHP sessions are enabled before attempting to start
* Change: Only render export links in search results if enabled in main settings
* Change: [UI] Move stylesheet selector into sidebar
* Change: Allow target attribute on links.
* Change: Add label to links that open in new tab.
= 3.1.1 =
* Bug fix: unspamming event_ID passed incorrect variable name
* Bug fix: Don't run spam check on users with mc_add_event
* Bug fix: Users with mc_add_event should not be able to trash other's events.
* Bug fix: Refine permissions; add mc_publish_events allowing users to publish own events without access to others
* Bug fix: Refine permissions; don't display links that users can't use.
= 3.1.0 =
* Add feature (by Josef Fällman): Print & export view for search results.
* New filter: mcs_check_conflicts (impacts Pro only)
* Bug fix: Fix issue causing duplication in some views.
* Bug fix: Time format should be filtered in initial edit view.
* Bug fix: Category relationships not retained when Group editing applied.
* Bug fix: aria-describedby ID mismatch.
= 3.0.19 =
* Bug fix: Fatal error in export API when location object included.
* BUg fix: my calendar categories queried private categories instead of public.
= 3.0.18 =
* Bug fix: Invalid setting in bottom nav defaults.
* Bug fix: Generate feeds by date added rather than fixed number. If empty, get most recent regardless.
* Bug fix: Legitimate HTML escaped in visual editor in group event editor.
= 3.0.17 =
* Bug fix: Group event editing was broken.
* Bug fix: Eliminate four PHP notices in the Today's Events widget.
* Added: Filter to control whether CSS should be loaded on archives.
= 3.0.16 =
* Changed display UID to avoid duplicate IDs when multiple calendars shown.
* Add option to display heading in details pop-up.
* Unify position and size of close button in Twentyeighteen mini calendar.
* Eliminate multi category parameter from CSV output (doesn't support multidimensional data)
* Add GUID to export data.
= 3.0.15 =
* Bug fix: prevent some PHP notices when running Pro importer.
* Bug fix: Display of multidate time string when crossing months or years.
* Bug fix: Variable written as constant prevented event_span from saving correctly.
* Bug fix: Trash counter updated with incorrect values.
* Bug fix: Two cases where status counter not updated.
* Change: Add DB version to debugging info
= 3.0.14 =
* Bug fix: incorrect value passed for instance parameter on single event shortcode.
* Bug fix: hide HTML wrapper for category color when colors disabled.
* Bug fix: Remove transparent background in Twenty eighteen; blocks category colors
* Bug fix: Invalid ordering parameter for location lists
* Feature: Ability to select multiple categories (props Josef Fällman)
* Moved changelogs for 2.5 & earlier to changelog.txt
= 3.0.13 =
* Bug fix: missing function call when accessing custom mini templates
* Bug fix: Syntax error in SQL query checking for conflicts
* Change: pass short description to Akismet if long desc absent
= 3.0.12 =
* Bug fix: My Calendar could prevent canonical link from displaying if canonical link being filtered by another application.
* Modernize & improve Akismet integration.
* Add filter to disable Akismet checks.
= 3.0.11 =
* SECURITY: XSS - Canonical URL not properly sanitized. Affects 3.0.0 and up.
= 3.0.10 =
* Bug fix: invalid method used to sort location lists.
* Bug fix: shortcode generator missing input value
* Bug fix: datepicker did not reflect start of week settings
* Stylesheet CSS change
= 3.0.9 =
* Bug fix: Error thrown if Akismet had previously been configured, then deleted.
* Bug fix: location type was added to params if category key was set.
* Bug fix: remove a couple notices
* Bug fix: category relationships not carried over when recurring events split
= 3.0.8 =
* Bug fix: need to allow elements in mc_strip_tags so calendar linkscan point to non-calendar URLs
= 3.0.7 =
* Bug fix: Case where events ending at midnight (AM) of current day were displayed
* Bug fix: trim spaces from values earlier when parsing filter elements
* Change: don't declare font-family in older stylesheets.
= 3.0.6 =
* Bug fix: Shortcode for locations forms always rendered as if in a group filter.
* Bug fix: If the default length 1 hr event pushes into next day, adjust length.
* Bug fix: Incorrectly nested parentheses caused math error in months-by-day recurrence
= 3.0.5 =
* Bug fix: If only one event on a day, event title did not show in list view with show title option.
* Bug fix: Incorrect array key for fallback parameter in widget
* Bug fix: custom template query expected 25 chars instead of 32
* Re-allow
in event titles.
= 3.0.4 =
* Bug fix: aria-current test was broken for current date
* Bug fix: Private categories not disambiguated in MySQL query when excluded
* Improve: Rewrite my_calendar_copyr backup functions to use WP core functions.
= 3.0.3 =
* Bug fix: Category key needed to use a 'WHERE' not an 'AND'; broke output if limiting by category
* Bug fix: Error thrown in style editor & category editor if custom directory did not exist
= 3.0.2 =
* 3.0.1 did not correct the right error. Correct fix.
= 3.0.1 =
* Bug fix: install error on update.
= 3.0.0 =
* Bug fix: If category deleted, set events with that category to default cat, not cat ID 1.
* Bug fix: Date/time comparison used front-end date value instead of dtstamp in upcoming events.
* Bug fix: Navigation issue if beginning of week is in previous month
* Bug fix: Event conflict didn't catch events 100% contained inside other events.
* Bug fix: Private categories should not be visible to public users in submission forms or category lists
* Bug fix: aria-current key term value was translatable
* Bug fix: If editing single instance, location is removed
* Bug fix: don't show location control notices on front-end
* Bug fix: correcting event recurrence did not always remove meta flag
* Bug fix: Only output map HTML if API key provided
* Bug fix: character set and collation determination on install & update
* Bug fix: When changing recurring events, only change instance IDs if the date of the instance has changed.
* Bug fix: Event post should not change post date on update
* Bug fix: All day events should export correctly to Outlook & Apple Calendar
* Bug fix: Location control accordion was not accessible.
* Bug fix: Term ID was not set in category manager if term already existed.
* Bug fix: Make sure that the 's' query var is not automatically added to My Calendar URLs
* Add: several new filters
* Add: notice to alert users if their calendar configured for remote event source.
* Add: map display to back-end location manager.
* Add: location search in location manager
* Add: ability to filter location lists used to submit data 'mc_get_locations'
* Add: Support for multiple categories on events.
* Add: stylesheet (Twenty Eighteen)
* Add: CSS variables support
* Add: list of problem events in Manage Events sidebar
* Add: add months shown in list view to shortcode parameters
* Add: support for auto-refresh of cache for a variety of caching plug-ins.
* Add: Option to remove event data on uninstall
* Add: filter to define events as private via custom methods
* Add: event preview
* Add: location support to mini calendar widget
* Add: CSS code editor available in Style editing
* Add: HTML code editor available in Template editing
* Add: Schema.org address markup
* Add: Schema.org event markup
* Add: Include event link in 'Add to Google Cal' content.
* Add: date format for multi-day dates in grid view.
* Removed: event open & event closed text settings
* Removed: event_open event status (little used and confusing; replaced by My Tickets)
* Removed: guessing calendar install location
* Removed: event cache code
* Removed: upgrade routines from 1.11.x
* Removed: mc_widget_defaults option
* Removed: user's guide references
* Change: default image sizes from 'medium' to 'large'
* Change: Remove ability to disable event approval; remap "approval" to "draft"
* Change: default number of results to show in advanced event search.
* Change: Switched from image to icon font for close button
* Change: Major changes to event fetching
* Change: Major changes to code organization
* Change: Added caching on database engine query
* Change: if event location set in dropdown, event will always display location as shown in location manager
* Change: changed argument style for major functions to arrays of arguments
* Change: move Location Manager to separate page; add location sorting.
* Change: Move exif_ fallback function into utilities include
* Change: Moved location & category specific settings
* Change: Simplified texts in several locations
* Change: Clearer UI on location input limits
* Change: autotoggle end date minimum input when start date set
* Change: Reorganized input fields
* Change: Generate separate iCal exports for Google Calendar or Outlook
* Change: Constrain tabbing within details pop-up
* Change: Close details pop-up with Esc key
* Change: Audited options to remove unused or unneeded options
* Change: Create a referential template when shortcode generated
* Change: Feeds nav panel now shows subscription links; exports are available in 'exports' panel.
= 2.5.17 =
* Security: Authenticated XSS vulnerability resolved.
* Remove 'create_function' for PHP 7.2 compatibility.
* Updated: Upgrade Notice output.
= 2.5.16 =
* Bug fix: Event deletion action executed when individual instance deleted from front-end
* Updates: due to esc_sql function changes in WordPress 4.8.3
= 2.5.15 =
* Bug fix: Jumpbox rendered October as January due to unneeded character replacement
= 2.5.14 =
* Bug fix: saving setting for main calendar URL from front page doesn't work
* Bug fix: esc_url only in appropriate places
* Bug fix: Recognize month parameter from shortcode in navigation elements
* Bug fix: 404s for deleted events
* Bug fix: Print styles handle date in week view better
* Bug fix: Events not visible in list with list JS disabled
* Bug fix: SQL query for conflict checking threw errors
* New option: list all events in list view with JS
= 2.5.13 =
* Bug fix: Categories can not be part of the md5 hash used to identify unique tables (breaks AJAX nav for categories)
* Bug fix: recurring scheduling for week-days only not functional when 7 days or greater
* Bug fix: Print view location filters broken
* Bug fix: Make AJAX scripting aware of which other scripts are enabled.
* Bug fix: Sort scheduled dates for event by date
* Bug fix: JetPack Grunion Contact form interfered with TinyMCE in contexts outside of post editor (https://github.com/Automattic/jetpack/issues/7598)
* Bug fix: ensure date is retained if datepicker disabled
* Bug fix: archived events filter marked as active when not
= 2.5.12 =
* 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
= 2.5.11 =
* Bug fix: Bottom mass action buttons outside of form
* Bug fix: User select form used 'checked' instead of 'selected'
= 2.5.10 =
* Bug fix: allow parsing of non-English strings through strtotime()
* Bug fix: trim whitespace off array keys in location controller
* Bug fix: Don't display 'Add Event' menu in adminbar if remote event database is enabled
* Bug fix: All day events correctly exported in iCal files
* Bug fix: Footer navigation not shown on single day view
* Bug fix: Execute AJAX navigation from both header and footer containers
* Bug fix: {icon_html} returned broken image if category had no assigned icon
* Removed obsolete PHP 4 compatibility for clone keyword
* Added hook to prevent activation if PHP version below 5.3.0.
* New filter: define custom target calendar URL via 'mc_get_uri' filter
* New action: 'mc_insert_recurring' run while creating event instances
* New filter to customize default event length: 'mc_default_event_length'
* New filter: 'mc_show_week_number' to turn on column indicating displayed week's number. (props Josef Fällman)
* UI Change: Duplicate navigation and search on events list at bottom of list
* Miscellaneous improvements to the My Calendar Filters shortcode: set target URL & change location search type, add as widget
* New widget: My Calendar event filters
* Added inverse color style declaration to category color template tag
= 2.5.9 =
* Bug fix: class .mc-main appeared twice in day view
* Bug fix: iCal output fetches no data on subsites in multisite networks
* Bug fix: broken image upload script due to localization change
* Bug fix: sorting events by category should sort by name, not ID
* Add site name to .ics output file
= 2.5.8 =
* Bug fix: mc-ajax.js referred to a class that did not always exist
* Bug fix: Cases missed in interpreting category class values
* Bug fix: For backwards compatibility, ensure that spaces are replaced with hyphens in category classes
* Bug fix: Check whether templates returned are empty & ensure fallback renders
* Bug fix: revise FOUC implementation to avoid jQuery not defined errors
= 2.5.7 =
* Bug fix: notice in event image field if input disabled
* Bug fix: class setting was based on GMT timestamp according to MySQL
* Bug fix: PHP notice thrown if requested template doesn't exist
* Bug fix: support for embedding videos via iFrame.
* Bug fix: JS refinements to AJAX loading; changing formats can cause panel closing not to fire due to .list/.calendar switching
* Bug fix: JS refinements to AJAX loading; make sure everything works when positioned in the header or are excluded
* Bug fix: always provide a category class that's valid
* Bug fix: If mini calendar links set to open to new page, automatically disable JS
* Bug fix: If special options hidden, always set to 'true' on event save.
* Added: aria-current for current date.
* Improve KSES implementation
* Improved URL building
* Improvements to print CSS
* Improvements to sortable CSS
* New filter: 'mc_category_icon'
* New action: 'mc_print_view_head'
= 2.5.6 =
* New filter: mc_user_can_see_private_events to change criteria for visibility of private events
* New filter: mc_private_categories to tweak which categories are considered private
* Bug fix: PHP warning due to cache query occurring when caching is not enabled
* Bug fix: images entered only as URLs deleted on edit
* Accessibility: aria-expanded attached to wrong element in list view
* Accessibility: ornamental icon fonts exposed to screen readers
= 2.5.5 =
* Bug fix: notices when generating classes for upcoming events
* Bug fix: RSS feed should respect private categories
* Bug fix: Events happening now shortcode should respect private categories
* Bug fix: iCal output should respect private categories
* Bug fix: @ suppressed notices in template tag parsing. props @uscore713
* Bug fix: eliminate two notices in upcoming events class parsing
* New filter: mc_draw_upcoming_event
* New filter: mc_draw_todays_event
* Marked as compatible with 4.7
= 2.5.4 =
* Add New link on Manage Events screen
* Add new link on Edit categories screen
* Add new link on Edit locations screen
* Changed maxlength on recurrence unit field to 2
* Eliminate two notices generate on manage events screen
* Two incorrect method_exists checks; should be property_exists
= 2.5.3 =
* Bug fix: prevent non-object warning in check for notime text
* Bug fix: missing classes from some instances of upcoming events list
* Bug fix: Only show invalid format/time errors if user with permissions.
* Enhancement: Include invalid format/time in error message.
* Performance: In single event shortcode, break out of foreach if list of related events not being produced.
= 2.5.2 =
* Bug fix: Make sure that upcoming events element filters operate in all cases
* Bug fix: Permit {register} template tag to pass additional attributes
* Bug fix: Add class to permitted attributes on span tag
= 2.5.1 =
* Bug fix: Multi-word category titles not hyphenated in event classes
* Bug fix: Add `{related}` template tag to documentation
* Bug fix: Today's events template broken
* Add 'past-event' and 'future-event' classes to related event list & main events lists
= 2.5.0 =
* Update hcalendar structures
* Better handling when updating event taxonomies
* Options to restrict management of events by category / user
* UI Clean up
* Don't display format toggle on mobile if automatic format switching enabled
* Add custom date option to upcoming events shortcode builder
* Improved error message if user creates event with an invalid recurring cycle
* Updated template editor; ability to create custom templates.
* Add option to add new dates for an existing event.
* For single event, show closest available date if no/invalid date ID provided.
* Added first occurrence data to core event object
* New template tag: {related} to list other events in the same group
* New loading indicator for AJAX navigation
* New filter to modify event classes
* New function to generate event classes
* Reduce number of strings in plug-in to reduce burden on translators
* Multisite: ability to display calendar for any site on any other site
* in my_calendar_draw_event(), add filter to hide additional days of events
* Improved HTML filtering to allow input elements and schema.org attributes.
* Add support for Google Maps API key field, now required for use of Google Maps on new sites
* Add 'today' keyword for the upcoming events 'to' attribute
* Updates to Help documentation
* Bug fix: auto assign events with no category to 'General'
* Bug fix: some user select lists overwrote select list options
* Bug fix: new events with no times entered need to be created as all day events
* Bug fix: wrong number of arguments passed to mass delete events hook
* Bug fix: Custom JS incorrectly escaped in Script manager
* Bug fix: removed numerous notices
* Bug fix: improved handling of missing event posts
* Bug fix: allow more HTML elements & attributes
* Bug fix: misc. notices
Breaking Changes:
* Breaking change: minor changes to classes to improve structured data in microformats
* Breaking change: upcoming events widget no longer uses ID 'upcoming-events'; use class '.upcoming-events'
* Breaking change: today's events widget no longer uses ID 'todays-events'; use class '.todays-events'
= 2.4.21 =
* Bug fix: Google Maps format change to latitude/longitude links
* Bug fix: Use short description directly as {excerpt} if provided.
= 2.4.20 =
* Bug fix: PHP warning triggered on type conversion when toggling time views.
* Bug fix: Map template tag returned raw scripts without `