LiveWhale 1.6.1 brings a host of behind-the-scenes improvements for our editors, developers, and administrators, as well as a few delicious new features to the LiveWhale core.
Highlights include:
Simplified file structure for themes and templates
Honest-to-goodness blogs, with contributors, moderation, and more
New visibility settings: page visibility, and “visible by direct link only”
Per-group availability of global items like event types
Enhanced public submissions
Expanded archive, trash, and recovery support
Native support for CAS logins
Native Google Tag Manager support
Pages & Templating
Ingredients: Combine all your theme files and other custom scripts, styles, fonts, etc. into the new ingredients folder for easy access and, quite possibly, a better outlook on life. LiveWhale will continue to honor the old folder structure (/livewhale/theme/) as a fallback, but we recommend migrating your themes into /_ingredients/. Learn more about the ingredients folder.
Sections allow you to display only part of your group navigation on certain pages, essentially creating “sub-sites” within a large set of pages. Learn more about sections.
Visibility Settings
It is now possible to set a web page as live or hidden. Hidden pages are hidden in navigations and can only be accessed on the frontend web site by logged-in LiveWhale users. Non LiveWhale users will receive a 404 until the page is taken live. Customer Request
It is now possible to set visibility for a web page. As with dynamic content, pages with special visibility settings will trigger a redirect to the LiveWhale login when viewed. These pages do not automatically get excluded from navigations. Customer Request
The navigation manager now permits you to show/hide pages, and remove pages from the file system, if your user has the permission to do these.
Templated details templates: All details templates can now use variables in the format “details_image” (backwards compatible with the previous “news_image”, “profiles_image”, etc.) These content type-agnostic versions allow for the creation of details templates that are generated from a standard page template.
The popular pages feature on the dashboard now reflects pages in your group only for non-admins, and is segmented by week, month, and year. Customer Request
Page source editing is now enabled only on page templates and pages that do not use a template.
The pages widget now supports the group and exclude_group args.
An additional page variable (page_url_breadcrumb) was added as an alternative to group_breadcrumb. Whereas group_breadcrumb builds breadcrumbs from the group’s main navigation, page_url_breadcrumb builds breadcrumbs from the file system directory structure leading up to the current page.
The ability to set a page as a template is now available to admins only. Customer Request
Blogs
New content type! Yes, you could always use stories, templates, and tags to roll your own blog solution… but now LW natively supports full-featured blogs. It’s easier than ever! Customer Request
Custom fields: Blog posts include a body and title by default, but just like with profiles, you can add an unlimited number of custom fields and display them in your details template.
Moderation: You can assign moderators— from any group— who must review each blog post before it goes live.
Contributors: Choose on a per-blog basis to allow posting by a single editor, a group, a hand-picked list of editors (from any groups), or admins-only.
Users & Groups
It is now possible to restrict access to global profile types, blurb types, shared widgets, and event types on a group-by-group basis, from the group editor. Customer Request
It is now possible to make a user a limited group editor, with user/group editing access to their groups only. Customer Request
When configuring a user for group switching, it is now possible to automatically assign access to all groups, as an alternative to specifying a fixed set. Customer Request
Users now receive notifications for both their primary and switch groups, rather than just the primary group. Customer Request
Usage of multiple groups across tabs no longer presents a warning with an option to switch back. Instead, it now automatically switches you back and displays a visual indication to that effect.
Streamlined the group access UI component on the group editor by moving it to the “Credential and access” section where it is always visible.
New /live/users/csv developer endpoint lets you fetch user CSV data via the API (post authentication). Customer Request
New /live/json/groups developer endpoint lets you fetch group records in JSON format. Customer Request
Enforcement of higher quality passwords when using password mode for LiveWhale logins.
Public Submissions
It is now possible to configure email notifications for public submissions using the public config setting PUBLIC_NOTIFICATIONS_EMAIL. (Functionality absorbed from the public notifier custom application.) Customer Request
It is now possible to configure public submission forms to allow users to choose which group to submit to. This is enabled with enable_group_selector = true on the public submissions widget. If you wish to restrict submissions to a fixed set of groups, then the public config setting PUBLIC_GROUPS can be set to an array of group IDs. When submissions are made to specific groups, the email notification behavior changes so that members of that group are notified. Customer Request
It is now possible to apply event types to events submitted via the public submission process. Customer Request
Added onFormatPublicSubmission for greater control over the precise item created by the submission process.
Search
LiveWhale now automatically generates a sitemap XML file in your web root at /sitemap.livewhale.xml and adds the path to your robots.txt. This can optionally be submitted to Google for web site crawls. Customer Request
The QuickAccess manager now allows import/export via CSV. Customer Request
Added data-qa-more-results-url and data-qa-more-results-msg to QuickAccess, which will direct the user to the full search results page.
Trash
Deleted pages, navigations, users, groups, tags, and linked calendars are now saved in the trash where they can be restored like news, profiles, and other dynamic content.
Events
Numerous small improvements to the frontend calendar, especially support for CORS implementations.
Linked Calendars
Improved ability to override some fields for linked calendar events. Customer Request
Linked calendars now plot imported events to the map if their location title matches a location that exists in the destination group, or a global location. Customer Request
The linked calendar editor now supports many more fields that can be applied to new events created via that feed. Customer Request
Registration/RSVPs
Improved entry for event cost. Customer Request
You can now optionally set an explicit start and/or end date/time declaring when RSVPs are accepted for an event. Customer Request
When exporting event registrations to CSV, any additional form or custom fields will be divided into their own individual columns. Customer Request
It is now possible to export CSVs for multiple events from the RSVP screen. Customer Request
It is no longer possible to enable RSVP payments unless online payments are possible for this group. For events that should list non-online payment instructions, users should use the cost field.
Added the ability to display the start date of a repeater range in the events widget, and improved the value of the repeats_until variable when not setting an explicit repeater range end date. Customer Request
Updated calendar print styles. Customer Request
Profiles
Profiles now support scheduled golive and expiration, as well as archiving. Customer Request
Profile types now support phone number and URL fields, which validate according to their type. Customer Request
Profile types that assign custom fields to the sidebar (on the frontend) will now present that field in the sidebar in the backend profile editor as well.
Images
To improve accessibility globally, captions are now required when attaching an image to any type of content (story, event, gallery), or inserting into a WYSIWYG editor.
The image manager now makes clearer which collection you are viewing, and the add new image links now default to adding an image to the collection currently being viewed.
The image collections manager now includes an entry for “Shared Images”.
The news, event, gallery, and profile widgets now support “image_id” as a format variable, as well as a details template variable, for building custom image urls. Customer Request
Added lightbox slideshow functionality to the image preview dialog. Customer Request
Increased the maximum dimension of hi res images that LiveWhale stores to 3200px (from 2048px).
News, events, and profiles widgets can now display an image credit as they can with other image fields. Customer Request
Logins
The CAS login mode is now supported. Customer Request
Galleries
Re-added image upload button to gallery editor, which was a 1.5 feature that was erroneously removed from 1.6. Customer Request
Complete re-write of default Javascript for gallery details page for improved functionality.
Blurbs
Blurbs now support usage of a details template. This can be enabled via a checkbox on the blurb type editor. Customer Request
Title-only blurbs are now supported—the body field is no longer required. Customer Request
Content Analyzer
LiveWhale’s content analysis now detects and warns on invalid content, such as Microsoft Word-specific content.
Developers can now add custom rules to the content analyzer for page content, enabling them to generate errors for their own conditions.
Feeds
The time_format arg for the feeds widget can now be “false” to hide the time component. Customer Request
Added onGetFeedDataFilter() handler, allowing developers to post-process feed contents.
Analytics
Support for cross-domain tracking in Google Analytics. Customer Request
LiveWhale now supports Google Tag Manager natively. It is recommended that you add your ID to the LiveWhale config, replacing your Google Analytics tracker, and configure Google Tag Manager to do the analytics tracking instead. Customer Request
Other Improvements
Initial support for PHP 7.0 / 7.1. Customer Request
The archive feature has been expanded to the following additional content types: events, files, forms, galleries, images, and profiles. Customer Request
New visibility option for content visible only by direct link. Customer Request
Commas are now allowed in event type and tag titles. Customer Request
It is now possible to restrict accepted file types in all upload contexts via the config setting ACCEPTED_FILE_TYPES. Customer Request
Native LiveWhale comments have been deprecated. Disqus is now the recommended option for adding comments to stories, events, and galleries. (Learn how to enable Disqus for LiveWhale.)
Streamlined wysiwyg media insert dialog to de-emphasize need to explicitly set dimensions. Also, removed media wrapper used for reponsive styles; using fitvids.js instead. Customer Request
Improved the UI clarity in regards to when bulletins are sent via email. Customer Request
When linking text in a WYSIWYG field, LiveWhale now automatically offers suggestions for what to link to.
Added support for the header_block arg, which allows you to optionally use a different header than h3 for widget headers.
The custom field API can now add input types other than textarea to an editor.
Blurb and profile module tabs now provide direct links to available types.
Improved support for special widget behaviors (such as pagination, randomization, and slideshows) when using clean_markup. Customer Request
Filtering content by group on managers is now no longer limited to admins, but also possible for group switching users. Customer Request
New behavior introduced governing the default state of the share icon (globe) on editor screens. Stories and events are now the only types shared by default. The default for each type can be controlled individually using the new share_by_default settings (see sample.private.config.php for examples). Customer Request
New handler “onAfterWidgetDetails” intercepts requests for details pages, but after the request is processed. For example, you may use this to modify or add additional global template variables.
Development mode for new site buildouts.
LiveWhale redirects now preserve your query string.
Significant reduction in disk space used by the page cache.
Nightly database backups can now optionally be configured to exclude the contents of LiveWhale’s trash, and instead store weekly trash backups independently. This can be utilized to reduce the size of your nightly backups if you tend to have users storing a lot of deleted images. To enable, see ENABLE_WEEKLY_TRASH_BACKUPS in your sample global config.
New handler “onMessages” intercepts backend status messages and allows them to be customized.
Bug Fixes
Fixed several issues relating to editor revision restoration, related to form structure, tags, locations, related content, and images.
Improved email notifications compatibility with mail systems that prefer LF-only headers instead of CRLF, via a configurable setting.
Improvements to the XPHP engine to avoid crashes in extreme cases where huge amounts of content are controlled by XPHP logic.
Upgrade Steps
There are no new upgrade steps for 1.6.1. If you are upgrading from 1.5.x, please see the following 1.6 upgrade steps:
Upgrade to Recapcha 2.0.
If not available on your system, install uglifyjs and cleancss (via node) for optimal resource management.
Ensure that you’re using the latest version of your npm packages, especially LESS (i.e. sudo npm update -g)
Ensure that you are uploading high res images whenever possible, so that they can be utilized for retina support.
If you are using stylesheet.css and stylesheet.less side-by-side on your server, but have let the .less versions become outdated, please either update them or archive them prior to the 1.6 upgrade.
Have a dev server? Don’t forget to contact us to schedule its upgrade so you can begin testing and preparing!