6.1 Change Log
6.1
(03.09.2025) d777cb5 -> M29 (Release Notes | by release)
1. Features
- section edit support
- thumbnail creation
- global string find-and-replace action
2. Configuration
2.1. primary config
- new
-
db_vendor
-
- renamed
-
sql_mode_stricttosql_mode-
0- server (default) -
1- session lax -
2- session strict
-
-
2.2. secondary config
- new
-
american_date -
comments_offset -
email_confirmation -
email_subject_prefix -
forbidden_email_domains -
jpeg_quality -
login_notice -
max_image_width -
max_page_size -
min_thumbnail_distance -
news_structure -
section_edit -
session_notice -
svg_sanitizer -
theme_color -
thumbnail_image_area -
upload_allowed_exts -
upload_translit_lower -
xml_sitemap_gz
-
- renamed
-
default_typografica->typografica -
img_max_thumb_width->max_thumb_width -
img_create_thumbnail->create_thumbnail
-
- removed
-
dst -
footer_rating
-
2.3. theme config
-
custom_menus- shows custom menu options (hide_toc, hide_index, tree_level)
2.4. constants
- new
-
COOKIE_SAMESITE: 'Strict', 'Lax' (default), 'None' -
DB_ERROR_MODE: 0 - silent (default), 1 - warning, 2 - exception
-
- renamed
-
UPLOAD_PER_PAGE_DIRtoUPLOAD_LOCAL_DIR -
SQL_MODE_PERMISSIVEtoSQL_MODE_LAX
-
- removed
-
XML_HTMLSAX3, see autoload.conf
-
2.5. conf files
3. Core
- added option to set the SameSite attribute, default
'Lax', see constants.phpWhile'Strict'provides stronger protection against CSRF attacks, it actually prevents the user's session from being recognized when clicking a link from a notification e-mail, causing WackoWiki to start an anonymous session even if the user is already logged in.
- added thumbnail support
- use of new
str_contains(),str_starts_with(),str_ends_with()functions and Match expression - use of PHP null coalescing assignment operator
??= - added option to compress sitemap.xml
- writes
sitemap.xmlnow by default into thexml/folder-
Sitemap: https://wiki.example.com/xml/sitemap.xml.gz
-
- disables JavaScript in all SVGs via CSP directive
- COLLATE tag column case-insensitive for ORDER BY and LIKE
-
ORDER BY tag COLLATE utf8mb4_unicode_520_ci ASC
-
WHERE tag COLLATE utf8mb4_unicode_520_ci LIKE
-
- removed polls class
- uses now the IntlDateFormatter for localizing date and time formats & determining DST according the set timezone
- adds option to set DB error mode for MySQLi and PDO driver
- set missing
contextfor comments and news feed - set system language for all feeds
- fixed various SQL Strict mode issues
- show file captions also in print handler
- added option to show the session termination notices (default: off)
- added option to show 'Welcome back ...' notices (default: off)
- removed
$this->user_tableassignment, usedb->table_prefix . 'user'instead - new
$this->prefixalias for$this->db->table_prefixfor better readability in Wacko class - fixed wrong encoding of page
tagin IRI format with mode_rewrite off - added ability to add custom message sets under
lang/custom.<lang>.phpapart from themes-
<?php $custom_translation = [ // my coffee action 'BuyMilk' => 'Milch kaufen', 'MakeCoffee' => 'Kaffee machen', 'AddSugar' => 'Zucker hinzufügen', ];
-
-
notify_watcher(): adds direct link to diff mode in email body - removed deprecated usage of
Expires:andPragma:header - fixed
If-Modified-Sinceconditional requests issues - fixed invalid
ETag - fixed various
Cache-Controlheader issues - re-check for anonymous user before storing cache
-
soft_login()may setsess->user_profile
-
- removed redundant
setlocale()call - fixed not showing read ACL
$pages in the default menu for logged in users with no own bookmarks defined - make date format depended on localization and user preferences
- turn off double-click editing on pages with actions having forms
3.1. Methods
This is only a random selection.
- added
-
number_format()- uses intl
NumberFormatterclass
- uses intl
-
mark_read() -
extract_sections($body, $section_id, $mode, $new_section = '') -
get_favicon() -
get_xml_file($name) -
date_format($unix_time, $pattern)- uses
IntlDateFormatter::format() - for
$patternsee ICU Dates and Times Format patterns
- uses
-
- modified
-
get_page_path($tag = '', $titles = false, $separator = '/', $linking = true, $root_page = false)- added
$tagas first argument, this changes the order of the parameters
- added
-
- renamed
-
binary_multiples()->factor_multiples() -
get_time_formatted()->sql_time_format() -
theme_*()->theme_template($section, $mod = '')
-
- removed
- page rating related functions
3.2. Folders
- renamed folder
wackotosrc-
community/- maintained community extensions -
src/- installable distibution
-
4. Database
- added field
-
acl_idINT(10) to acl table -
group_member_idINT(10) to usergroup_member table -
typograficaTINYINT(1) to page table -
file_hashCHAR(40) to file table -
date_preferenceVARCHAR(20) to user_setting table -
comments_offsetTINYINT(1) to user_setting table
-
- changed field
-
timezonetoVARCHAR(100)in user_setting table -
querytoVARCHAR(255)in cache table -
captiontoDEFAULT NULLin file table -
categorytoVARCHAR(255)in category table -
category_descriptiontoTEXTin category table
-
- renamed field
-
lost_password_request_counttopassword_request_countin user table -
uploaded_dttocreatedin file table -
modified_dttomodifiedin file table -
nametohashin cache table
-
- removed field
-
footer_ratingfrom page table -
typograficafrom user_setting table -
dstfrom user_setting table
-
- added index
-
idx_user_idto menu table -
idx_page_idto menu table -
idx_langto menu table -
idx_user_idto watch table -
idx_page_idto watch table -
idx_file_nameto file table
-
- removed table
-
poll -
rating
-
Database schema changes
5. Installer
- removed legacy code from upgrade process, requires now at least WackoWiki 6.0.22
- normalized inserting pages
- indicates now in the header that you're running a Installation or Upgrade
- adds option to set
sql_modeanddb_vendor - add option to set wiki as public or private
- set more strict
writeandcreateACLs for system and user pages
6. Formatters
- adds noinclude formatter
-
%%(noinclude) content not shown when embedded via include action %% - The include action strips the content enclosed by the noinclude tags.
-
<!--noinclude-->,<!--/noinclude--> - for info boxes, navigation, etc.
-
-
- adds alternate grave accents
``syntax to percent signs%%syntax- allows to work around parsing conflicts, e.g. the text already contains percent signs, which may be mistakenly considered markup
- enables to wrap formatters in a formatter, e.g. wrapping a CSS highlighter in a details formatter
- fixed list regex for letters & Roman numerals
- Typografica
- corrector is now turned off by default (
typografica) - fixed regex for quotes
- corrector is now turned off by default (
- Paragrafica: added missing
<dd>and<dt>wronginators -
<ignore>is terminator tag for Paragrafica - adds support for AVIF, requires at least LibGD 2.3.2 and PHP 8.2
- adds support for JPEG XL, LibGD and PHP support pending
- allows multi-line actions
-
{{action title="" info= ... }}
-
-
[[^ footnote]]extended syntax for auto-generated footnote- you can mix individual denominators and auto-numbering (introductory footnotes & reference footnotes)
-
[[^§ footnote]]allows you to define individual footnote denominators - allowed denominators are alphanumeric characters and
*, †, ‡, §, ‖, ¶ - If a already defined footnote denominator is reused, it defaults back to auto-numbering.
-
[[^#10 footnote]]resets start for auto-numbering -
[[^c]]an empty reference refers to an existing footnote, if there is one
- add link support for
geo:,git:,tel:,sftp:andssh:URI scheme
7. Actions
- added
help=1option to show all available parameters- optional localization is available
-
Description: Creates a link to the edit handler, if the user has the right to edit the given page. Usage: {{edit}} Options: [page="PageName"] [text="your text"]
-
hashid: addsversionparameter,0links to page,1links to version of the page (default) -
toc: addsstartparameter for toc numbering -
search:- adds language filter to search in multi-language mode
- adds full words highlight mode (default), use
hl_simple=1for ideographic languages such as Chinese and Japanese - remembers now 'Search in title only' selection across search pages
-
login: removed check and rehash of legacy password formats -
adminupdate: adds option to set missing MIME type for files and option to set missing file hash for uploaded files -
files: added sorting and filter options to form, e.g.{{files form=1 options=1 all=1 media=1}} -
upload: fix uploading is rejected whenupload_max_sizeis0 - added
-
admin_replace- allows administrators to do a global string find-and-replace on all wiki pages -
blog- creates a blog in the namespace of your choice -
editsection- mainly for internal use -
gallery- moved from community folder -
navigation- allows to set a backward and forward link to scroll between pages
-
- removed
-
polls -
pollsadd -
pollsarchive -
pollspreview -
mostrated
-
8. Handlers
-
edit: added section editing- Users can enable an option that allows them to edit individual sections of an article (separated by headlines) instead of loading the entire article.
-
upload:- added duplicate file notices
- ignores duplicate files
- allows now hyphen-minus in file name
- e.g.
wackowiki-6.1.29.zip
- e.g.
- it adds uploaded files to file table in SQL strict mode again, changed default value for caption in file table to
DEFAULT NULL - checks if the MIME type of the uploaded file matches the file extension (may result in false negatives)
-
moderate: fixed unreachable sub-forum options to delete, move, rename and merge topics -
print: sets numerated links always as absolute URL - removed
ratehandler -
new: does no longer showsdb->root_pageas predefined cluster (as it is often mistaken as root)-
/NewPage- new page/cluster in root -
/HomePage/NewPage- possible, however the breadcrumbs navigation may incorrectly suggest that HomePage is the root directory
-
- add copy to clipboard button for page tag in
propertiesand file syntax infilemetahandler
9. Themes
- assigns styles for table headers and columns via
:nth-child()-
/* users table */ .users col:nth-child(n+1):nth-child(-n+3) { width: 5px; } .users col:nth-child(4), .users col:nth-child(n+6) { width: 20px; }
-
- CSS: uses
var()for font-family, specific color attributions and similar - breadcrumbs: add the new first argument in the
$this->get_page_path($tag)call in header.php-
-$tpl->breadcrumbs = $this->get_page_path(false, ' > ', true, true); +$tpl->breadcrumbs = $this->get_page_path(null, false, ' > ', true, true);
-
- provisional RTL support for
defaulttheme- added
[dir=rtl]CSS classes
- added
- set visibility tag colors for access modes
- default theme
- print and source tab now takes the revision into account
- browser print mode: shows now only
<article>content - uses
:focus-withinpseudo selector for dropdown menus
- added breeze icons for dark mode
- rename language files for theme to
-
lang/theme.<lang>.php -
lang/theme.all.php
-
- add icons for
archive:,geo:andtel:links
10. WikiEdit
- ECMAScript 2015 Migration
- added Unicode support
- added button and icon for
[[^ footnote]]and{{action}} - added WikiEdit icons for dark mode
11. Admin panel
- pages: determines
news_levelsaccording to the given settings - upload:
- lets you now set other groups than
Adminsto allow file upload - added option to transliterate all file names to lowercase (new default: off)
- lets you now set other groups than
- appearance: added option to set a theme color for the address bar
- removed obsolete convert module
- sets
DEFAULTfor all fields in backup module script - restore: skips
is_executable()check for Windows - changed format for backup.log to JSON
- You have to remove the backups you've created prior to 6.1.21 from the
file/backup/folder or replace thebackup.logwith a new JSON formatted version.
- You have to remove the backups you've created prior to 6.1.21 from the
- added syndication module
- formatter: add option
american_dateto set thedefaultdate format for English to- [mdy]
MM/dd/y(true) - [dmy]
dd-MM-y(false)
- [mdy]
- users: allows Admins to change passwords for other users
- basic: add option
comments_offsetto display either the first or last comments page by default
12. Translations
- complete Chinese Simplified translation
- added Arabic, Finnish, Czech, Norwegian, Romanian, Ukrainian, Swedish and Portuguese-Brasil translation
- Requires proofreading by native speakers via Crowdin (Pre-MT)
- added initial language files for Indonesian, Persian and Tamil (work in progress, help welcome)
- uses now English as fallback for missing message sets
- now you can add message sets for your own scripts under
lang/custom.<lang>.php- the user must create the files himself, e.g.
custom.fi.phpusing$custom_translation = []; - This way, the user's own message sets are not accidentally overwritten by updates.
- the user must create the files himself, e.g.
13. Packages
updated
- Bad Behaviour 2.2.26
- clipboard.js v2.0.11
- freeCap 1.4.6
- Hashids 5.0.2 (Changelog)
- php-diff 2.5.0 (Changelog)
- PHPMailer 6.10.0 (Changelog)
- PHP Thumb Library 2.3.2
- SafeHTML 1.3.13
- SimplePie 1.9.0 (Changelog)
- svg-sanitizer 0.22
- Text_Highlighter 0.8.0
- WikiEdit 3.23
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.1, you can browse the Commit log, the Bug Tracker Log and ToDo list.