LiveWhale 2.9.0 3/10/2023
AP Style Date/Time Formatting
LiveWhale has a multitude of configurable date and time formatting options, but this release makes it easier to enforce AP Style across-the-board with a single setting.
Default: January 10, 2024, 5:00pm
AP Style: Jan. 10, 2024, 5 p.m.
When $_LW->CONFIG['USE_AP_STYLE']=true;
is enabled in your global.config.php file, every widget, calendar view, and API result will follow the AP Style rules. [docs]
LiveWhale 2.8.0 1/27/2023
Enhancements and fixes to the default gallery
LiveWhale 2.0.0 introduced a new default gallery type that gets used on the details view for any event, profile, news story, or blurb. Having now worked with it “in the wild” on a few of your upgrades, this release includes a number of bug fixes and enhancements to that functionality.
New option: format_single_image
One small (but consequential) change is the addition of a new configuration format_single_image to the default gallery type. In LiveWhale 2.8.0, when you attach only one image to an event, story, or profile, the lightweight formatting from format_single_image is used instead of all of the markup from format and format_widget; it also skips loading the slideshow’s script and stylesheet. Note, this is optional—you can always copy the default gallery to your global theme if you’d like different behavior.
Overriding default gallery settings on a per-template basis
We’ve also clarified the interaction between details template settings and the default gallery—the idea being, your site-wide default gallery (for events, or profiles, say) might use a 300x300 square image, but for your news.php template you maybe want a 800x600 banner image. The docs now contain examples of how to customize the image width and height on per-template basis. You can also customize format_single_image this way—for example, maybe you include the image caption on news stories, but not profiles or events.
Fixes to image sizes
This release also includes a number of fixes to how thumbnail and image sizes are calculated on details page galleries, especially those that calculate width and height based on <arg id=”thumb_width”>auto</arg> or <arg id=”thumb_height”>auto</arg>. If you want to have your details templates include a complete image without cropping, using =auto on one of those settings can help restore that behavior from LiveWhale 1.7.1 and before.
As always, if you are preparing to upgrade and have any questions about the default gallery or how images are appearing on your site, feel free to reach out to support.
Additional Twitter meta-tagging
By request, LiveWhale 2.8.0 adds support for Twitter meta tags in LiveWhale powered pages and content (og:title, og:description, and og:image will be included also as twitter:title, twitter:description, twitter:image). These were already provided to Twitter via og: metatags, but now LiveWhale will override site-wide twitter meta tags that might be included in your theme with specific information about current page or content.
LiveWhale 2.7.0 11/11/2022
New feature: Image Descriptions (ALT text)
We’ve always wanted LiveWhale to be the most accessible platform possible—for editors and visitors—and that’s involved perennial review of our functionality and approaches. Prior to 2.7.0, our goal was to prevent editors from needing to think too much about image ALT text for screen-readers; instead, it was configurable using the built-in caption tools in LiveWhale.
However, we’ve come to appreciate from working with you all that sometimes the marketing caption you want is different than the accessible image description you need. In LiveWhale 2.7.0, you can have both.
You can still mark an image as decorative when you want a screen-reader to skip it. And, captions will still be used as ALT where appropriate for backwards-compatibility—so, if you’re happy with how things have been working, you can keep at it. But, we hope this feature will be useful to those members of your teams who want a more granular level of control over the screen-reader experience.
New Google News sitemap syntax
LiveWhale has long auto-generated sitemaps for easier search indexing, and in LiveWhale 2.7.0 we’ve added additional Google News-specific syntax to our auto-generated news sitemap. This additional information will allow Google News to more easily index news stories you’ve published within the last two days. More about Google News sitemaps.
LiveWhale 2.6.0 10/28/2022
New feature: back-end content layouts
They can be used to add design flourishes, pre-defined text (like parking instructions, land acknowledgements, or wheelchair accommodations), or structural elements (columns, callouts, etc) to your content.
Below is a simple example of a two-column content layout, but the sky’s the limit—if you can express it in HTML, you can make it easy for your editors to add into their LiveWhale content.
This has been a part of LiveWhale CMS since 2.0.0, but with this latest release we’ve extended it to LiveWhale Calendar and Storyteller, adding more functionality along the way. You can now:
- Create and configure content layouts for back-end editors (events, news, profiles, blurbs)
- Associate any content layout with specific preview CSS (or LESS/SCSS) that will be loaded in to those back-end editors
- Restrict individual content layouts to only front-end (page) or back-end editors
- Restrict individual content layouts to only certain groups in LiveWhale
- Restrict individual content layouts to certain user permission levels (e.g., an admin-only layout)
Learn more about how to create and configure your own content layouts, or reach out to support@livewhale.com if you’d like to explore getting assistance to set up content layouts with your next upgrade.
New developer tool: save variables across all load-balanced web nodes
Developers using $_LW->setVariable in their custom modules can now access an optional setting to save their variable to all web nodes in a load-balanced environment, rather than only the current web node. [docs]
LiveWhale 2.5.0 10/14/2022
Easily add consistent small images alongside your content
Exclude group(s) from site-wide results
From the group editor, it is now possible to automatically exclude content from a particular group in all widget results and API responses, unless explicitly requested with the group setting.
Added support for Google Analytics 4
If you’ve been tracking site visitor activity with Google Universal Analytics (UA) or Google Tag Manager (GTM), you’ve probably heard that Google is stopping support for Universal Analytics and moving fully to Google Analytics 4 (GA4) in 2023. They recommend starting to track using the new GA4 code as soon as possible so when the switchover happens next year you already have some data tracked.
In LiveWhale, you can do this by adding a new GA4 tracking code to your configuration, or by setting an existing GTM integration to also send traffic to GA4.
New widget settings
Added new widget arg, sort_search_results, which allows you to enforce a selected sort option when searching for content, rather than always sorting by relevancy. [docs]
And, on the nerdier side: if you use custom code to save a JSON object in a LiveWhale Custom Field, each key/value pair of that object is now exposed natively to the widget format and JSON API response as .
LiveWhale 2.4.0 9/9/2022
Updated SEO titles for events
When navigating LiveWhale Calendar (or a calendar on your LiveWhale CMS website), the current calendar view or event title has always been added to the end of the browser’s <title>.
Additionally, as you’ll see in the example above, if you are using a separator in your <title> like ·, •, or | (that’s middot, bullet, or vertical line), LiveWhale 2.4.0 will detect that and use the same separator when adding your event title. If none is found, it will fallback to using a forward slash / like before.
Redesigned widget placeholders
In LiveWhale CMS and Storyteller you’ll often insert widgets (news, profiles, galleries, and more) in the middle of your pages and other content. Widgets, pasted scripts, XPHP variables, and XPHP code blocks all showed a placeholder when editing that’s been overdue for a visual refresh:
LiveWhale 2.4.0 gives those placeholders an updated, streamlined aesthetic:
We also now provide more info about your widgets at a glance. If you use any widgets with customized inline settings, you’ll now see those settings listed right in the placeholder:
We have lots of exciting ideas for making the editing experience more transparent, intuitive, and beautiful in future upgrades, but we’re pleased to be delivering this big “leap” forward with LiveWhale 2.4.0.
LiveWhale 2.3.0 8/19/2022
New feature: total widget results
<arg id="format_widget">
News Stories
</arg>
When designing a LiveWhale widget, you might want to show how many results were found outside of the pagination tool. You can do so in LiveWhale 2.3.0 with the new format variable, which goes alongside in the format_widget setting.
LiveWhale 2.1.0 7/15/2022
New feature: Duplicate pages
There are lots of cases where you might want to base a new page off an existing one on your LiveWhale CMS site: “Directions from the Train” might want a sibling page “Directions from the Bus,” for instance.
Even if you just want to avoid putting any brainpower into “what template did I use here again?” LiveWhale 2.1.0 has got you covered with easy page duplication.
LiveWhale 2.0.0 6/20/2022
More Frequent Releases
As many of you know, our development work on the LiveWhale platform is continuous and iterative—but, our old way of announcing a new release every year or so wasn’t reflecting that. Starting now, we’re moving to a new system of semantic version numbering, and will be bundling up features and bug-fixes every few weeks and making them available on your dev server for testing.
Automatic Upgrades
If you’re using LiveWhale CMS, we expect you’ll want to continue testing and upgrading manually with each new release. However, for most LiveWhale Calendar sites, we’re going to suggest enabling automatic upgrades on your production calendar when you move to 2.0.0.
New Features for Content Editors
Easier Group Switching
After a number of years, LiveWhale 2.0.0 has reimagined group switching, leaving behind the default browser drop-down in favor of a filterable list that is more modern and accessible.
You can scroll and click a group using the mouse like before, but you can also simply click and start typing to filter. Press Enter to switch to the highlighted group, or use the arrow keys and Enter to select a different group.
Also, your three most recent groups will appear in a special section at the top of the list.
You can also configure Top Groups that will always appear at the beginning of the group list.
Finally, new Keyboard Shortcuts make switching groups and other toolbar tasks faster than ever: no matter where you are on the page, Ctrl+G opens the group switcher so you can start typing and go.
Event Reminders and Follow-up Emails
When creating event RSVPs, you can now configure optional event reminder emails (24 hours before the event) and event follow-up emails (24 hours after).
These messages are fully WYSIWYG customizable and can link to pre-event resources, post-event surveys, or just be a simple “Thanks for attending.”
All registration emails also now include a preview link so you can see exactly what your registrants will receive for each message type.
Easier Sharing and Curation
Front-end Improvements
New Default Gallery
LiveWhale Conferences

