Skip to content

What's new


Saito 5 is big rewrite of major parts of the forum. 90% of the work took place in late 2015, but I burned out at the end, so it didn't make it out of the door. The remaining 9.9% were done in the first half of 2018. 2019 sees the release – finally.

On the backend the update from CakePHP 2.x to CakePHP 3.x is the most noteworthy, which was a considerable effort.

The frontend-stack moved from bower, RequireJS, Marionette 1.x and Javascript over to yarn, webpack, Marionette 3.x with parts starting to migrate to Typescript. The UI is based on Bootstrap now, which should offer a more accessible theming-environment.

Overall there's a stronger separation between frontend and backend. The major theme is that the PHP-backend is going to provide a new JSON based API with JWT authentication which is accessed by a independent frontend JS application. The rewritten image-uploader and bookmarks features being the first incarnations of this transition.

Future-proving the code-base was the main goal, but there are also feature changes.

Users are able to set an avatar image now. The layout is better optimised for mobile devices. Category-access-rights are more fine grained. The image-uploader is rewritten and improved (auto-rotate images by EXIF-metadata, remove medata, compress images, thumbnails on index page). The posting form is a custom implementation, which allows more flexibility (sub-paragraph citations, better dialogs for inserting content and esp. for smilies). Embedding of rich 3rd-party content doesn't rely on an external provider anymore.

On the other hand less popular features didn't made the transition: Shoutbox, community-map, separate mobile-version, email-notifications on answers, admin-stats, …


Migrating from 4.x

Saito 5.0.0 requires PHP 7.1 but is able to run on the same DB as Saito 4.10 (meaning that the DB updates for Saito 5 don't break 4.10). This allows you to move from PHP 5 to 7 with 4.10 and gently switch to Saito 5.

Saito 5 includes an automated database updater, so no more manually updating the DB with raw SQL commands. Yeah! But ... I can only hope that you applied the manual steps of the past by the letter. I also assume that your database structure is in the same state as a vanilla 4.10 installation. The automated updater may fail if it isn't ...

Please do a database-backup before updating!This is not a drill!

The database connection is set in config/app.php. Enter your existing security salt there too.

There's no support for table prefixes anymore. If prefixes were used in the past rename the tables to an unprefixed version.


The new default theme "Bota" replaces "Paz". It is implemented as a CakePHP 3 theme plugin and lives in plugins/Bota. The UI is implemented as Bootstrap 4 theme.

To start your own theme I recommend using SASS and referencing and customizing the default theme.

// e.g. in "plugins/YourTheme/webroot/css/src/theme.scss"
// set YourTheme in config/saito_config.php

//// Change Bootstrap variables

$body-color: #222;

//// Include the main theme which will pick up the Bootstrap variable values

@import "../../../../../plugins/Bota/webroot/css/src/theme";

//// Additional customizations tweaking the default theme

@import "_your_customizations.scss";

body {
  // more customizations

Otherwise you have to bring your own Bootstrap-theme and layout additional forum properties from scratch.

Assets 3

@Schlaefer Schlaefer released this Jun 10, 2019

What's new

  • ✓ Fixes incorrect table setup by the installer

Full change-log

Assets 3

@Schlaefer Schlaefer released this May 9, 2019 · 308 commits to master since this release

What's new

  • + PHP 7.1 compatibility
  • + Prepares update to Saito 5
  • + adds new API-endpoint users/online
  • ✓ fixes smaller issues on MariaDB
  • ✓ [mobile] fixes smilies und BBCode in Shoutbox
  • ✓ [mobile] fixes issues on login and logout
  • ✓ [mobile] fixes bugs when editing a posting starting a thread
  • ✓ [mobile] fixes issues when trying to view non-existing threads
  • Δ if is disabled existing [embed]-tags will present a HTML-link
ALTER TABLE `user_blocks`CHANGE `by` `blocked_by_user_id` int(11) unsigned NULL DEFAULT NULL;
RENAME TABLE `user_read` TO `user_reads`;

INSERT INTO `settings` (`name`, `value`) VALUES ('db_version', '4.10.0');

ALTER TABLE `users` CHANGE `user_signatures_images_hide` `user_signatures_images_hide` TINYINT(1)  NOT NULL  DEFAULT '0';

It is possible your settings table already has an "id"-column. In that case make sure it's auto-increment and add a "db_version" key with value "4.10.0" manually.

Full change-log

Assets 3
Jun 13, 2018

@Schlaefer Schlaefer released this Nov 18, 2015 · 333 commits to master since this release

  • + show remaining chars for subject #312
  • + set default format for youtube video fallback from 4:3 to 16:9 #316
  • + add [quote] BBCode tag #317
  • + show PHP-info in admin panel
  • ✓ [mobile] improved reliability when starting the mobile app
  • ✓ [mobile] app data isn't updated on Internet Explorer
  • ✓ improve [float] BBCode-tag
  • ✓ improve embedding
  • Δ relax CSRF protection when creating new postings
  • Δ update CakePHP from 2.6.7 to 2.6.12
Assets 3

@Schlaefer Schlaefer released this Nov 15, 2015 · 364 commits to master since this release

What's new

  • ✓ caches were not cleared out on certain operations
  • ✓ hide other users signature images not working #315
  • ✓ accession check on categories not always applied
  • ✓ improved localization
  • Δ update CakePHP from 2.6.3 to 2.6.7

Full change-log

Assets 3

@Schlaefer Schlaefer released this Mar 21, 2015 · 372 commits to master since this release

What's new

  • ✓ don't include complete web pages with embedly #314
  • ✓ posting in mobile app not working #313
  • Δ update to CakePHP 2.6.3

Full change-log

Assets 3

@Schlaefer Schlaefer released this Feb 28, 2015 · 381 commits to master since this release

What's new

  • + log user-agent in saito-<*>.log files
  • ✓ maps where not working because of API change on
  • ✓ user is not shown in userlist-slidetab #307
  • ✓ don't show ?mar in URL for non-aMAR users
  • ✓ improves german localisation
  • Δ updates CakePHP from 2.6.0 to 2.6.2
  • Δ minor refactoring

Full change-log

Assets 3

@Schlaefer Schlaefer released this Jan 10, 2015 · 395 commits to master since this release

What's new

  • ✓ HTML-entities created by BBCode-parser followed by a parenthesis trigger wink smiley #311

Minor code refactoring.

Full change-log

Assets 3

@Schlaefer Schlaefer released this Jan 4, 2015 · 400 commits to master since this release

What's new

  • ✓ cite button in answering form doesn't insert text #308 (was bug in flattr-plugin)
  • Δ Update CakePHP to 2.6.0 #309
  • Δ Update jQuery to 2.1.3 #310

Full change-log

Assets 3
You can’t perform that action at this time.