XenForo 2.3.8 is now available for download to all licensed customers. All customers using previous XenForo 2.3 versions are strongly advised to upgrade to this version to benefit from increased stability. Some of the changes in
XenForo 2.3.8 are as follows:
Fixes the issue of readjusting EXIF orientation information when it's already fixed on the client side.
Fix some issues related to entity type hints.
Allow underscores (_) to delimit word names in read-only method names.
Fix empty user authorized applications list container
Ensure the language status is always restored when generating event summary emails.
Fixes the Filter JS query parameter merging issue.
Allow the creation of passkeys on local hosts.
Fix the cleanUpInvalidRecords type hint issue.
The `parse_less_color` template function should always force hexadecimal for non-variable values.
Fix duplicate result-set hydrate queries.
Return an early error if the search keyword length is too long.
Use strict type checks when processing search input.
In the Profile Posts tab, search and show only posts.
Use the post content filter and the topic type sub-filter in member topic searches.
Avoid converting SVGs to raster (bitmap) images.
Skip the void method return in XF\Cli\Command\AbstractCommand::initialize
When viewing the list of monitored topics, ensure that invalid page numbers are processed correctly.
Add to processing for null status messages while jobs are in progress.
Make sure the access keys are deleted when the relevant user is deleted.
Fixed missing support for some webhook actions.
Add the missing defaultname to the xf:avatar and xf:username tags in the report_view template.
Add HTML support for the `summary_of_what_you_missed_recently` phrase in the `activity_summary` email template.
Fix an issue where the DKIM signature was preventing List-Unsubscribe headers from being added to emails.
Require re-authentication before adding or changing the passkey.
Support for regenerating unfurls when regenerating metadata for supported content types.
Fixes the issue of not being able to set up TOTP via QR code in Firefox if privacy.resistFingerprinting is enabled.
Add the missing template annotation for EmbedResolver/AbstractHandler.
Update the PHPDoc hint \XF\Repository\UserAlertRepository::fastDeleteAlertsForContent to include the int array.
Improve plugin ID coercing in the plugin manager when multiple plugins are installed.
When checking the replication status of the read server, ensure the query is sent to the correct connection.
Support the "listitemclass" attribute when creating checkboxes.
Try to maintain the sending order in case of unexpected time synchronization issues.
Add a cache buster directly to attachment URLs.
Fix the issue that caused the "Process Report" button in an assigned report to not show the save button.
Skip deleting the style variation preference cookie when you log out.
An error is thrown when attempting to reconstruct the search index with an invalid type.
Caching user online counts within the same request reduces query usage.
Ensure cascadeSave is cleaned up when Entity::_saveCleanUp is called.
Add protection against the fact that `Request::getIp` sometimes doesn't return a valid IP address.
Parsing cover images for guests without attachment permissions.
Pass the criteria object to the criteria_template_data event listeners.
Skip additional files that don't exist when deleting from the control panel.
Set the search entity after the searches are executed.
Add JSDoc for XF.createElement
Fix some issues with the quote plugin.
Fix some lingering links leading to twitter.com.
On the control panel's user settings page, hide the additional contact heading if there is no contact field.
Remove the pattern attribute from number inputs.
Fixes DKIM signing issue in XF 2.3
Correct the missing trailing slash in the link from the privacy policy to the cookie explainer page.
Workaround for the issue of the Sign In with Apple feature not returning emails (#1199)
Verify signature counter when using passkey (#1198)
Throw a clearer error (#1200) if the current host and forum URL do not match when generating or validating the passkey.
When a user is authenticated with a passcode via the admin panel, they are also allowed to log in to the public forum (#1201)
Prevent push notifications from being sent to permanently deleted Chrome subscriptions.
Ensure that failed access key entries are included in the failed access attempt limit (#1207)
Gmail treats passive inbox bounce messages as hard bounces (#1208)
Make it easy to override PayPalRest plan parameters (#1209)
Set tfa_trust cookie when logging in with passkey (#1210)
Create a directory if it doesn't exist when creating Finder classes (#1211)
Update PHPDoc for the asVisitor function to better extract return types.
Reduce notification queuing delay when sending a post.
Reorganize the deletion and cleaning process; renaming and deleting should be done in a single process.
Skip caching local URLs when using an image proxy.
Workaround for potential race conditions when saving bookmark tags.
Support using a passcode instead of a password.
Support passing extra spam control data in the user registration service.
Add basic webhook criteria classes
Support accessing notification data in Notifier classes.
Support additional array functions in the templator.
Clean HTML tags when using description as title in RSS import (#1214)
Move the XF\BbCodeRenderer\Html::getValidUrl function to a utility function (#1215)
Throws an error when trying to run a non-existent import step (#1216)
Add a random string to the DKIM selector (#1217)
Check for case discrepancies when creating the plugin (#1218)
Fix TypeError that occurs when sending non-array JSON input (#1223)
Preventing image uploads even if EXIF processing fails (#1224)
Fix the issue where the XF.phrase function cannot handle repeated substitutions.
Fix the display of signatures set to False.
Fix pagination scrolling behavior on the Received Responses page.
Fix the scrolling behavior in the quick reply section.
Correct the reverse logic in the canResize method control.
Make the plugin archive validator more robust by removing duplicate inference and adding proper JSON validation.
Finder::getCollectionFromResults does not check if the return hydrateFromGrouped is null.
Ensure that the option values are converted to the correct data types when being retrieved.
Correct incorrect operator precedence in template expressions.
The release builder fails on plugin directories containing symbolic links.
Email bounce parser now also handles multi-digit status codes (#1240)
API routes are producing invalid development output.
Improve CSS delivery efficiency when using caching.
Only when cropping changes will it prevent unnecessary text from being added to the original avatar.
Allocate some memory for error reporting.
In CLI contexts, retrieve protocol and host information from the forum URL.
Add AbstractCollection support when using the templator's array* functions (#2182)
Reconfigure the lightbox side panel open/close operation and ensure it's started correctly.
The following publicly available templates have been modified:
_help_page_privacy_policy
account_reactions
account_visitor_menu
attachment_macros
bb_code_tag_attach
core.less
core_action_bar.less
embed_resolver_thread
helper_attach_upload
lightbox.less
login_password_confirm
member_about
member_macros
member_recent_content
member_tooltip.less
message.less
message_macros
news_feed_attached_images
passkeys_macros
report_view
setup.less
share_page_macros
tag_macros
tag_search
two_step_totp
If necessary, the merge system on the "legacy templates" page should be used to integrate these changes.
Current requirements:
Please note that XenForo 2.3 has higher system requirements than previous versions.
The following are the minimum requirements:
PHP 7.2 or newer (PHP 8.3 recommended)
MySQL 5.7 and newer (Also compatible with MariaDB/Percona etc.)
All of the official add-ons require XenForo 2.3.
Enhanced Search requires at least Elasticsearch 7.2.
XenForo 2.3.8 is now available for all licensed customers to download. We strongly recommend that all customers running previous versions of XenForo 2.3 upgrade to this release to benefit from increased stability.
Some of the changes in XenForo 2.3.8 include:
Fix an issue where EXIF orientation would be set when already adjusted client-side
Fix some issues with entity type hinting
Allow underscore word boundaries in read-only method names
Fix empty user authorized applications list container
Ensure language state is always restored in between generating activity summary emails
Fix filter JS query parameter concatenation
Allow passkey creation on local hosts
Fix cleanUpInvalidRecords type hint
Always coerce parse_less_color template function to hex for non-variable values
Fix duplicate result-set hydration queries
Return an error early when search keyword lengths are too long
Use strict type checks when processing search input
Only search and display posts on the profile postings tab
Use post content filter and thread type sub-filter for member thread search
Avoid converting SVGs to rasterised images
Skip void method return in XF\Cli\Command\AbstractCommand::initialize
Ensure invalid page numbers are handled correctly when viewing the watched threads list
Add handling for null status message values when resuming jobs
Ensure passkeys are deleted when the associated user is deleted
Fix missing support for some webhook actions
Add missing defaultname to xf:avatar and xf:username tags in the report_view template
Support HTML for the summary_of_what_you_missed_recently phrase in the activity_summary email template
Fix DKIM signing preventing List-Unsubscribe headers from being added to emails
Require re-authentication before allowing passkey additions or modifications
Support rebuilding unfurls when rebuilding metadata for supported content types
Fix not being able to setup TOTP on Firefox via QR code if privacy.resistFingerprinting is enabled
Add missing template annotation to EmbedResolver/AbstractHandler
Update docblock hint on \XF\Repository\UserAlertRepository::fastDeleteAlertsForContent to include array of ints
Improve add-on manager performance when coercing add-on IDs with a significant number installed
When checking the replication status of a read server, make sure the query is properly sent to the read connection
Support the "listitemclass" attribute when rendering checkboxes
Try to preserve post ordering when there's an unexpected time sync issue
Include a cache buster on direct attachment URLs
Fix issue preventing "Handle report" button on an assigned report not revealing the save button
Skip deleting style variation preference cookie on logout
Throw an error if trying to rebuild search index with an invalid type
Cache user online counts in the same request to reduce query usage
Ensure _cascadeSave is cleared out when Entity::_saveCleanUp is called
Guard against Request::getIp not returning a valid IP in some cases.
Do not resolve attachment cover images for guests with no attachment permissions
Pass criteria object to criteria_template_data event listeners
Skip non-existent attachments when deleting from the control panel
Set up search entity after searches have been executed
Add JSDoc to XF.createElement
Fix some issues with the quote plugin
Correct some lingering links to twitter.com
Hide additional contact heading from control panel user edit page when there are no contact user fields
Remove pattern attribute from number inputs
Fix DKIM signing in XF 2.3
Fix missing trailing slash when linking to cookies explainer from privacy policy
Workaround issue where Sign in with Apple might not return an email (#1199)
Validate signature counter when using a passkey (#1198)
Throw a clearer error when the current host and board URL do not match when creating or authenticating with passkeys (#1200)
Log users in to the public forum when authenticating with passkeys via the admin panel (#1201)
Inhibit sending push notifications to permanently removed Chrome subscriptions