6.1 Change Log
6.1
(30.03.2025) 107bd4d -> M27 (Release Notes)
As work on WackoWiki 6.1 is still underway, this is an incomplete list of changes.
1. Configuration
1.1. primary config
- new
-
db_vendor
-
- renamed
-
sql_mode_strict
tosql_mode
-
0
- server -
1
- session lax -
2
- session strict
-
-
1.2. secondary config
- new
-
american_date
-
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
-
1.3. theme config
-
custom_menus
- shows custom menu options (hide_toc, hide_index, tree_level)
1.4. constants
- new
-
COOKIE_SAMESITE
: 'Strict', 'Lax' (default), 'None' -
DB_ERROR_MODE
: 0 - silent (default), 1 - warning, 2 - exception
-
- renamed
-
UPLOAD_PER_PAGE_DIR
toUPLOAD_LOCAL_DIR
-
SQL_MODE_PERMISSIVE
toSQL_MODE_LAX
-
- removed
-
XML_HTMLSAX3
, see autoload.conf
-
1.5. conf files
2. 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.xml
now 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
context
for 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_table
assignment, usedb->table_prefix . 'user'
instead - new
$this->prefix
alias for$this->db->table_prefix
for better readability in Wacko class - fixed wrong encoding of
tag
in IRI format with mode_rewrite off - added ability to add custom message sets under
lang/custom.<lang>.php
apart 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-Since
conditional requests issues - fixed invalid
ETag
- fixed various
Cache-Control
header 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 from localization and user preferences
2.1. Methods
This is only a random selection.
- added
-
number_format()
- uses intl
NumberFormatter
class
- 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
$pattern
see ICU Dates and Times Format patterns
- uses
-
- modified
-
get_page_path($tag = '', $titles = false, $separator = '/', $linking = true, $root_page = false)
- added
$tag
as 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
2.2. Folders
- renamed folder
wacko
tosrc
3. Database
- added field
-
acl_id
INT(10) to acl table -
group_member_id
INT(10) to usergroup_member table -
typografica
TINYINT(1) to page table -
file_hash
CHAR(40) to file table -
date_preference
VARCHAR(20) to user_setting table
-
- changed field
-
timezone
toVARCHAR(100)
in user_setting table -
query
toVARCHAR(255)
in cache table -
category
toVARCHAR(255)
in category table -
category_description
toTEXT
in category table
-
- renamed field
-
lost_password_request_count
topassword_request_count
in user table -
uploaded_dt
tocreated
in file table -
modified_dt
tomodified
in file table -
name
tohash
in cache table
-
- removed field
-
footer_rating
from page table -
typografica
from user_setting table -
dst
from user_setting table
-
- added index
-
idx_user_id
to menu table -
idx_page_id
to menu table -
idx_lang
to menu table -
idx_user_id
to watch table -
idx_page_id
to watch table -
idx_file_name
to file table
-
- removed table
-
poll
-
rating
-
Database schema changes
4. 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_mode
anddb_vendor
- add option to set wiki as public or private
- set more strict
write
andcreate
ACLs for system and user pages
5. Formatters
- added 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 - adds support for AVIF, requires 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
6. Actions
- added
help=1
option 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
: addsversion
parameter,0
links to page,1
links to version of the page (default) -
toc
: addsstart
parameter for toc numbering -
search
:- adds language filter to search in multi-language mode
- adds full words highlight mode (default), use
hl_simple=1
for 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}}
- 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
-
7. 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
- allows now hyphen-minus in file name
- 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
rate
handler -
new
: does no longer showsdb->root_page
as 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
-
8. 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
default
theme- 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-within
pseudo selector for dropdown menus
- added breeze icons for dark mode
9. WikiEdit
- ECMAScript 2015 Migration
- added Unicode support
- added button and icon for
[[^ footnote]]
and{{action}}
- added WikiEdit icons for dark mode
10. Admin panel
- pages: determines
news_levels
according to the given settings - upload:
- lets you now set other groups than
Admins
to 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
DEFAULT
for 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.log
with 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_date
to set thedefault
date format for English to- [mdy]
MM/dd/y
(true) - [dmy]
dd-MM-y
(false)
- [mdy]
11. Translations
- added Persian language
- 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 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.php
using$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.
12. Packages
updated
- Bad Behaviour 2.2.26
- clipboard.js v2.0.11
- Hashids 5.0.2 (Changelog)
- php-diff 2.4.0 (Changelog)
- PHPMailer 6.9.2 (Changelog)
- PHP Thumb Library 2.3.1
- SafeHTML 1.3.13
- SimplePie 1.8.1 (Changelog)
- svg-sanitizer 0.20
- 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.
6.1.26 release notes
file_meta
forfile_cache
:focus-within
pseudo selector for dropdownbtn-sm
andbtn-md
soft_login()
may setsess->user_profile
setlocale()
calldb_vendor
to primary configdb_vendor
mariadb
ormysql
debug
mode thedb_vendor
can be selected in the db config page along with the SQL modesql_mode_strict
tosql_mode
0
- server (default)1
- session lax2
- session strict$
pages in the default menu for logged in users with no own bookmarks defined6.1.27 release notes
create
ACLs for default pagesdefault
thememax
values from form field for logo height and widthmin
to 8 for user password form fields in admin panely
instead ofyyyy
for ICU date formatsdate_preference
VARCHAR(20) to user_setting tableamerican_date
to secondary config