6.2 Change Log

6.2

(03.03.2026) 6132f68 -> M1 (Release Notes | by release)


As work on WackoWiki 6.2 is still underway, this is an incomplete list of changes.



1. Features

  • add SQLite support

2. Configuration

2.1. secondary config

  1. new 
    • reserved_namespaces
    • tools_page
    • whatsnew_page
  2. removed
    • disable_npjlinks
    • session_prefix

2.2. constants

  1. new 
    • DATA_DIR
  2. renamed
    • UPLOAD_BACKUP_DIR -> BACKUP_DIR

2.3. conf files

  1. changed
    1. autoload.conf
    2. csp_custom.conf
    3. csp.conf
    4. permissions_policy.conf
    5. router.conf

3. Core

  • make sess->date_pattern dependent on $this->user_lang
  • rewrote SQL queries to work with MySQL as well as SQLite
  • register custom regexp function to use REGEXP with SQLite
  • fix missing route case for CSS files in RECOVERY_MODE
  • add cookie prefixes (RFC 6265bis)
  • add CSP nonces to JavaScript

3.1. Classes

  • added
    • CookiePrefix
    • DbSqlite

3.2. Methods

This is only a random selection.


Add functions to abstract SQL syntax and function differences between MySQL and SQLite

  • utc_dt()
  • date_sub(int $value, string $interval)
  • binary()
  • collate()
  • limit()

These functions reside in the Dbal class mainly because the DbPDO class serves SQLite as well MySQL.

3.3. Folders

new folder

  • file/data – .htaccess protected folder for SQLite database file (see DATA_DIR in constants.php).
  • vendor/ – is managed by Composer and is only part of the distribution package

It is strongly recommended to place the database file outside the webroot for security, but if you must place it within the webroot, use a filename like file/data/.ht.sqlite to help prevent direct access via the web server.

4. Database

added field

  • editor_height INT(10) to user_setting table
  • autosave_draft TINYINT(1) to user_setting table
  • dark_mode TINYINT(1) to user_setting table
  • syntax_highlighting TINYINT(1) to user_setting table
  • live_preview TINYINT(1) to user_setting table
  • wikiedit_toolbar VARCHAR(2048) to user_setting table


Database schema changes

5. Installer

  • add SQLite table creation script
  • add _t() function for $lang[] array, uses now English as fallback for missing message sets
  • add system page with the whatsnew action and set it as default bookmark
  • add private system page with with the admincache and admin_recovery action and set it as bookmark for the admin
  • the installer sets now bookmarks for the admin account, therefore it no longer shows the default bookmarks for the admin in the menu by default
  • add mandatory installer password protection
    • It is imperative to set the password for the installer in the config/lock_setup file.
    • The password must be set, it won't accept an empty password.
    • This requires the user to add a password before he can proceed with the installation or upgrade.
    • The password in the file is in plain text and should not be the same as the recovery password.

6. Formatters

  • change markup for subscript to ,,subscript,,
  • allows now [px|%|em|rem] with wrapper_width
  • extend table markup allowing table caption, cell spans, width and cell attributes (WIP, experimental)
    • ?| table caption |?
    • !| col | col |!
    • ^| header | cell ||
    • || cell ^ header ||
    • ||(attr=value) cell | cell ||
    • attributes:
      • align = [center|left|right|justify]
      • bgcolor = [blue|red|green|x11colors]
      • class = "alternate sticky defaultcenter col1left col4right"
      • colspan = number
      • id = id_name
      • rowspan = number
      • scope = [row|col|rowgroup|colgroup]
      • side = [top|bottom]
      • span = number
      • type = table_style
      • valign = [top|middle|bottom]
      • width = number[px|%|em|rem]
    • CSS selectors
      • alternate alternating row shading
      • sticky for sticky header
      • default[left|center|right|top|middle|bottom]
      • colN[left|center|right|top|middle|bottom] N stands for the column number (1–25)
      • col-N[left|center|right|top|middle|bottom] Align the cells in column N counting from the right (1–9).

7. Actions

  • menu: fix not showing 'Set a bookmark' form in menu action
  • whatsnew:
    • add filter for pages, comments and files
    • show also edited comments in list
  • no longer use link table for mostcommented and mostpopular action

8. Handlers

  • show: Displays the number of comments in the article header and provides a link to the comments section.
  • fix possible invalid selector tokens for copy to clipboard
  • replace Clipboard.js library with native Clipboard API script
  • add double click edit for comments
  • add virtual _ prefix to handlers, e.g. page/_edit

9. Themes

  • default theme
    • dark mode integration
  • x11colors.css
    • replace .mark-[blue|green|red] with [xblue|xgreen|xred] to not overwrite default definitions in wacko.css
  • wacko.css: add CSS classes to align text in table cell
    • .text-[center|left|right|justify]
    • .vertical-[top|middle|bottom]

10. WikiEdit

  • ES2023+ compatible
  • add popup form for creating links and tables
  • replace single-level undo with full undo/redo stack
  • add autosave functionality
  • add search & replace feature
  • add fullscreen mode
  • add widescreen mode
  • add live preview feature
  • fix autocomplete selection issue
  • add syntax highlighting
  • add Markdown ↔ Wacko converter
  • add option to resize the editor height
  • add drag & drop + paste for images/files
  • add toolbar customization

js/
├── core/                  # Foundational files (loaded very early)
│   ├── helpers.js
│   ├── init-captcha.js
│   ├── init-diag.js
│   ├── init-wikiedit.js
│   └── init-usersettings.js
│
├── editor/                # Everything related to WikiEdit
│   ├── autocomplete.js
│   ├── protoedit.js
│   ├── wikiedit.js
│   └── toolbar-customizer.js
│
├── components/            # Independent features / widgets
│   ├── upload.js
│   └── ... (future files)
│
├── utils/                 # Small utility scripts (optional)
│   ├── clipboard.js
│   └── ... 
│
└── default.js             # Main / global page behaviors (double-click edit, etc.)	

11. Admin panel

  • add backup & restore for SQLite

12. Translations

  • add new message sets regarding SQLite support
  • add translation for Croatian, Thai, Turkish, Vietnamese

13. Packages

updated


See core dependencies



Note that the changelog is usually incomplete, for a complete list of changes that went into R6.2, you can browse the Commit log, the Bug Tracker Log and ToDo list.