5.5 Release Notes

R5.5

(31.12.2019) b4095e3 -> M17 (Change Log)



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

1. 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
  6. new template engine
  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. added Bad Behaviour as extension
  12. public registration moderation by admin
  13. using password_hash() and password_verify() API
  14. file link tracking
  15. improved notification handling
  16. localized WikiEdit and Admin panel

milestones

  • beta - 14.12.15
  • rc - 18.04.16
  • rc2 - 12.08.16
  • rc3 - 05.06.17
  • final - 25.08.17
  • m17 - 31.12.19

2. Download

wacko.r5.5.17.zip

  • SHA1: b27118eff92927ef134bc3bbfb2eb517614f85ef
  • File updated to change set b4095e3bda506094d298e6b6a3c293eb3db0f9d6

Repo files (including community folder)


Clone repo

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

3. Upgrade path

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


Please read the upgrade notices carefully.

4. Installation

Installation guide

4.1. Requirements

requires now

  • PHP >= 7.0 (PHP 7.3 recommended)
  • PHP Extensions
    • bcmath, ctype, gd, iconv, json, mbstring, openssl, pcre, spl
  • Apache >= 2.4
    • mod_rewrite (recommended)
  • SQL database system, one of:
    • MariaDB >= 10
    • MySQL >= 5.6

Step by step as Installer Screenshots.


Preparing the Database for Installation


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

  • [cp1252 West European] for Latin 1
  • [cp1251 Windows Cyrillic] for Russian
  • [cp1257 Windows Baltic] for Estonian
  • [ISO 8859-2 Central European] for Polish and Hungarian
  • [ISO 8859-7 Greek] for Greek

4.2. File Permissions

Change the permissions on the following files and directories to be writable


Example:
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

4.3. 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 for the application (e.g. _cache/session) .


constants.php:

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

4.4. 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'].


4.5. New config settings


Please check the Change Log for more details.

5. Admin Panel

The Admin panel remains in beta stage.

  • to login define the recovery_password in the config.php file first
    1. call the {{admin_recovery}} action as Admin and generate the password hash for your recovery_password
    2. add the password hash: 'recovery_password' => 'add hash here',
  • Don't forget to delete the _cache/config/config.php afterwards.
  • you must be logged in as member of the Admin group in the first place to access the admin panel
  • call yourwiki/admin.php
  • enter your recovery_password

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

6. Themes

All themes other than default are outdated and unmaintained and were moved to the community/theme 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.


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

7. 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 previous branch of 5.4.x releases, which you can find on the download page.

8. Known Issues

All known issues are tracked in our Bug Tracker.

  1. Session duration issue
  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

9. Developers

9.1. 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	

9.2. Access config values

  • new: db->users_page
  • legacy: config['users_page']

9.3. HTTP functions

  • new
    • http->redirect()
    • http->invalidate_page()

9.4. SQL functions

  • new
    • db->sql_query()
    • db->load_all()
    • db->load_single()

10. Credits

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