WackoWiki: R5.5 Release Notes

https://wackowiki.org/doc     Version: 26.08.2020 20:54


(31.12.2019) d2649d1[link1] -> M17 (Change Log[link2])

As work on WackoWiki 5.5 is still underway[link3], this is an incomplete list of changes.

This is a major release and a security update for the stable 5.x branch.
In addition to miscellaneous fixes the 5.5 release serves mainly three purposes: Migration to HTML5, address security related features and PHP 7.0/7.4 compatibility.

mammut mascot

Notable in this release

  1. complete PHP 7.0/7.4 compatibility
  2. HTML5 support
  3. major refactoring of init system
  4. new session handler
  5. new URI router[link4]
  6. new template engine[link5]
  7. added php-diff rendering methods
  8. replaced all icons with SVG icons
  9. implemented auth and form token
  10. added support for audio, video and SVG files
  11. moved page title (H1) from theme header to show handler
  12. added Bad Behaviour as extension
  13. public registration moderation by admin
  14. using password_hash() and password_verify() API 
  15. file link tracking
  16. improved notification handling
  17. localized WikiEdit and Admin panel




Repo files (including community[link7] folder)

Clone repo
git clone -b 5.5.17 https://bitbucket.org/wackowiki/wackowiki.git

Upgrade path

R4.x –> R5.0[link11] (requires PHP 5.2 / 5.3)
R5.x –> R5.5[link12] (requires PHP >= 7.0)

Please read the upgrade notices[link12] carefully.


Installation guide[link13]


requires now[link14]

Step by step as Installer Screenshots[link15].

Preparing the Database for Installation

Data base configuration: If the installer asks you for charset, select the appropriate character set, e.g.

File Permissions

Change the permissions on the following directories to be writable
touch config/config.php
chmod 666 config/config.php

chmod 0755 _cache/config/ _cache/feed/ _cache/page/ _cache/query/ _cache/session/ _cache/template/ file/backup/ file/global/ file/perpage/ file/thumb/ xml/

chmod 0660 config/lock config/lock_ap sitemap.xml

reset after installation / upgrade
chmod 644 config/config.php

Path for session values

Check if the provided path for CACHE_SESSION_DIR is correct. The default value is /tmp but may vary in your environment.
Furthermore you may want to change this to a custom folder[link16] for the application (e.g. _cache/session) .

 define('CACHE_SESSION_DIR',		'/tmp');


If your webserver's URLs are not directly related to physical file paths, you will need to use RewriteBase[link17] in every .htaccess file where you want to use RewriteRule directives.
RewriteBase /

RewriteBase /folder/

e.g. .htaccess
<IfModule mod_rewrite.c>
 RewriteEngine on

 RewriteBase /folder/


Path to user and group profile

The path for link to the users page or profile ((user:UserName UserName)) is set in config['users_page'].

The path for link to the group page or profile ((group:GroupName GroupName)) is set in config['groups_page'].

New config settings

Please check the Change Log[link2] for more details.

Custom CSP settings

e.g. example for your custom CSP settings

	default-src 'self';
	script-src 'self' 'unsafe-inline';
	style-src 'self' 'unsafe-inline';
	img-src * data:;
	media-src 'self' archive.org *.youtube.com *.youtube-nocookie.com dailymotion.com;
	object-src 'self' archive.org *.googlevideo.com *.ytimg.com *.youtube.com *.youtube-nocookie.com dailymotion.com;
	child-src 'self' archive.org *.youtube.com *.youtube-nocookie.com *.dailymotion.com;

Admin Panel

The Admin panel[link20] remains in Beta stage.

If your Admin panel gets locked reset config/lock_ap from 1 to 0


All themes[link21] other than default are outdated and unmaintained and were moved to the community/theme[link22] section. If you like to use one of them, please help to update this particular theme.

If you want to keep your layout, you have to use a program like Meld or WinMerge to merge your CSS and other theme files with the new files in the folder wacko/theme/default[link23].

A Guide for the new template engine[link5] will hopefully follow soon. Nevertheless you can write or adapt your theme without using the template engine.


Backwards Compatibility

We dropped compatibility code for older PHP and MySQL versions. R5.5 requires at least PHP 7.0 and MySQL 5.6. To use WackoWiki with older PHP or MySQL versions, use the older (but still maintained) branch of 5.4.x releases, which you can find on the download page[link30].

Known Issues

All known issues[link3] are tracked in our Bug Tracker.[link31]
  1. Session duration issue[link32]
  2. Missing route cases (needs fix)
    1. CSS files in RECOVERY mode
  3. activate the option multilanguage in the installer / secondary config to avoid the following issues:
    1. chars from another charset are not converted to HTML unicode entities
    2. This issue will become obsolete with our upcoming Unicode ready Wiki engine.
  4. WikiEdit won't show if you use [et] or [pl] as page language with the auto complete feature -> SyntaxError: invalid range in character class
    1. Workaround: disable Autocomplete under user settings -> extended -> Complete wikilinks by Ctrl+Space


New debug functions

  1. to write a parameter in the debug log 
    • Ut::dbg('debug_variable', $parameter);
  2. add debug output to DEBUG file and popup-window in browser
    • Diag::dbg($parameter);
    • to highlight the debug output in the console add '[BLUE|GOLD|ORANGE|RED]' as the first argument
      • e.g. Diag::dbg('GOLD', $parameter);

In both cases it writes the $parameter to the log in the main directory wacko/DEBUG when the config debug is enabled.
Be aware the log isn't emptied automatically. Ensure that the file wacko/DEBUG can be created and is writable.
touch DEBUG
chmod 0664 DEBUG

Access config values

HTTP functions

SQL functions


What's Planned

WackoWiki is pretty usable now. There are of course few peculiarities and bugs, some old ones and some new ones which are waiting to be fixed. Now the main task is to make the Wiki engine better, reduce bugs and make it more stable.

Apart from that following features are planned to be implemented[link33]:
  1. extended ACLs
  2. WackoFormatter rewrite
  3. responsive device-agnostic theme
  4. improve GUI usability
  5. filters for lists
  6. faceted search
  7. UTF8 support[link34] -> PHP 7/8 and utf8mb4 only
  8. Libsodium, Argon2 Password Hash[link35]
  9. archive table
  10. guest settings


Those interested in following and contributing to the development of WackoWiki can check out the hg repository, and participate in the discussions on the WackoWiki Development and contribute patches. Policies and the current state of the project and plans are available in the Dev section[link36] of the wiki.


Leave a comment here if something is not clear or you have further questions.


Of note, is the large contribution of Serge Terekhov[link40] to this release.