WoltLab Suite 5.2 has just been released. Some of the major features have already been presented and explained in-depth previously:
- Reactions, Cover Photos, First Setup, and Emails on Errors
- Custom Thread Input Fields, Best Answer, and more Administrative Improvements
- Improvements to Invitations, Automated Import of External Calendars, and Detection of Overlapping Events
- Reviews, Favorites, and Masonry Layout
The remaining changes will be listed in this thread.
List of Changes
This list includes changes made across all apps and the Core itself, especially improvements made to the Core have a great impact on all apps and are therefore listed more prominently.
Notifications for new registrations
Administrators can opt-in to be notified of all new registrations on their site via the built-in notification system.
Owner user group
The “Owner” user group has a special status as its members can never be banned and they can edit all users and user groups. Additionally, it is impossible to remove oneself from the owner user group to avoid accidentally dropping administrative permissions.
System check page
In the admin panel, there is a new system check page which lets administrators check if the current webserver configuration still meets the requirements of WoltLab Suite (useful after server updates or migration, for example) and provides some other useful checks like filesystem writability.
Searching for users by ID
The user search function in the admin control panel now supports searching for users by their ID.
BBCodes button icon selection
The BBCode icon shown in the editor toolbar can now be selected from a rendered list of FontAwesome icons.
Permission to change notification presets
A new permission has been added to restrict access to the form to change notification presents in the admin panel.
User cover photo upload in admin panel
Administrators can now upload user cover photos for other users by editing the relevant users in the admin panel.
Improved admin panel on mobile devices
The search function for the admin panel is now also available on mobile devices.
Search for users’ IP addresses
User IP addresses shown in user online list are linked to a search engine of your choice.
Apache rewrite rule generator
If url rewriting is activated in the admin panel, the rewrite rules for Apache webservers can be auto-generated with one click.
More system information in admin panel
The “system” tab on the admin panel index page now shows the core version, the database number, the MySQL version, the server load and PHP’s memory limit, max post size and SSL support.
Redesign of “Install Package” page
The layout of the page has been improved and there is only one search field that searches all of the relevant package data.
Rebuilding activity points per activity event
The action to update the activity points per activity events is now also available on the rebuild data page.
Rebuilding number of activity point event occurrences
The number of event occurrences for which users get activity points, like the number of posts or images, can now be recalculated on the rebuild data page.
Remove 3rd party login
When editing users in the admin panel, administrators can remove the 3rd party login from user accounts.
Bulk processing of Gallery images and videos
Gallery images and videos can be processed in bulk in the admin panel with the following actions being supported: setting categories, trashing, deleting, restoring, disabling, enabling, disabling comments, and enabling comments.
Custom file license management
New file licenses in Filebase can be added and edited directly in the admin panel.
Number of articles written by each user
The number of articles written by each user is tracked now and it can also be shown in message sidebars.
Default article sort field and sort order
The default order in which articles are shown and which field is used for sorting by default can now be set per article category.
Users can sort lists of articles themselves.
Nesting in category boxes
The second level of article categories is always visible in article category boxes.
Exclusion from search results
CMS pages and articles can be excluded from search results.
When adding or editing an article, a box, or a page, the smiley selection is now available below the editor.
Article category subscription
Article categories can be subscribed to to get notifications for new articles in the category.
Filtering article list
The article list in the admin panel can be filtered for deleted articles.
Number of unread articles per category
Menu items linking to specific article categories show the number of unread articles in the linked category.
Notifications for article comment
Users can be notified about new comments and responses on their articles and about responses to their own comments on any article.
Article category description
Article categories support an optional description shown on the category page.
Unsetting selected category
The category sidebar boxes include an additional link to unset the currently selected category.
Restricted article editing permission
Users can be restricted to only be able to edit their own articles.
Writing and editing articles in frontend
In addition to writing and editing articles in the admin panel, they can now also be written and edited in the frontend.
New ad locations have been added to the article list and articles themselves.
Articles in recent activity
When a new article is published, it appears in the recent activity feed.
Articles can be reported now.
Better article discussion thread integration
The article page shows the number of replies to the discussion thread and a condensed list of replies below the article.
New BBCodes for blog articles, threads, posts, and Core articles have been added.
Box edit link in frontend
For administrators, there is a new edit icon for boxes in the frontend to make it easier to edit specific boxes.
User profile comments box controller
A box controller to show comments posted on user profile walls has been added.
To only temporarily hide boxes instead of deleting them permanently, they can now be disabled in the admin panel.
Copying boxes and pages
To make it easier to create similar boxes and pages, they can be copied which open the form to add a new box/page prefilled with the copied box’s/page’s data.
Sorting today’s birthday box
The users listed in boxes contain the users whose birthday is today can be sorted.
File purchase condition
For automatic user group assignments, a condition to check if the user has bought a specific file has been added.
New thread conditions
For notices and thread list boxes, a new condition for the subscription status of the threads has been added and for notices, thread list boxes, and thread bulk processing, a condition for the age of the threads has been added.
Forum selection for conditions
Instead of only being able to select the forums for which a certain condition must me met, it is now also possible to select the forums for which the condition must not be met.
Disabling contact form fields
To make certain contact form fields temporarily unavailable, they can be disabled in the admin panel individually.
Sorting contact form fields
The list of contact form field in the admin panel can be sorted by dragging and dropping the individual field.
Contact form attachments
The contact form optionally supports attaching files to the sent email.
Quote selection on mobile devices
Selecting part of a message for quoting is now also possible on mobile devices.
Improved YouTube integration
At the end of embedded YouTube videos, related videos are no longer shown and YouTube’s time_continue parameter in links is supported now.
Disabling media providers
In addition to permanently deleting media provider, media providers can now also be disabled (temporarily).
A new media provider for tweets has been added at shows the actual tweet when linking a tweet.
New syntax highlighter
Embedded video attachments
Video attachments that are embedded into messages are shown as a video player.
Fullscreen editor in source mode
The editor can also be put into fullscreen mode if it is in source mode.
Mentioning user groups
In addition to individual users, whole user groups can also be mentioned now. Administrators can restrict which user groups can be mentioned and users of which user groups are allowed to mention user groups.
Scaling of attachment images
Attachment images can optionally be already resized in the browser before upload.
Pasted Microsoft Word texts
Formatting of Microsoft Word text pasted into editor has been improved.
Download counter for media files
The number of times media files have been downloaded (or viewed in the case of images) is logged in addition to the last time each file was downloaded.
Setting category of multiple media files
A new clipboard action has been added to the category of multiple media files at once.
Restricted media file access
A new permission has been added to restrict access (i.e. editing and using) to own media files only.
Media file captions
HTML code can optionally be used in media file captions.
There is a new dedicated page with all events created by a certain user, including past events.
A new page in Gallery lists all of the albums with unread images or videos.
A new dedicated page has been added that only shows the Gallery’s videos.
A new page listing all threads created by certain users has been added.
To easily access all of the new articles, there is a new dedicated page listing all of the unread articles.
Page share buttons
CMS pages support to optionally show social media share buttons at the end of the page.
Notification for page comments
Users with the permission to manage CMS pages can receive notifications for new comments and responses on any page and all users can receive notifications for responses to their comments on pages.
Page comments in recent activity
The recent activity feed will now include comments and responses to pages.
Changing pages’ application path
System pages, in particular those belonging to the Core, can now be virtually assigned to an app. This changes the path visible in the address bar, for example, the dashboard can be moved to the forum app.
The search in the admin panel also searches the trophies’ title for the searched text.
HTML in trophy descriptions
Trophy descriptions can optionally contain HTML code.
Display order of trophies
The order in which trophies are shown can be explicitly set in the admin panel.
Auto-revoking of trophies
Trophies whose conditions are no longer met can automatically be revoked again.
Trophy performance improvements
The code to show special trophies in message sidebar has been improve for better performance.
Updated trophy page
The trophy list can now be filtered by trophy categories and a new trophy category box controller has been added.
Discussion threads for blog articles
A new optional package is available that supports creating discussion threads for blog articles.
Supported category box positions
Blog, Gallery, and Filebase category boxes can now also be shown at the “Before Content” and “After Content” positions.
HTML in category descriptions
Blog, Gallery, and Filebase categories optionally support HTML code in their description.
AMP versions of the event page, the file page, and the thread page have been added.
Current month box
A new Calendar box controller has been added to show the current month in sidebars.
Earlier event dates
Past events can now start in 1902 instead of 1970.
Deeper category nesting
Calendar and article categories can now be nested up to 9 levels deep.
Members list sorting
The members list can be sorted by number of events the members have created and the number files they have uploaded.
Event cancelation information
The person who canceled an event is shown on the event page.
Label filter of upcoming events
The list of upcoming events can also be filtered by label.
In addition to the daily view, the weekly view, and the monthly view, Calendar also includes a yearly view showing the whole year on one page.
File price visibility
The prices of files are now also visible for guests.
Editing files’ additional authors
Moderators that are allowed to edit files are also able to edit the files’ additional authors.
File approval per category
The requirements of new files to be approved by moderators before they are published can also be set per category.
Improved marking file notifications as read
When visiting the file pages, all relevant notifications to the viewed file will be automatically marked as read.
Downloading files without accepting licenses
A new permission for moderators has been added that allows them to download files without having to accept the file’s license.
Notifications for file version reactions
File authors can get notifications if other people react to versions of their files.
Number of file purchases
Customers are able to see the number of times they purchased a specific file.
Improved “Recent Updates”
The “Recent Updates” list in Filebase now only lists updated files and not new files anymore.
Synchronization of files and support thread
If possible, the labels of files are synchronized with their support thread and file status of a file version (whether it is disabled or in the trash) is synchronized with the associated post in the support thread.
Default image and video list sorting
New options have been added to set the default sort field and default sort order of image and video lists.
“Images in Motion” speed
The speed of the “Images in Motion” sliders can be set via an option in the admin panel.
Image and video tag permission
A new permission for being allowed to assign tags to own images and videos has been added.
Album RSS feed
There is a new new RSS feed for all Gallery albums.
Editing video links
The link to an existing video link can be replaced with another link.
Permanent one-click image sorting
The default order of all images within an album can be set with one click by selecting the field and order used for sorting.
Previous and next image/video
When editing multiple images and videos, floating previous image/video and next image/video buttons have been added to make switching between images and videos easier.
Forum and thread title in ads
For ads in threads, the name of the thread and the name of the forum can be used in the ad code.
Auto-merging of consecutive posts
Consecutive posts by the same user in the same thread are automatically merged within a certain period of time.
Private thread access
The permission to access private threads can also be set for each forum separately.
Publication date update during approval
When manually approving threads and posts, the publication of the thread or post can optionally be updated to the approval time.
The dialog that open when clicking on a post’s number also includes social media share buttons for the post.
Forum meta description
The forum page’s meta description can be set per forum.
Improved bulk processing
The performance of the thread and post bulk processing actions in the admin panel has been improved.
Improved Forum RSS feeds
The RSS feed reader supports YouTube feeds now and has improved logging of errors occurring during feed processing.
User groups as conversation participants
In addition to individual users, whole user groups can be specified as conversation participants which automatically adds all user group members to the conversation.
Improved notification emails subject
The subjects of some notification emails have been improved to contain more information.
The Wordpress importer imports pages as CMS pages and the WoltLab importer now supports Filebase (categories, files, attachments, versions, comments with responses, likes) and CMS contents (pages, articles, and media files).
Default warning reasons
Warnings can be assigned to a default reason in the admin panel that is used to pre-fill the reason field for new warnings.
Person responsible for content
The legal notice has a new input field for the person responsible for the content of the website (according to section 55 paragraph 2 RStV).
Improved user group applications
When writing an application for a moderated user group, user can use the editor now and leaders of the moderated group can also use the editor when writing their reply to the application.
Disabling user cover photos
User cover photos can now be disabled directly on the user profile page in the fronend by administrators.
Page selection for notices
Instead of only being able to select the pages on which a notice is shown, it is now also possible to select the pages on which the notice is not shown instead.
Maximum comment length
By increasing the maximum length of the comment and response text supported in the database tables, comments and responses can be significantly longer now.
Paid subscriptions box
The box listing paid subscriptions is now also visible for guests.
Search by tag
A new search form acccessible via the normal search form to search contents by (multiple) tags has been added.
A new form has been added to the admin panel that lets administrators add new custom phrases.
Attachments in signatures
Signatures now also support attachments so that, for example, images do not have to be linked but can be embedded directly into the signature.
Required registration fields
Fields that have to be filled out during registration are explicitly marked as required fields.
Page filter for global ad location
If an ad is shown at a global location like the logo location, for example, the ad can now also be restricted to be only shown on specific pages at that position.
CSS classes for errors
To make customization of error pages easier, we have added new CSS classes based on the class name of the thrown exception.
Permanent image proxy cache
The auto-pruning of the image proxy cache can be disabled in the admin panel.
Auto-pruning of IP addresses
A new option has been added to set the number of days after which saved IP addresses are deleted from the database.
Login form for logged-in users
Instead of showing an error message, logged-in users are redirected to the start page when visiting the login form.
Whitelisting external image domains
Instead of blocking all external images, a new whitelist option allows administrators to only allow linking images from a specific set of domains.
Title of first breadcrumb
A new option determines if the title of the first breadcrumb contains the overall website title set in the admin panel options or the title of the linked page.
Edit own user profile
A new permission has been added to explicitly allow or disallow users from editing their own user profile.
Improved linking behavior of search results
As search results are assigned to a specific user, other users cannot access them when they are linked. If the highlight parameter is present in the search result link, however, clicking on this link will now start a new search for the highlighted term instead of showing an error message.
Quicker automatic user group assignments
By adding more explicit checks after new content is created whether users become members of new user groups due to automatic user group assignments, it will take less time until the users are actually added to the user group.
Marking comment notifications as read
If comments or responses are loaded by clicking on the “More Comments”, all notifications related to the loaded comments and responses are automatically marked as read.
Prevent attachment damage during FTP transfer
To prevent some FTP clients transferring attachments in ASCII mode, new attachments get a .bin file suffix to help these FTP clients correctly determining the transfer mode.
The generated template PHP code has been optimized for better performance.
Accessibility according to WCAG ARIA 2.0 and keyboard navigation has been improved.
Automatic database creation
If the entered database does not already exist, the setup process tries to automatically create the database.
Rotation of avatars and cover photos
Avatars and cover photos are automatically rotated during upload based on their EXIF data.
Sorting and filtering user interface
The new sorting and filtering user interface already used for threads, is also used on the member list page, the conversation list page, the image and video list page, and the album page.
Table of contents
Articles and blog articles support tables of contents based on the headings used in the text.
In addition to files that can be downloaded and files with an external link, Filebase also supports file entries without an actual file where the actual content is in the description in form of text (and attachments).
Category-specific file options
File options which allow uploaders to enter addition information can be made available only in certain categories.
Notices for the Filebase category page and file page can be set up to be only shown for certain categories.
Marking files as read
Files in file lists can now be marked as read by double-clicking on the file icon.
Visit-tracking of events
It is tracked if users have already read certain events so that new events can be explicitly marked as new for them. Additionally, there is a new page to view all unread events.
Notifications for new events
Subscribers of Calendar categories will get notifications if a new event is created in a subscribed category.
Improved calendar visuals
Some details of the calendar visuals have been improved like making it visually clearer if events were canceled, improved category color usage, more information on the current participation status of events, and overhauled event popovers.
If a user declines participation in an event, they can also write a message while declining.
In this last section, we list changes are only relevant to developers either for their development process or for the code they write. Previously, we introduced some of the largest changes in a separate spotlight thread: For Developers: Form Builder and New Developer Tools.
Built-in evaluation notice for apps
By setting AbstractApplication::$evaluationEndDate to the timestamp when you want the evaluation period of the app to end, pages belong to the relevant app will not be accessible anymore after the specified time.
Automatic dereferrer in admin panel
Custom search result icons
By implementing the ICustomIconSearchResultObject interface, search results can show custom icons instead of the author’s avatar.
Dynamic box titles
IBoxController::getTitle() has been added to support dynamic box titles for system boxes.
Installing packages via developer tools
Packages added as a developer tools project that have not been installed yet, can now be installed via the developer tools directly from the source code without having to create an archive.
Option availability in SCSS code
The values of options of the types float, radioButton, and select are available in SCSS code.
Importer for static CMS pages, media, and articles have been added.
Improved upload error messages
If debug mode is enabled, the error messages for failed uploads are more detailed to debug issues.
New option type interfaces
The II18nOptionType interface has been added to mark option type that supports multilingual input and the ISelectOptionOptionType interface signals that option type supports select options. (The interfaces are used by the new graphical user interface to create package installation plugin entries.)
Request URI in database queries
If the production debug mode is enabled, REQUEST_URI is appended to database queries as a comment to ease debugging queries.
commentResponseOwner notifications for multiple recipients
If commentResponseOwner user notification object types implement the new IMultiRecipientCommentResponseOwnerUserNotificationObjectType interface (and if the IMultiRecipientCommentUserNotificationObjectType interface is also implemented), commentResponseOwner notifications can also be sent to multiple recipients at once.
Mail class uses new API
The methods of wcf\system\mail\Mail have internally been mapped to the newer wcf\system\email\* API. As a consequence, some methods are not available anymore.
New link generation method
LinkHandler::getControllerLink() has been added as a new method to generate internal links that takes a fully qualified controller class name instead of a unqualified controller class name without its suffix (Form or Page) reducing the risk of typos and easing refactoring.
Log missing phrases
In developer mode, missing phrases will be logged in the log/missingLanguageItems.txt file including a stacktrace to help identifying the place the missing phrase is used. A notice on the index page of the admin panel shows if any missing phrases have been logged.
Using wrong phrase getter
In developer mode, calling Language::get() with an array as the second parameter instead of calling the correct method Language::getDynamicVariable() will result in an exception.
WoltLab update server and XSD paths
Our update servers and the paths to the XSD now use the current API version instead of the codename of the Core package.
To make developing easier in developer mode, a language toggle has been added to the user menu in the frontend and admin panel, admin panel sessions do no longer expire and fetching data from a prepared statement that has not been executed causes an exception.
File upload API
To reduce duplicate code to upload files, a new file upload API located in the wcf\system\file\upload namespace has been added.
HTML in category descriptions
Category descriptions optionally support HTML code if ICategoryType::supportsHtmlDescription() returns true.
Variable support in ads
If the ad location object types provides an implementation of IAdLocation (by extending AbstractAdLocation), additional variables can be used in ads depending on their location (see forum title and thread title for Forum ads).
Improved AJAX exceptions
AJAX exceptions now also show the file and line in which original exception was thrown.
Improved exception log
The exception log in the admin panel, now also shows the extra information logged with the exceptions and the order of the exceptions has been reversed so that the latest exceptions are shown first.
Sandboxing foreach loop variables
If the item or key variable of a foreach loop in a template already exists, the outer value will be cached and its value will be restored after the foreach which prevents accidentally overriding the previous value.
Search options and permissions by their identifier
If the developer mode is enabled, options and permissions can now also be searched for by their identifier in the admin panel.
New mixin for larger desktop screen resolutions
A new SCSS mixin screen-xl for desktop screen resolutions with a minimum width of 1281px. Additionally, screen-lg-only and screen-lg-down have also been added.
Replace API compatibility system with semantic versioning
The API compatibility system has been deprecated in favor of semantic versioning. The relevant pull request on GitHub provides more information.