Today we are releasing XenForo 2.3.0 Release Candidate 5. While the majority of this release is focusing on bug fixes and stability, there are a few noteworthy changes.
Automatic legacy file clean up
XenForo installations after upgrading to XenForo 2.3 will have a number of files sitting in the file system which are no longer used. Any XenForo installation that has been around for a while, will to a lesser extent, have a similar issue. These files on their own shouldn't present any issue, but at the same time, keeping them around doesn't make much sense either.
There are three approaches to cleaning up legacy files automatically.
During one-click upgrade
One-click upgrades now have a special step for removing files that were present in the version you are upgrading from, which are no longer present in the version being installed. We already know we have write access to the files in your file system at this point so there should not be any issue in deleting these files in most cases.
During manual upgrades
After each upgrade, we also enqueue a job to do a file clean up based on a list of files enumerated from the hashes.json file. Anything in your src/vendor, src/vendor-patch and src/XF directory that is not listed in hashes.json will be removed automatically if possible. If it is not possible, we will log an error in your server error log.
By running a command
If write access is an issue, you can log in to your server shell/CLI and simply run the following command:
Bash:php cmd.php xf:file-clean-up XF
As long as the CLI user has write access to your XenForo directory, the old files will be removed.
Cleaning up files manually
If all else fails, and you still wish to delete legacy files, we recommend the following approach:
- Close your forum
- Delete the contents of the following directories:
- src/vendor
- src/vendor-patch
- src/XF
- Re-upload the files from your current release
Cleaning up files for official add-ons
We will automatically attempt to clean up files for official add-ons as well after each upgrade. Again, if we run into write issues during the clean up process, an error log will be logged in your server error log. You can run the same command listed above (with either XFRM, XFES, or XFMG instead of XF as an argument), or follow the manual clean up steps above for the relevant add-on under src/addons.
Cleaning up files for third party add-ons
Developers who wish to trigger an automatic clean up of their own files, can do so by calling the following from within their add-on Setup class in the postUpgrade method:
Code:$this->enqueuePostUpgradeCleanUp();
Trending content support for add-ons
Starting with Release Candidate 5, we have added support for trending content to XenForo Resource Manager and Media Gallery.
Persistent file names for attachments
We have changed the way that file names for attachments are saved on the file system. Each attachment will now get a random file_key value, which is used to determine the file name on the file system. For older attachments this will default to the current file_hash value. The primary driver for making this change is so that the URL or path to specific attachments or thumbnails will no longer change after being optimised (which would change the file_hash value, and therefore the file name).
To address a backwards compatibility issue with some add-ons, we are today releasing XenForo 2.3.0 Release Candidate 4. If you are running Release Candidate 3 already we encourage you to upgrade as soon as possible. If you were previously affected by issues with certain add-ons or experience other issues, please let us know via a bug report in the first instance.
This release also fixes the issue with admin search returning an error.
hortly after the release of Release Candidate 1, we identified an issue related to editing node-like permissions. A very minor bug was surfaced by the changes today. Specifically one of our view class names was using a \ instead of a :
Due to a localised shortage of version numbers (we cannot increment the version to a patch release for release candidates) we have released Release Candidate 2 to address this.
The specific files with changes are:
- src/XF/Admin/Controller/Node.php
- src/XF/Admin/Controller/Permission.php
As we get ever closer to the fabled "release candidate" stage and the eventual stable release, today we are releasing the eighth beta for XenForo 2.3! Nothing particularly noteworthy this week other than a number of bug fixes.
We strongly recommend anyone testing 2.3 during this beta period upgrade as each beta version is released.
More specific details regarding bugs fixed in this release can be found in the resolved bugs forum.
This is beta software. It is not officially supported.
We do not recommend running it in production.
Please remember that this is beta software. It contains known bugs and incomplete functionality. We do not recommend running beta software in a production environment, and support is limited at this time to questions here on the community forums.
Add-ons and custom styles may be broken after upgrading to 2.3. You must test your add-ons thoroughly or look for updates. Be especially careful with add-ons that cover similar features to ones that are added to 2.3; these may conflict with the core XenForo data. If data conflicts are found, they will need to be resolved in a new add-on release or by removing the add-on before upgrading to 2.3.
If you choose to run beta software, it is your responsibility to ensure that you make a backup of your data. We recommend you do this before attempting an upgrade. If in doubt, always do a test upgrade on a copy of your production data.
Welcome to 2.3.0 Beta 7! Since our last release we have been mostly focusing again on bug fixes and stability, though we do have an interesting change to note related to multibyte strings, specifically URL romanization. If available, we now use the intl extension and perform a multi-layered process for normalizing and transliterating strings. This is now much more intelligent as it handles some special cases for certain locales (based on the default language of the forum).
We also have a new option for controlling the output of emojis in URLs. You can leave them URL encoded, remove them, or convert them to a string based on the emoji name. This also requires the intl extension. You can see an example of that in the URL below.
We recommend reading the following post for more information:
![]()
Fixed - 🐛 with Turkish characters such as ö and ü
Hello, I enabled the friendly URL option. However, there is a problem with Turkish characters in the URL.xenforo.com
This week (and a bit) we have been extremely busy working towards that enticing milestone of a stable release. There's still a little while to go with a healthy number of bugs, feedback and other bits in our backlog that we'd like to work through, but each release represents a significant amount of effort and progress towards the end goal.
While we have mostly focused on bug fixes and other stability improvements, this has resulted in some notable changes which you should be aware of.
Multibyte string handling
We have been deferring this handling to a third party piece of code for a number of years which has done a great job, but after a recent discussion and bug report about it we have decided to modernise this code and bring it into the XF core itself. Developers will now find most of this functionality under the new XF\Util\Str class. Worried about your code that no doubt has used various utf8_ functions in the past? Fear not because we now ship a shim file which proxies those legacy function names to their analogous functions in the new Str class. Though we highly recommend updating existing code to utilise the new Str class as soon as possible as the utf8.php shim is already deprecated and will be removed in XenForo 3.0.
Some of the new Str class has been rewritten to, wherever possible, make use of methods provided by the PHP mbstring extension. This means that, much like many other modern PHP applications and frameworks, XenForo 2.3 now has a hard requirement for the mbstring extension to be available. While not shipped by default, it's highly likely you already have it available. To check if it is, all you have to do is look at the "Server environment report" on your admin control panel index.
The new Str class is making use of modern PHP syntax including enforcing return types and argument types. This may mean that you could see an increase in the number of server error logs related to these string functions. This is intentional. Those logs will likely represent a bug in an add-on's code and therefore should be reported to the add-on developer in the first instance.
Click here to read more about these changes.
Entity ViewableInterface and IndexNow
Any entity which is configured to be "indexable` via the XF:Indexable entity behavior and is configured to enqueueIndexNow now requires the implementation of the new ViewableInterface. This is to ensure that your entity has an appropriate canView method so that we can determine content is viewable by a guest before submission to IndexNow. Developers will need to implement this interface and add a canView method (if needed) to ensure content can be submitted to IndexNow.
Automatic webhook configuration via PayPal's REST API
There is no longer a manual step required to configure webhook verification when using the new PayPal payment provider. Upon creating a payment profile, we use API calls to create and configure the webhook automatically, no longer requiring that as a separate manual step and copy/pasting the webhook ID. If you happen to receive payment provider logs about webhooks not being able to be verified, it will be worth toggling off and on the checkbox for enabling webhook verification to see if that resolves the issue.
That's it for this week, we're off to swat some more bugs. Please read the rest of this post for the standard upgrade boilerplate text
We strongly recommend anyone testing 2.3 during this beta period upgrade as each beta version is released.
More specific details regarding bugs fixed in this release can be found in the resolved bugs forum.
Finally, the add-ons have some loveWhile there is the usual amount of bug fixes as we work hard to make XenForo 2.3 even more stable, this Beta in particular brings a number of new features to our official add-ons.
You can read our recent 'Have you seen...?' thread to find out what's new:
Note in particular, XenForo Enhanced Search has slightly higher minimum requirements than we reported previously. This now requires Elasticsearch 7.2 which was necessary to support the new search suggestions feature for auto-completing searches. You can also now use OpenSearch if you prefer.
We strongly recommend anyone testing 2.3 during this beta period upgrade as each beta version is released.
More specific details regarding bugs fixed in this release can be found in the resolved bugs forum.
This is beta software. It is not officially supported.
We do not recommend running it in production.
Please remember that this is beta software. It contains known bugs and incomplete functionality. We do not recommend running beta software in a production environment, and support is limited at this time to questions here on the community forums.
Add-ons and custom styles may be broken after upgrading to 2.3. You must test your add-ons thoroughly or look for updates. Be especially careful with add-ons that cover similar features to ones that are added to 2.3; these may conflict with the core XenForo data. If data conflicts are found, they will need to be resolved in a new add-on release or by removing the add-on before upgrading to 2.3.
If you choose to run beta software, it is your responsibility to ensure that you make a backup of your data. We recommend you do this before attempting an upgrade. If in doubt, always do a test upgrade on a copy of your production data.
Fixed install error :
Code:XF\Db\InvalidQueryException: MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 15 in src/XF/Db/AbstractStatement.php at line 230 XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 198 XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 40 XF\Db\Mysqli\Statement->prepare() in src/XF/Db/Mysqli/Statement.php at line 56 XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 96 XF\Db\AbstractAdapter->query() in src/XF/Install/Helper.php at line 352 XF\Install\Helper->insertDefaultData() in src/XF/Install/Controller/Install.php at line 179 XF\Install\Controller\Install->actionStep2() in src/XF/Mvc/Dispatcher.php at line 352 XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 258 XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 115 XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 57 XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2588 XF\App->run() in src/XF.php at line 532 XF::runApp() in install/index.php at line 14
Today, we continue the, uh, trend of weekly beta releases for XenForo 2.3 with Beta 4. This release fixes a number of bugs found since the previous release, and adds support for trending content which you can read about right here.
In addition to the trending content widget we have also made the following notable changes:
We strongly recommend anyone testing 2.3 during this beta period upgrade as each beta version is released.
- You can now log in to the admin control panel using your configured passkey.
- Changes to the job queueing system that allows a caller to create jobs with a specified priority.
- Webhook support for user upgrades.
- Separated XF.Cropbox from avatar.js into its own file, crop_box.js.
More specific details regarding bugs fixed in this release can be found in the resolved bugs forum.
This is beta software. It is not officially supported.
We do not recommend running it in production.
Please remember that this is beta software. It contains known bugs and incomplete functionality. We do not recommend running beta software in a production environment, and support is limited at this time to questions here on the community forums.
Add-ons and custom styles may be broken after upgrading to 2.3. You must test your add-ons thoroughly or look for updates. Be especially careful with add-ons that cover similar features to ones that are added to 2.3; these may conflict with the core XenForo data. If data conflicts are found, they will need to be resolved in a new add-on release or by removing the add-on before upgrading to 2.3.
If you choose to run beta software, it is your responsibility to ensure that you make a backup of your data. We recommend you do this before attempting an upgrade. If in doubt, always do a test upgrade on a copy of your production data.
All customers with active licenses may now download the new version from the customer area.
Requirements
The following are minimum requirements:
Note: Only the PHP version requirements have changed here. However, even if you're running PHP 7.2 we strongly recommend upgrading to PHP 8.3 at the earliest opportunity for improvements in speed, security and stability. We also recommend MySQL 8.0 (or equivalent).
- PHP 7.2 or newer
- MySQL 5.7 and newer
- All of the add-ons listed here require XenForo 2.3.
- Enhanced Search requires at least Elasticsearch 7.0
Today, we continue the beta stage of XenForo 2.3 with Beta 3, albeit a little later than originally planned This release fixes a number of bugs found since the previous release, and adds support for passwordless logins with passkeys which you can read about right here. There are a few known issues with passkeys at this point, particularly with hardware-based keys, so please check the bug reports forum if you run into anything.
We strongly recommend anyone testing 2.3 during this beta period upgrade as each beta version is released.
More specific details regarding bugs fixed in this release can be found in the resolved bugs forum.
This is beta software. It is not officially supported.
We do not recommend running it in production.
Please remember that this is beta software. It contains known bugs and incomplete functionality. We do not recommend running beta software in a production environment, and support is limited at this time to questions here on the community forums.
Add-ons and custom styles may be broken after upgrading to 2.3. You must test your add-ons thoroughly or look for updates. Be especially careful with add-ons that cover similar features to ones that are added to 2.3; these may conflict with the core XenForo data. If data conflicts are found, they will need to be resolved in a new add-on release or by removing the add-on before upgrading to 2.3.
If you choose to run beta software, it is your responsibility to ensure that you make a backup of your data. We recommend you do this before attempting an upgrade. If in doubt, always do a test upgrade on a copy of your production data.
Requirements
The following are minimum requirements:
Note: Only the PHP version requirements have changed here. However, even if you're running PHP 7.2 we strongly recommend upgrading to PHP 8.3 at the earliest opportunity for improvements in speed, security and stability. We also recommend MySQL 8.0 (or equivalent).
- PHP 7.2 or newer
- MySQL 5.7 and newer
- All of the add-ons listed here require XenForo 2.3.
- Enhanced Search requires at least Elasticsearch 7.0