Phorum 10.0.0-alpha-3 available
Posted by Brian Moon
|
Phorum 10.0.0-alpha-3 available July 17, 2026 02:12PM |
Admin Registered: 25 years ago Posts: 4,501 |
Phorum has been fully rewritten from the ground up — and yet, if you're running Phorum 6 today, you can upgrade in place. The database schema is unchanged and fully compatible. Same tables, same columns, same data. What's changed is everything around it.
(If you're still on Phorum 5.x, you'll need to upgrade to Phorum 6 first before moving to Phorum 10.)
In this version:
Added
In-place upgrade from an existing Phorum 6 database. A new /upgrade flow detects a Phorum 6 database (identified by its own internal_version setting) and brings it up to Phorum 10's schema — adding new tables and columns without touching anything Phorum 6 already created. No data is changed, deleted, or converted.
Forced password change. Admins can flag a user account to require a new password before it can do anything else; the user is redirected to a dedicated change-password page until they comply.
Per-forum edit permission + site-wide edit time limit. Editing your own posts is now gated by a real permission bit (configurable per forum/group, alongside the existing reply/post/moderate bits) and an optional site-wide time limit after which a post can no longer be edited.
Thread merge. Moderators can fold one thread into another as a single-form action — the merged thread's posts, permalinks, and search index entries are preserved.
Changed
Custom fields storage now matches real Phorum 6. Field values live in one user_custom_fields table (previously two invented tables), and field definitions are stored as a settings blob rather than a separate config table — mirroring how Phorum 6 itself has always done it.
Note: forum-level and message-level custom fields — which never existed in real Phorum 6 — are no longer supported, only user-profile fields. If your alpha-2 install has data in the old tables, it is not migrated or read by this release; it will need to be handled manually if it needs to be preserved.
Fixed
/upgrade could stay reachable and mutate the database on an already-installed site; it's now guarded the same way the installer is.
The upgrade flow didn't mark the site as installed on completion, so it would loop back to /upgrade forever after a successful upgrade.
The post-password-change redirect could double up base_path (when configured) and dropped the original query string.
Two admins editing different custom fields at the same time could silently overwrite one another's change; saves are now conflict-safe.
Merging a thread didn't carry over the target thread's open/closed state, and could leave already-read posts marked unread after a cross-forum merge.
A flagged admin account could use the entire admin panel indefinitely without ever being forced to change its password.
A database upsert helper used by several mappers could silently swallow a genuine constraint-violation error instead of surfacing it.
Improved
Reduced duplicated logic around URL building, open-redirect validation, schema migration, and thread moderation.
Extended translation coverage to the installer/upgrade screens and several previously English-only validation messages.
Reduced database queries on thread pages (permission checks are now resolved once per request instead of once per message) and on the upgrade confirmation screen.
Dependencies
Bumped league/commonmark to 2.8.3.
(If you're still on Phorum 5.x, you'll need to upgrade to Phorum 6 first before moving to Phorum 10.)
In this version:
Added
In-place upgrade from an existing Phorum 6 database. A new /upgrade flow detects a Phorum 6 database (identified by its own internal_version setting) and brings it up to Phorum 10's schema — adding new tables and columns without touching anything Phorum 6 already created. No data is changed, deleted, or converted.
Forced password change. Admins can flag a user account to require a new password before it can do anything else; the user is redirected to a dedicated change-password page until they comply.
Per-forum edit permission + site-wide edit time limit. Editing your own posts is now gated by a real permission bit (configurable per forum/group, alongside the existing reply/post/moderate bits) and an optional site-wide time limit after which a post can no longer be edited.
Thread merge. Moderators can fold one thread into another as a single-form action — the merged thread's posts, permalinks, and search index entries are preserved.
Changed
Custom fields storage now matches real Phorum 6. Field values live in one user_custom_fields table (previously two invented tables), and field definitions are stored as a settings blob rather than a separate config table — mirroring how Phorum 6 itself has always done it.
Note: forum-level and message-level custom fields — which never existed in real Phorum 6 — are no longer supported, only user-profile fields. If your alpha-2 install has data in the old tables, it is not migrated or read by this release; it will need to be handled manually if it needs to be preserved.
Fixed
/upgrade could stay reachable and mutate the database on an already-installed site; it's now guarded the same way the installer is.
The upgrade flow didn't mark the site as installed on completion, so it would loop back to /upgrade forever after a successful upgrade.
The post-password-change redirect could double up base_path (when configured) and dropped the original query string.
Two admins editing different custom fields at the same time could silently overwrite one another's change; saves are now conflict-safe.
Merging a thread didn't carry over the target thread's open/closed state, and could leave already-read posts marked unread after a cross-forum merge.
A flagged admin account could use the entire admin panel indefinitely without ever being forced to change its password.
A database upsert helper used by several mappers could silently swallow a genuine constraint-violation error instead of surfacing it.
Improved
Reduced duplicated logic around URL building, open-redirect validation, schema migration, and thread moderation.
Extended translation coverage to the installer/upgrade screens and several previously English-only validation messages.
Reduced database queries on thread pages (permission checks are now resolved once per request instead of once per message) and on the upgrade confirmation screen.
Dependencies
Bumped league/commonmark to 2.8.3.
Brian - Personal Blog
Sorry, only registered users may post in this forum.