LiveWhale Conferences
You can attach one or more images to an event, news story, or profile, and we’ve revamped how this appears on the front end in LiveWhale 2.0.0.
First off, if you only apply a single image, then no slideshow code loads whatsoever, and you get a straightforward picture tag in HTML.
When you add multiple images, the new theme-able default gallery adds an icon indicating a gallery is present, and you can click to open a fullscreen lightbox-style gallery (example at right).
Responsive Images
Images in LiveWhale are now responsive, so mobile and tablet users will experience faster load times by not always loading the large desktop versions of each site image. This is enabled by default in 2.0.0, but you can also configure the breakpoints to match your theme.
LiveWhale Calendar
New Embedding Options
LiveWhale 2.0.0 retires the embeddable “CORS calendar” and replaces it with an easy-to-use iframe calendar, if you have places outside of your main calendar site where it would be useful to embed an interactive or month view calendar. This ?iframe=1 view has its own simplified template that you can customize to make sure your embedded calendars look just right.
LiveWhale CMS
Content Layouts
Once inserted, page editors can edit the text, images, and links inside of a content layout. They can also add, remove, and rearrange repeatable blocks within a layout, like this simple two-column example (above right).
QuickAccess and Groups Widgets
Two new widget types are available in LiveWhale 2.0.0: a QuickAccess widget that lets you display top links from your QuickAccess manager on your site’s search results page, and a Groups widget that displays a list of all of your groups.
Sync Profile Data via CSV
You’ve long been able to keep selected Profile fields in sync with an external LDAP or MySQL database. Now, we’ve added CSV to the mix: if you’re in a position where connecting to an external database is hard, but uploading a CSV exported from your HR software is easy, you can now set up a Profile Data Source to reference a CSV by filepath. Editors can still manage their own profiles but any fields that you associate with the CSV will be locked and kept in sync.
Blurb Images
Blurbs can now have images! You can still use profiles as you need for custom data types within LiveWhale CMS, but for simple items containing just a title, body, image, and perhaps some custom fields, Blurbs now have you covered.
API Improvements for Developers
JSON API v2
There’s a new API in town… We’ll continue supporting the original /live/json API for some time, but this revamp of our JSON API provides results that are more optimized, consistent, and robust. And they load a heck of a lot faster! Learn more about JSON API v2 and how to migrate your /live/json integrations.
New CSV Endpoint
You can now easily export any LiveWhale data type as CSV by using the new /live/csv API endpoint.
Show Hidden Content when Developing
By request, LiveWhale 2.0.0 introduces two methods for logged-in users to access Hidden content to front-end page URLs or API requests simply by adding ?include_hidden=1 to the URL.
How to Upgrade
If your dev server has “SELF_UPDATE” set to true in /livewhale/core/config.php, you will have LiveWhale 2.0.0 on your dev server beginning Sunday, June 26, 2022. Learn more about upgrading, or about enabling automatic upgrades. As always, feel free to reach out to support@livewhale.com with any questions about the upgrade process.
LiveWhale 2.9.0 3/10/2023
LiveWhale 2.9.0 includes a suite of styling and performance updates to improve our back-end compliance with WCAG 2.1 (previously we used WCAG 2.0 as our benchmark).
The most noticeable change is darker outlines around interactive form elements to help users with low vision, but other changes include:
- New styling for the Star icon (it gets a bold outline when checked) so it’s more perceivable by colorblind users or those with low vision.
- Marking required fields in back-end forms with an asterisk and including an instructive note “Fields marked * are required.” Also adding aria-required=”true” for screen readers.
- Adding screen-reader labels to icons in list view (tags, linked items, privacy padlocks).
- Event editor buttons for “Cancel Event” and “Add RSVP” now update based on user actions (“Uncancel Event” / “Remove RSVP”).
- Adding stronger, more consistent focus styling to all back-end form elements, with particular attention given to checkboxes, radio buttons, drop-downs, and WYSIWYG text areas.
- Updating WYSIWYG area iframe titles to match the inner editable area’s aria-label, so screen reader users can more easily know which field they are editing.
- Front-end: Adding an aria-live region around the month header of the mini-cal date browser so it’s more apparent to screen reader users when they are navigation between months.
LiveWhale 2.5.0 10/14/2022
- Corrected tab behavior when inside of a modal dialogue inside of LiveWhale—now, when an overlay opens, keyboard focus will be trapped inside the modal until you complete/close the modal or press Escape.
- Added in some missing aria-required and required field instructions to the RSVP and “Share via Email” forms.
- Added additional screen-reader instructions before the core calendar’s mini-cal, to clarify keyboard instructions for screen-reader users.
LiveWhale 2.9.0 3/10/2023
- Added support for Twitter meta tags in LiveWhale powered pages and content (og:title, og:description, and og:image will be included also as twitter:title, twitter:description, twitter:image). These were already supported via og: metatags, but now LW will override site-wide twitter meta tags that might be included in your theme with specific information about current page or content.
LiveWhale 2.8.2 2/24/2023
- When a previously-cached widget template is moved or deleted, LiveWhale now falls back to the cached version and logs an error for the missing template.
LiveWhale 2.8.1 2/10/2023
- When attempting to view hidden dynamic content, LiveWhale now redirects to the login screen rather than returning a 404 response.
LiveWhale 2.8.0 1/27/2023
- Fixed an issue where adding or saving a group wouldn’t always immediately clear the cached toolbar group switcher for all users.
- Fixed an issue where group=me was erroneously set as the default for new LiveWhale Calendar and Storyteller widgets.
LiveWhale 2.7.4 1/13/2023
- Restored tags to the JSON v1 API results for blogs, blurbs, files, galleries, images, pages, and profiles which had erroneously been removed.
LiveWhale 2.7.3 12/16/2022
- Fixed an issue where a zero-prefixed custom variable value had the zero dropped in /live/json endpoint responses.
- Added a details_canonical_url variable to all details templates, pointing to the canonical url for the item being viewed.
LiveWhale 2.7.2 12/2/2022
- Downloads from the /live/csv endpoint will now be named after the data type (events.csv, news.csv, profiles.csv) rather than the generic api_results.csv.
- Extend automatically-generated og:image metatags to also automatically provide the og:image:secure_url metatag for sites that support HTTPS.
LiveWhale 2.7.0 11/11/2022
- The JSON Events API endpoint now returns repeats_start and repeats_end for single multi-day events (even if they’re not a repeating series) so integrations can easily read the full date range from a single result.
- You can now filter by submitter name or email in the widget editor for content received via public submission.
LiveWhale 2.6.0 10/28/2022
- You can now configure additional CSS classes to be added to the fitvids.js ignore list, which wraps iframes and other videos in responsive code, in case your design or HTML already covers responsive videos. [docs]
- Adjusted API throttling for the JSON, CSV, iCal, and RSS endpoints to let in more concurrent requests and return a 429 Too Many Requests error when the quota is met and a slot doesn’t open up after 10 seconds of waiting.
- Added to the login error logs when an SSO connection is successful but the corresponding LiveWhale username is not found, to help with login debugging.
- LiveWhale CMS Only: When inserting an inline widget that uses a widget template, the name of the widget template is now shown as part of the widget placeholder.
LiveWhale 2.5.0 10/14/2022
- Added tags back to the /live/json/news endpoint under API v1. They had been erroneously removed in the LiveWhale 2.0.0 release. (Note, we still recommend migrating to JSON API v2 as soon as possible!)
- Clarified permissions so users who can Edit dynamic content can now manage (rename, hide, show, delete) files and images, even if they do not have the Upload Files permission. This fixes an issue in LiveWhale CMS where profile-only editors or those unable to upload files were also unable to upload photos in 2.0.0+.
LiveWhale 2.4.1 9/30/2022
- The group switcher now remembers recently used groups across multiple login sessions.
- In your front-end calendar, the “Calendars” component will now link to all group calendars with a calendar URL, even if that calendar’s events are excluded from the current view.
- Added is_canceled=1 flag to the JSON endpoint response for canceled events.
- Refactored the deprecated cors-calendar.js to pull a matching script from your global theme, if exists, to assist with backwards-compatibility or redirects if you have sites currently loading the core cors-calendar.js.
LiveWhale 2.4.0 9/9/2022
- Pagination is now automatically disabled when using the id arg on a widget to return a single result.
- There are now more types of URL misspellings (dashes vs underscores, for example) that LiveWhale CMS can automatically fix via redirection.
- When using a custom field with show_filter enabled, the sidebar filter now has an “Any value” option.
- When using a custom dropdown field that is required and has a default value, that dropdown will no longer give the user an empty option.
- LiveWhale Storyteller Only
- Added an “Edit this item” link to the frontend toolbar when viewing a story.
LiveWhale 2.2.0 7/29/2022
- Fixed an issue where some front-end CSS styling for links and pseudo-elements could interfere with the LiveWhale group switcher.
- During the upgrade process, LiveWhale will now attempt to redirect you to the necessary primary web node.
- LiveWhale CMS only
- LiveWhale will now warn you if you try to edit a page with an invalid ID in its source code (for example, an ID with spaces in it) rather than failing silently.
- Increased the allowable Facebook name length to 255 characters to prevent truncating very long entries in the group editor.
LiveWhale 2.1.0 7/15/2022
- Updated robots.txt and robots meta tags for sites on development mode, so Google will not index them at all (instead of indexing with “No information available”). This should prevent Google results showing LiveWhale development sites in the future.
- LiveWhale CMS only
- On the front-end toolbar, the “Current Page Group:” section of the group switcher is now a link, in case you want to switch into that group.
- When editing navigations, the “Link to a page” selector now shows more results and better supports partial keywords.
LiveWhale 2.0.1 7/1/2022
- Calendar views now show all dates in the future when searching or filtering events, as opposed to the default all_events_month_range setting.
LiveWhale 2.7.0 11/11/2022
- Improved the QuickAccess widget matches when searching by multiple keywords.
- Fixed an issue where QuickAccess widget search results were erroneously treated with case-sensitivity.
LiveWhale 2.5.0 10/14/2022
- Fixed an issue where some quoted search phrases would fail to match results.
- Fixed an issue when searching by email address which could return extraneous results.
LiveWhale 2.4.1 9/30/2022
- Fixed an issue with inaccurate search results when searching by a full name containing a hyphen.
- Fixed an issue where low-relevancy results could sometimes be dropped from single-word searches.
- Removed the word “welcome” from a list of excluded search terms so searches like “Welcome to…” can be used when looking up images or other content.
- Fixed bug that added a spinner over the related content search results, making it impossible to select an item.
- Livewhale CMS Only
- Fixed an issue where html entities like ampersand were appearing in QuickAccess drop down results.
- Fixed an issue where pages being excluded from the front-end (URLs including .test. or /_) were not appearing in the back-end “Add to Navigation” tool.
LiveWhale 2.9.0 3/10/2023
- This release adds a new config option WYSIWYG_IMAGE_SHOW_CAPTION_DEFAULT – when set to true, any time your editors insert an image in an editable area, the checkbox for displaying the caption will default to true (see example code in livewhale/client/sample.global.config.php).
LiveWhale 2.4.1 9/30/2022
- WYSIWYG limited fields in dynamic content (e.g., Summary) are now automatically formatted with paragraph tag wrappers consistently, unless alternate formatting is entered.
- When pasting iframe code into the Insert > Media embed tool, LiveWhale now pre-populates the accessible title with the value of the iframe’s title attribute, if it has one.
- Livewhale CMS Only: Fixed an issue where, when page editing, uploading an image wouldn’t immediately select it in the Insert Image dialogue depending on what group you were in.
LiveWhale 2.9.0 3/10/2023
- Fixed pagination in panel used to display content items such as images, widgets, and files when inserting those types into a page or editor.
- Fixed an issue where certain non-publishers would not see their content listed in the backend manager.
- Fixed an issue where adding or saving a group wouldn’t always immediately clear the cached toolbar group switcher for all users.
- Fixed an issue that prevented the header HTML tag from being used in a format arg from the widget editor.
- Fixed an issue where CSS classes applied to an inline widget format could be inadvertently removed when editing via the WYSIWYG editor.
- Fixed an issue which could cause format args to erroneously be removed from image widgets when credits or captions contained single quoted content.
- Fixed an issue where hiding repeating instances from an events widget, along with returning additional optional fields, could cause results to be inconsistent over repeat requests for the same data.
- Fixed an obscure bug which could cause certain shorthand XPHP vars to not be parsed correctly.
- Fixed a WYSIWYG bug that trucated some field data when mousing over the field on page load.
- Fixed an issue where certain accented characters could be ignored in frontend calendar group configurations.
- Fixed a duplicate ID on the Edit User page that could affect custom scripting or styling.
- Renamed “Weather ID” to “Weather Code” on the Edit Group page since some browsers were seeing “ID” in the label and auto-filling usernames in that field.
- Fixed an issue where group=me was erroneously set as the default for new LiveWhale Calendar and Storyteller widgets.
- LiveWhale CMS Only
- Fixed an issue that prevented Insert > Content layout from working when moving between editable areas of a page.
LiveWhale 2.8.2 2/24/2023
- Fixed an issue where slideshow galleries could sometimes improperly wrap content when rendering.
- Fixed an issue where occasionally the widget variable in format_widget would be moved on save depending on the HTML around it.
- Fixed an issue where widgets wouldn’t support results going inside an HTML select dropdown, and restored the ability to override format_widget on the public submission form location and tags selectors.
- Fixed an issue with the file widget that could cause certain kinds of GET vars to be truncated when including via URL.
- Improved the exclude_duplicates widget setting to behave more accurately when individual widgets are expired, added, or removed from a group of exclude_duplicates widgets on a page.
- Fixed an issue which could sometimes cause events to not display when navigating into the past in the frontend calendar.
- Fixed an issue where accordions inserted into an event wouldn’t always function properly for logged-out users.
- Fixed an issue that could cause webp images to be generated that were too large in file size.
- Fixed a bug that caused a JS error when a public submission form contained a form element with no action attribute.
- LiveWhale CMS/Storyteller (Issues Feature)
- Apostrophes and colons are now allowed in Issue names.
- Adjusted the issues manager to offer separate links to the live issue and the preview that includes hidden content.
- Fixed an issue where an Issues details page could not utilize XPHP vars for custom fields.
- Added support for the details_share variable (save and share links) on Issue details pages.
- LiveWhale CMS Only
- Fixed an issue where customized form submission notification emails could not use individual variables for submitted data.
LiveWhale 2.8.1 2/10/2023
- Fixed an issue where widgets wouldn’t support results going inside an HTML select dropdown, and restored the ability to override format_widget on the public submission form location and tags selectors.
- Fixed a bug that prevented image captions from transfering to the gallery when selecting an image.
- Fixed an issue where ñ characters were erroneously encoded, causing group/tag/etc. logic to fail to match.
- Fixed an issue where certain content layouts could end up with self-closing a tags which would then break certain XHTML parsing.
- Fix a bug that caused a JS error when a public submission form contained a form element with no action attribute.
LiveWhale 2.8.0 1/27/2023
- Fixed an issue where hiding repeating instances from an events widget, along with returning additional optional fields, could cause results to be inconsistent over repeat requests for the same data.
- Fixed an issue where certain accented characters could be ignored in frontend calendar group configurations.
- Fixed a WYSIWYG bug that truncated some field data when mousing over the field on page load.
- Fixed an issue which could cause format args to erroneously be removed from image widgets when credits or captions contained single quoted content.
- Fixed an obscure bug which could cause certain shorthand XPHP vars to not be parsed correctly.
- Fixed an issue that prevented the header HTML tag from being used in a format arg from the widget editor.
- Fixed an issue where certain non-publishers would not see their content listed in the backend manager.
- Fixed a duplicate ID on the Edit User page that could affect custom scripting or styling.
- Fixed pagination in panel used to display content items such as images, widgets, and files when inserting those types into a page or editor.
- LiveWhale CMS Only
- Fixed an issue that prevented Insert > Content layout from working when moving between editable areas of a page.
- Fixed an issue where CSS classes applied to an inline widget format could be inadvertently removed when editing via the WYSIWYG editor.
LiveWhale 2.7.4 1/13/2023
- Fixed an issue introduced by changes to the Google Maps API which could prevent users from successfully plotting an event on a map.
- Fixed an issue that could cause the bulk/quick upload tools from failing to save images.
- Fixed an issue (introduced in LiveWhale 2.2.0) that removed the hostname from iCal Subscribe links on the calendar.
- Fixed an issue where widgets that make heavy use of spaces for indentation could trigger an URL length warning in the widget editor preview panel.
- Fixed an issue where the event type manager did not display an error when attempting to add a duplicate event type.
- Fixed an issue where a “widget” variable inside a <tbody> tag could be reformatted incorrectly when saving a widget.
- Fixed an issue where placeholder CSS classes from a content layout might be left behind even after the placeholder is filled in.
- Added an exception to the code that wraps WYSIWYG fields in paragraph tags for image captions and image credits, since those typically get custom wrapping and formatting in front-end displays.
- Fixed the formatting of event cost in an event details view such that it is wrapped in a paragraph tag only when “other” is selected as a cost type.
- Fixed an issue where widget might not appear correctly when placed inside another widget’s formatting using simple conditional logic (curly brackets).
- Fixed an issue that prevented sorting the back-end news manager by a custom date range.
- Fixed an issue that caused European-style date strings to be incorrectly formatted when returned by the public JSON endpoint.
- Fix bug that prevented format starred field from showing in the Widget Editor when a value was present.
- Fixed an issue where an inside a comment block for a compiled stylesheet could cause incorrect formatting in the resulting stylesheet output.
- LiveWhale CMS Only
- Fixed an issue that prevented Places widgets from properly rendering a map in certain cases.
- Fixed an issue where exported profile CSVs would have an incorrectly formatted header row.
- Fixed an issue which could cause indentation to change from tabs to spaces upon first time creation of a page from a template.
LiveWhale 2.7.3 12/16/2022
- Made the expiration of page cache after editing dynamic content more reliable, especially when taking a previously-hidden item live. This can help prevent a case where publishing a hidden item could show a cached 404 error.
- Fixed an issue where external images associated with a Linked Calendar feed might not display in the frontend calendar list view.
- Fixed an issue where a Linked Calendar might not use the iCal image (provided using ATTACH) for all events in a repeating series.
- Fixed an issue where a required custom field for events could prevent calendar events from refreshing properly.
- Fixed an issue that caused Content Layouts to be hidden from the Insert menu in LiveWhale Calendar, even when layouts had been defined in your _ingredients.
- Restored ability to customize the dimensions of the image slideshow when viewing a details template (using image_width, image_height, thumb_width, and thumb_height on the details widget).
- LiveWhale CMS Only: Fixed an issue that could cause profile data source syncing to execute with a delay.
LiveWhale 2.7.2 12/2/2022
Fixed an issue with the default gallery where the icon indicating multiple images wouldn’t appear in the right position when in wide content areas.
Fixed an issue where the last instance of a multi-day event that should be flagged as all day was not.
Fixed an issue that prevented the Quick Upload tool on the Files library from accepting uploads.
Fixed an issue where a newly uploaded image being attached to another piece of content would fail to validate if only alt text was supplied and not a caption.
Widget Formatting
Fixed an issue where certain content wrapped in curly brackets were parsed as format variables in widgets when they were not.
Fixed a bug causing incorrect conditional logic when using curly-braced format variables on a value containing a vertical bar.
Fixed an issue where shorthand field vars in format args did not work properly without the fully verbose tag being present.
Fixed a version-specific crasher with the imagick PHP module related to webp image handling.
Fixed an issue where global content could fail to appear in the trash.
Fixed a situation in which previously-added modern image formats (picture, source) were erroneously stripped from output.
Fixed an issue with the not_equals filter condition that could cause it to ignore null values.
Fixed an issue where ampersands could sometimes be incorrectly encoded within javascript blocks.
Fixed an issue where ICAL event titles could have encoded ampersands when viewed in Outlook.
Fixed a rare crashing bug with a particular widget arg scenario.
LiveWhale CMS Only: Fixed pagination on the backend Page Notes manager.
LiveWhale 2.7.1 11/15/2022
- Addressed two calendar display issues erroneously introduced by code optimizations made in LiveWhale 2.7.0.
- Fixed a critical bug that could cause event details to not load in the front-end calendar for logged-out users.
- Restored code responsible for managing the calendar’s base URL, which is used in several places throughout the front-end display.
- Fixed an issue where LiveWhale Calendar components in /_ingredients/themes/_group/ weren’t properly overriding the core/global components on a group calendar.
LiveWhale 2.7.0 11/11/2022
- Fixed an issue where the “Replace this with a new file from your computer” button could be erroneously hidden from “Edit a file.”
- Fixed an issue where nested content nodes inside a widget template could sometimes fail to work properly.
- Fixed an issue where the equals widget filter did not work properly on custom fields of type checkbox or radio.
- Fixed an issue where some XPHP vars could be stripped when using the Edit Source feature of the WYSIWYG editor.
- Fixed an issue where events in the frontend calendar could erroneously show in 24-hour time format when not desired.
- LiveWhale CMS Only
- Fixed an issue that could prevent accessibility reports from being generated under 2.x installs.
- Fixed an issue where a nav item could be marked as a parent even if all its subpages were hidden.
- Fixed an issue where placeholder text in content layouts could mistakenly be included in the site search or search previews.
LiveWhale 2.6.0 10/28/2022
- Fixed a WYSIWYG add/edit link bug that caused the link to be inserted in the wrong place.
- Fixed an issue where captions could sometimes still display in certain contexts where an image was marked as decorative only.
- Fixed an issue where compiled stylesheets did not guarantee that @charset and declarations were positioned at the very top of the response.
- LiveWhale CMS Only
- Fixed an issue where a long or complex # string in a URL could break accordions on a page.
- Fixed an issue where a profile with a checkbox field on it would be formatted properly in widgets and in the profile details body/sidebar, but not if you placed the details_229 variable elsewhere on your profile details template.
- Fixed an issue that could cause inconsistencies between web nodes for page error reporting under load balanced environments.
- Fixed a rare condition on some server setups where a file widget would fail to fetch a constant include.
- LiveWhale Storyteller Only
- Updated the widget “Get Code” link to provide the external widget code for Storyteller widgets.
- Added a performance improvement for displaying front-end news category checkboxes.
LiveWhale 2.5.0 10/14/2022
- Fixed an issue that could prevent events with an explicit 12:00am start time from displaying the start time in certain contexts.
- Fixed an issue where news or events category checkboxes could be cached indefinitely on the backend for some users, even after editing the category options.
- Fixed an issue that could prevent the image preview from appearing when uploading a new image.
- Fixed an issue which could cause some WebP images to fail to load.
- Fixed a Safari only bug in the uploader that caused the first image to replace subsequent images when uploading multiple images via the WYSIWYG image dialog.
- Fixed an issue where LiveWhale would only recognize the first of multiple args wrapped in conditional logic within a widget template.
- Fixed an issue that under some systems could cause login to fail after a content sync.
- Fixed an issue where some content with restricted privacy did not correctly redirect back to the item requested through a login.
- Fixed a visual error on the event editor that could cause the RSVP start and end times to be cut off within the timepicker.
- Fixed an issue where editing relative links wouldn’t always bring up the correct external URL options.
- LiveWhale CMS Only
- Fixed the styling of the “Log out” button for when profile-only users are editing their profiles.
- Restored backwards compatibility for pre-2.0.0 gallery templates to use thumbnail formatting from the site-wide default inline_gallery template.
LiveWhale 2.4.1 9/30/2022
- Fixed an issue where the last tag attached to an item could not be removed.
- Fixed an issue where XPHP inside HTML comments could sometimes generate malformed output.
- Fixed an edge case issue where multiple conditional widget args inside a shorthand XPHP conditional block would be ignored.
- Fixed an issue that could cause the wrong group directory value on some group calendars.
- Fixed an issue where embedded videos were sometimes not getting the correct responsive aspect ratio in cases where the width or height contained a decimal.
- Fixed an issue where custom fields marked as required could sometimes not trigger a requirement warning if left blank.
- Fixed an issue that caused some of a user’s content type authorizations to be lost when un-checking the administrator permission.
- Fixed an issue where very long og:image meta tags could have their value cut off and fail to present a valid image url.
- Fixed an issue where inline widget placeholders (introduced in LiveWhale 2.4.0) only showed generic type names when a saved widget was also in use on the page.
- Fixed an issue where moving between the mobile and desktop toolbar navigations could cause the toolbar links to be hidden.
- Fixed an issue where uploading an image and adding a caption from the Insert Image modal wouldn’t include the newly-added caption in the Insert Image options.
- Fixed an issue where certain SVGs could be missing from file includes.
- Fixed an issue where the image bulk upload option still appeared for users lacking image upload permissions.
LiveWhale 2.4.0 9/9/2022
- Fixed an issue where trailing events in a repeating series might not get created if the repeat range crosses daylight savings time.
- Fixed an issue where custom checkbox fields wouldn’t be pre-checked when a “default” value was specified in the configuration.
- Fixed an issue where hard-coded links to stylesheets were losing their media (print, screen) attributes.
- Fixed an issue where an erroneously self-closing XPHP conditional could break output.
- Fixed an issue where attaching a library image to a piece of content did not pre-populate the default caption.
- Fixed an issue affecting the crop preview after uploading an image.
- Fixed an issue where images being imported to the library via URL were failing when there was a mismatch between the extension and actual file format.
- LiveWhale CMS Only
- Fixed an issue where the event title wasn’t populating in the URL when redirecting from /live/events/ID to the front-end calendar /events/ view.
- Fixed an issue where LiveWhale Forms containing a timepicker weren’t being styled properly.
- Fixed an issue where links incorporating shorthand XPHP vars () could cause false positives on the Page Errors 404 report.
- When using magazine issues, the issues template can now appear in search results, widgets, and added to navigations.
- Fixed an issue where malformed SVGs in file widget includes could sometimes cause the include to be ignored.
- Fixed an issue where the add new directory button in the file browser failed to submit.
- Fixed an issue where, when searching for a page to add to a navigation, the search results could sometimes overspill the visible area.
LiveWhale 2.3.0 8/19/2022
- Fixed an issue where the page title would sometimes not display correct for the frontend calendar.
- Fixed an issue preventing clean_markup from supporting the include_javascript and include_stylesheet args.
- Fixed an edge case where a parent_ format variable inside of a conditional widget setting was being evaluated too early.
- Removed toolbar keyboard shortcuts – we’ve received some reports that adding keyboard shortcuts to the LiveWhale toolbar was interfering with native keyboard shortcuts, so we’ve removed them. If you’re interested in adding custom shortcuts to your installation feel free to adapt this code into backend.js or your front-end theme.
LiveWhale 2.2.0 7/29/2022
- Fixed an issue with the new group switcher that could cause certain users to have a blank list of groups.
- Fixed an issue where users with multiple LiveWhale accounts sharing a single email address could be notified multiple times when sending a bulletin.
- Fixed an issue where deselecting allow access to other groups in the user editor did not remove groups selected for switch access.
- Fixed an issue where certain link copies of events in another group’s linked calendar could fail to display in the frontend calendar.
- LiveWhale CMS only
- Fixed an issue that could cause 404 pages to be unstyled if they contained only shorthand XPHP includes and no other widgets.
- Fixed two issues with gallery templates: allowing .xml gallery templates to override the default, and repairing support for image_crop=false (allows for width and height to be used as maximums, rather than always cropping gallery images to those exact dimensions).
- Fixed an issue where magazine issues were not available at their default LiveURL location.
LiveWhale 2.1.0 7/15/2022
- Fixed an issue where a non-admin user with access to all groups wasn’t seeing the group switcher in the toolbar.
- Fixed an issue that prevented you from deleting a linked calendar in another group when filtering “By group” in the linked calendar manager.
- Fixed an issue where editing the default contact info for your group wouldn’t take effect until your next group switch or login.
- Fixed a bug that prevented a direct API search for images by collection.
- Fixed an issue that prevented “Upgrade available/scheduled” from appearing for admins on the Dashboard.
- Fixed an issue where group default contact info displayed incorrectly on the group editor.
- Fixed an issue that could in some cases improperly encode smart quotes within alt text attributes.
- Restored pagination to the file list when linking to one of your files.
- LiveWhale CMS only
- Fixed an edge case issue where HTML code tag blocks could have a leading entity broken through a page edit.
- Fixed an issue with validation of some images when importing profiles in bulk.
- Fixed an issue preventing LiveWhale Calendar/LiveWhale Storyteller remote widgets from being added to LiveWhale CMS sites.
- Fixed a display issue that indicated an undefined owner group for shared files when inserting them into a page.
- Fixed an issue with Instagram images when using the WEBP image format.
LiveWhale 2.0.1 7/1/2022
- Fixed an issue where <em> tags could sometimes be saved as a self-closed HTML tag, causing parsing problems.
- Fixed an issue where event RSS feeds did not indicate a georss:featurename when an event had a custom location that was not also plotted to a map.
- Fixed the format of locations in the JSON-LD structured data for online events utilized by rich search results.
- Fixed an issue where frontend calendar components would not validate on servers running PHP7+.
- Fixed an issue preventing a group theme from loading properly when utilizing the new _ingredients/themes/_group subdirectory.
- Fixed an issue that could cause some API updates via url to fail with a save error.
- Fixed an issue that could arise when a file include starts with a <body> tag.
- Fixed a group authorization issue that could lead to missing event types or news categories on the editor screen.
LiveWhale 2.8.2 2/24/2023
- Added a list of available XPHP variables in the current request to the LiveWhale debug view.
LiveWhale 2.8.1 2/10/2023
- The news, blurb, and gallery modules now support an optional response field “date_extended” in the JSON v2 endpoint, which adds various formatted timestamps (date_ts, date_utc, and date_iso) to the response, in addition to the human-readable date field.
LiveWhale 2.8.0 1/27/2023
- Added support for removing a variable from all nodes at once [docs].
LiveWhale 2.4.0 9/9/2022
- Choosing the developer option “disable minimization and client-side browser caching of all scripts and stylesheets” for your user will now also opt out of script and stylesheet concatenation, so they’ll appear in your source code as separate files.
- Add a new initOverlay event to the imageEditor overlay jQuery plugin, for the case where a custom module might want to interact with the “Insert Image” overlay.
- Added a new function $_LW->displayCustomFieldFormInput($id) which offers a shorthand method for deploying the HTML markup of a custom field’s input automatically, using the configured custom field attributes.
LiveWhale 2.9.0 3/10/2023
- Improved performance with a weekly cleanup of the widget cache.
- Updated internal API requests to use JSON API v2.
LiveWhale 2.8.2 2/24/2023
- Upgraded npm json5 and http-cache-semantics submodules to resolve security vulnerabilities.
LiveWhale 2.8.1 2/10/2023
- Updated LiveWhale CMS’s page accessibility checker to remove the local achecker fallback as it was occasionally causing issues. All LiveWhale CMS accessibility scans will now call out to our in-house API server (available since LiveWhale 2.4.0).
LiveWhale 2.8.0 1/27/2023
- Improved performance with a weekly cleanup of the database widget cache.
- Updated internal API requests so they use JSON API v2.
- Updated the JSON5 NPM submodule to fix a vulnerability identified by NPM audit.
- Renamed “Weather ID” to “Weather Code” on the Edit Group page since some browsers were seeing “ID” in the label and auto-filling usernames in that field.
LiveWhale 2.7.4 1/13/2023
- Updated the JSON5 NPM submodule to fix a vulnerability identified by NPM audit.
LiveWhale 2.7.3 12/16/2022
- Fixed a particular scenario which could cause a custom global application from not executing on the frontend.
LiveWhale 2.7.2 12/2/2022
- Updated database configurations to fix INT column compatibility for MySQL 8.0.
LiveWhale 2.7.0 11/11/2022
- LiveWhale now logs syntax errors alongside widget templates during development for logged-in users.
- Removed a deprecated “SEO” view from the calendar, since it has now been replaced with the Google Sitemap.
LiveWhale 2.6.0 10/28/2022
- Improved the quality of search results when searching for a quoted exact phrase.
- Refactored the LiveWhale upgrade process to allow for certain database upgrades to be run asynchronously, speeding up the upgrade experience for admins.
- Fixed a ReDoS vulnerability in the minimatch NPM package.
LiveWhale 2.5.0 10/14/2022
- Improved performance of image searches in certain contexts.
- Fixed table partitioning support under MySQL 5.7.17+.
LiveWhale 2.4.1 9/30/2022
- Updated SAML metadata to always include the SP certificate twice (for signing and encryption) and to add a far-future expiration date.
- Extended protections against an infinite loop caused by file widgets that 404 which are themselves part of the 404 template.
- Resolved a security notice from npm by upgrading node-sass from 7.0.1 to 7.0.3.
- Added a new setting DISABLE_PUBLIC_SUBMISSION_EMAILS that disables all notifications for the public submission form. This is most useful if you are implementing your own notification code using the onPublicSubmission handler.
LiveWhale 2.4.0 9/9/2022
- Removed code for now-deprecated CORS calendar mode.
- LiveWhale CMS now attempts to use an in-house API server for accessibility checking before falling back on the local achecker installation.
- Silenced unnecessary SAML warning message from logs.
- XPHP blocks found within HTML comments are now automatically disabled.
- Fixed an issue where resetting an installation’s unique identifier on only one web node could cause a mismatch on others.
- Improved handling of quotes in pre-serialized data being saved to the database.
- Upgraded to PHPMailer 6.6.4 for SMTP integration.
- Improved PHP 8.1 compatibility.
LiveWhale 2.3.0 8/19/2022
- Improved search result weighting by considering site depth of individual page results (such as office and department homepages). Now, pages closer to the root of the website are more likely to appear higher in search results, compared to pages in deeper sub-directories.
- Improved performance of bulk operations when submitting checked items from a manager.
- Replaced internal PHP functions (utf8_encode/utf8_decode) before they are deprecated in PHP8/9.
LiveWhale 2.2.0 7/29/2022
- Performance improvements when searching for places to map to an event from the event editor.
- Removed deprecated code for the CORS embedded calendar.
- Added the ability for LiveWhale to internally disable the content length header when creating and exporting certain custom iCal feeds.
- Increased the minimum required PHP version from 5.5 to 5.6 (note, no current LiveWhale 2.0+ sites are using PHP 5+, most are on 7+, which is why we considered this a minor and not a major change).
LiveWhale 2.1.0 7/15/2022
- The HOSTNAME_WHITELIST setting is now called HOSTNAME_ALLOWLIST and supports backwards compatibility. [docs]
- The “Delete linked calendar” UI now matches other back-end interfaces.
- Extended tools that LiveWhale support uses when diagnosing traffic or DDOS issues.
LiveWhale 2.0.1 7/1/2022
- Extended security rules for blocking malicious URL requests.
- Updated detection code used for web and search engine crawlers.
- Fixed an issue that caused several errors to be logged about output buffering.
- Fixed an issue which could cause LiveWhale to erroneously detect SSL support at a web node behind a load balancer.
- Fixed an issue where the version number displayed was not immediately reflective of an upgrade on your first login.