6.1 Change Log
6.1
(05.10.2024) a401705[link1] -> M26 (Release Notes[link2])As work on WackoWiki 6.1 is still underway[link3], 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
-
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
- changed
- csp_custom.conf[link4]
- csp.conf[link5]
- autoload.conf[link6]
- router.conf[link7]
2. Core
- added option to set the SameSite attribute[link8], 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[link9] 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[link10] for localizing date and time formats & determining DST according the set timezone
- adds option to set DB error mode for MySQLi and PDO driver[link11]
- 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
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[link12] 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
-
- 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[link13] 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
5. Formatters
- added noinclude formatter
-
%%(noinclude) content not shown when embedded via include action %%
- The include action[link15] 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[link16]
- 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[link17]- 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[link18]
-
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[link19] (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[link20] -
blog
- creates a blog in the namespace of your choice[link21] -
editsection
- mainly for internal use -
gallery
- moved from community folder -
navigation
- allows to set a backward and forward link[link22] to scroll between pages
-
- removed
-
polls
-
pollsadd
-
pollsarchive
-
pollspreview
-
mostrated
-
7. Handlers
-
edit
: added section editing[link23]- 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[link24]
- 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
11. Translations
- added Persian language
- complete Chinese Simplified translation
- 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[link25] 2.2.25
- clipboard.js[link26] v2.0.11
- Hashids[link27] 5.0.2 (Changelog[link28])
- php-diff[link29] 2.4.0 (Changelog[link30])
- PHPMailer[link31] 6.9.2 (Changelog[link32])
- PHP Thumb Library[link33] 2.3.1
- SafeHTML[link34] 1.3.13
- SimplePie[link35] 1.8.0 (Changelog[link36])
- svg-sanitizer[link37] 0.20
- Text_Highlighter 0.8.0
- WikiEdit[link38] 3.23
See core dependencies[link39]
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.1, you can browse the Commit log[link40], the Bug Tracker Log[link41] and ToDo[link3] list.
- [link1] https://bitbucket.org/wackowiki/wackowiki/commits/a40170516c866b11222c7995ba22adb4c6bd51d6
- [link2] https://wackowiki.org/doc/Dev/Release/R6.1/ReleaseNotes
- [link3] https://wackowiki.org/doc/Dev/Release/R6.1/ToDo
- [link4] https://bitbucket.org/wackowiki/wackowiki/src/master/src/config/csp_custom.conf
- [link5] https://bitbucket.org/wackowiki/wackowiki/src/master/src/config/csp_.conf
- [link6] https://bitbucket.org/wackowiki/wackowiki/src/master/src/config/autoload.conf
- [link7] https://bitbucket.org/wackowiki/wackowiki/src/master/src/config/router.conf
- [link8] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
- [link9] https://wackowiki.org/doc/Dev/Release/R6.0/BinaryTag
- [link10] https://wackowiki.org/doc/Dev/Release/R6.1/IntlDateFormatter
- [link11] https://wackowiki.org/doc/Dev/Release/R6.1/ErrorMode
- [link12] https://unicode-org.github.io/icu/userguide/format_parse/datetime/
- [link13] https://wackowiki.org/doc/Dev/Release/R6.1/Database
- [link14] https://wackowiki.org/doc/Dev/Release/R6.1/SQLModesRevisited
- [link15] https://wackowiki.org/doc/Doc/English/Actions/Include
- [link16] https://wackowiki.org/doc/Dev/Projects/Typografica
- [link17] https://wackowiki.org/doc/Dev/Release/R6.1/Footnotes
- [link18] https://wackowiki.org/doc/Dev/Release/R6.1/ActionHelpOption
- [link19] https://wackowiki.org/doc/Dev/Release/R6.1/ImproveSearch
- [link20] https://wackowiki.org/doc/Doc/English/Actions/AdminReplace
- [link21] https://wackowiki.org/doc/Doc/English/Actions/Blog
- [link22] https://wackowiki.org/doc/Dev/Release/R6.1/NavigationAction
- [link23] https://wackowiki.org/doc/Dev/NewFeatures/SectionEdit
- [link24] https://wackowiki.org/doc/Dev/Release/R6.1/WikiEdit
- [link25] https://github.com/Bad-Behaviour/badbehaviour
- [link26] https://github.com/zenorocha/clipboard.js
- [link27] https://hashids.org/php/
- [link28] https://github.com/ivanakimov/hashids.php/blob/master/CHANGELOG.md
- [link29] https://github.com/JBlond/php-diff
- [link30] https://github.com/JBlond/php-diff/blob/master/changelog.md
- [link31] https://github.com/PHPMailer/PHPMailer
- [link32] https://github.com/PHPMailer/PHPMailer/blob/master/changelog.md
- [link33] https://github.com/PHPThumb/PHPThumb
- [link34] https://wackowiki.org/doc/Dev/Projects/SafeHTML
- [link35] https://simplepie.org/
- [link36] https://github.com/simplepie/simplepie/blob/master/CHANGELOG.md
- [link37] https://github.com/darylldoyle/svg-sanitizer
- [link38] https://wackowiki.org/doc/Dev/Projects/WikiEdit
- [link39] https://wackowiki.org/doc/Dev/Release/R6.1/Dependencies
- [link40] https://bitbucket.org/wackowiki/wackowiki/commits/all
- [link41] https://wackowiki.org/bugs/changelog_page.php