5.3.0
Noteworthy Changes
From the Changelog
- + Send posting before moving on from posting form #338
- + Save drafts while composing a new posting
- + Browser warns the user before navigating away from a posting form with input
- + Favicon-indicator shows number of unread postings on background tabs with autoreload #95
- + New setting
answeringAutoSelectCategory
to control category-selection in posting-form - − Removes support for embedding new Flash videos (
<object>...
) #326 - ✓ Uploading PNG images allows double-uploads #343
- ✓ Fixes several bugs causing Internal Error issues
- ✓ Don't autolink file:// URIs #341
- ✓ Internal posting-hashtag in parenthesis isn't linked #337
- Δ Changes the default DB engine for the
entries
table from MyISAM to InnoDB #322 - Δ Keeping track of online users is more accurate while requiring less resources
- Δ Font files for default theme are served locally instead from Google (everything is served locally now)
- Δ Disables Security component on login #339
- Δ PHP code maintenance
- Δ Improves code quality so it passes phpstan static code analysis on level 3 (was 1)
- Δ Declares all
src/
andplugins/
PHP files as strict - Δ Refactors handling of current user's state
- Δ Core library updates (CakePHP 3.8, TypeScript 3)
Never Lose A Posting Again
5.3.0 refactors and improves a lot of code including keeping track of the current user and posting a new entry. Both touches important functionality and our oldest code paths (reaching back even before the git init
of this repository). They accumulated a lot of cruft over the years.
This was also the occasion to introduce exciting new features:
In the past sending the posting-form was mainly a simple HTTP POST request. If something went wrong the content was gone. The browser's back button wasn't much of a help. From now on a posting is sent in the background before leaving the posting-form. If there's a server error or a connection problem the user is notified and won't lose the posting staring at a blank page.
While composing a new posting the content is continuously saved as a draft in the background. On the chance that something is going wrong while composing a posting the draft is restored when the user opens the posting form again.
Update Notes
New Setting answeringAutoSelectCategory
There's a new setting answeringAutoSelectCategory
in config/saito_config.php
. It allows to select a default category for new postings.
If true
the first available category (by category-order and accessibility according to user rights) is preselected as default category in the posting form. If false
the user is forced to select a category.
Default: false
(same behavior as in previous versions).
Changing Entries Table from MyISAM to InnoDB #332
This update changes the last and biggest table - containing all postings - from MyISAM to the modern InnoDB database-engine. According to my benchmarks this switch shouldn't impose a major performance impact anymore.
The updater is going to convert the table automatically, but be aware that your PHP-script runtime is limited on a shared-hoster. The conversion may take several minutes depending on the number of postings and exceed that period. So you might end up sitting in front of a blank page wondering what happened. If your forum contains more than 100.000 postings I recommend converting the table manually before starting the updater. Execute e.g. in phpMyAdmin:
ALTER TABLE entries ENGINE=InnoDB;
As always: Backup your database before performing an update.