===6.1===
(05.10.2024) ((commit:a40170516c866b11222c7995ba22adb4c6bd51d6 a401705)) -> **M26** ++(((/Dev/Release/R6.1/ReleaseNotes Release Notes)))++
As work on WackoWiki 6.1 is ((/Dev/Release/R6.1/ToDo still underway)), this is an incomplete list of changes.
{{toc numerate=1 from="h3" to="h6"}}
====Configuration====
=====primary config=====
1. new
* ##db_vendor##
1. renamed
* ##sql_mode_strict## to ##sql_mode##
* ##0## - server
* ##1## - session lax
* ##2## - session strict
=====secondary config=====
1. 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##
1. renamed
* ##default_typografica## -> ##typografica##
* ##img_max_thumb_width## -> ##max_thumb_width##
* ##img_create_thumbnail## -> ##create_thumbnail##
1. removed
* ##dst##
* ##footer_rating##
=====theme config=====
* ##custom_menus## - shows custom menu options (hide_toc, hide_index, tree_level)
=====constants=====
1. new
* ##COOKIE_SAMESITE## : 'Strict', 'Lax' (default), 'None'
* ##DB_ERROR_MODE## : 0 - silent (default), 1 - warning, 2 - exception
1. renamed
* ##UPLOAD_PER_PAGE_DIR## to ##UPLOAD_LOCAL_DIR##
* ##SQL_MODE_PERMISSIVE## to ##SQL_MODE_LAX##
1. removed
* ##XML_HTMLSAX3##, see autoload.conf
=====conf files=====
1. changed
1. ((source:master/src/config/csp_custom.conf csp_custom.conf))
1. ((source:master/src/config/csp_.conf csp.conf))
1. ((source:master/src/config/autoload.conf autoload.conf))
2. ((source:master/src/config/router.conf router.conf))
====Core====
* added option to set the ((https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite SameSite attribute)), default ##'Lax'## , see constants.php
%%(info type="note")
While ##'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 the ##xml/## folder
* %%Sitemap: https://wiki.example.com/xml/sitemap.xml.gz%%
* disables JavaScript in all SVGs via CSP directive
* COLLATE ((/Dev/Release/R6.0/BinaryTag tag column)) case-insensitive for ORDER BY and LIKE
* %%(sql) ORDER BY tag COLLATE utf8mb4_unicode_520_ci ASC %%
* %%(sql) WHERE tag COLLATE utf8mb4_unicode_520_ci LIKE %%
* removed polls class
* uses now the ((IntlDateFormatter)) for localizing date and time formats & determining (?DST Daylight saving time?) according the set timezone
* adds ((ErrorMode 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, use ##db->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)<?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:## and ##Pragma:## 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 set ##sess->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
=====Methods=====
This is only a random selection.
* added
* ##number_format()##
* uses intl ##NumberFormatter## class
* ##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 ((https://unicode-org.github.io/icu/userguide/format_parse/datetime/ ICU Dates and Times Format)) patterns
* 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
* renamed
* ##binary_multiples()## -> ##factor_multiples()##
* ##get_time_formatted()## -> ##sql_time_format()##
* ##theme_*()## -> ##theme_template($section, $mod = '')##
* removed
* page rating related functions
=====Folders=====
* renamed folder ##wacko## to ##src##
====Database====
1. added field
1. ##acl_id## INT(10) to acl table
2. ##group_member_id## INT(10) to usergroup_member table
3. ##typografica## TINYINT(1) to page table
4. ##file_hash## CHAR(40) to file table
* changed field
1. ##timezone## to ##VARCHAR(100)## in user_setting table
2. ##query## to ##VARCHAR(255)## in cache table
3. ##category## to ##VARCHAR(255)## in category table
4. ##category_description## to ##TEXT## in category table
* renamed field
1. ##lost_password_request_count## to ##password_request_count## in user table
2. ##uploaded_dt## to ##created## in file table
3. ##modified_dt## to ##modified## in file table
4. ##name## to ##hash## in cache table
* removed field
1. ##footer_rating## from page table
2. ##typografica## from user_setting table
3. ##dst## from user_setting table
* added index
1. ##idx_user_id## to menu table
2. ##idx_page_id## to menu table
3. ##idx_lang## to menu table
4. ##idx_user_id## to watch table
5. ##idx_page_id## to watch table
6. ##idx_file_name## to file table
* removed table
1. ##poll##
1. ##rating##
((/Dev/Release/R6.1/Database Database schema)) changes
====Installer====
* removed legacy code from upgrade process, requires now at least WackoWiki **!!(green)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## and ##db_vendor##
* ((/Dev/Release/R6.1/SQLModesRevisited mainly to solve SQL mode incompatibilities))
====Formatters====
* added **noinclude** formatter
* ##""%%(noinclude) content not shown when embedded via include action %%""##
* The ((/Doc/English/Actions/Include 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
* ((/Dev/Projects/Typografica Typografica))
* corrector is now turned off by default (##typografica##)
* fixed regex for quotes
* 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]]""## ((Footnotes 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
====Actions====
* added ##help=1## option to show all available parameters
* ((ActionHelpOption 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##: adds ##version## parameter, ##0## links to page, ##1## links to version of the page (default)
* ##toc##: adds ##start## parameter for toc numbering
* ##search##:
* adds language filter to search in multi-language mode
* ((ImproveSearch 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## - ((/Doc/English/Actions/AdminReplace allows administrators to do a global string find-and-replace on all wiki pages))
* ##blog## - ((/Doc/English/Actions/Blog creates a blog in the namespace of your choice))
* ##editsection## - mainly for internal use
* ##gallery## - moved from community folder
* ##navigation## - ((/Dev/Release/R6.1/NavigationAction allows to set a backward and forward link)) to scroll between pages
* removed
* ##polls##
* ##pollsadd##
* ##pollsarchive##
* ##pollspreview##
* ##mostrated##
====Handlers====
* ##edit##: added ((/Dev/NewFeatures/SectionEdit 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 shows ##db->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
====Themes====
* assigns styles for table headers and columns via ##:nth-child()##
* %%(hl css) /* 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
* %%(hl diff)
-$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
* 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
====WikiEdit====
* ((WikiEdit ECMAScript 2015 Migration))
* added Unicode support
* added button and icon for ##""[[^ footnote]]""## and ##""{{action}}""##
* added WikiEdit icons for dark mode
====Admin panel====
1. pages: determines ##news_levels## according to the given settings
2. 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)
2. appearance: added option to set a theme color for the address bar
3. removed obsolete convert module
4. sets ##DEFAULT## for all fields in backup module script
5. restore: skips ##is_executable()## check for Windows
6. 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 the ##backup.log## with a new JSON formatted version.
7. added syndication module
====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.
====Packages====
updated
* ((https://github.com/Bad-Behaviour/badbehaviour Bad Behaviour)) 2.2.25
* ((https://github.com/zenorocha/clipboard.js clipboard.js)) v2.0.11
* ((https://hashids.org/php/ Hashids)) 5.0.2 ++(((https://github.com/ivanakimov/hashids.php/blob/master/CHANGELOG.md Changelog)))++
* ((https://github.com/JBlond/php-diff php-diff)) 2.4.0 ++(((https://github.com/JBlond/php-diff/blob/master/changelog.md Changelog)))++
* ((https://github.com/PHPMailer/PHPMailer PHPMailer)) 6.9.2 ++(((https://github.com/PHPMailer/PHPMailer/blob/master/changelog.md Changelog)))++
* ((https://github.com/PHPThumb/PHPThumb PHP Thumb Library)) 2.3.1
* ((/Dev/Projects/SafeHTML SafeHTML)) 1.3.13
* ((https://simplepie.org/ SimplePie)) 1.8.0 ++(((https://github.com/simplepie/simplepie/blob/master/CHANGELOG.md Changelog)))++
* ((https://github.com/darylldoyle/svg-sanitizer svg-sanitizer)) 0.20
* Text_Highlighter 0.8.0
* ((/Dev/Projects/WikiEdit WikiEdit)) 3.23
See ((/Dev/Release/R6.1/Dependencies core dependencies))
----
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.1, you can browse the ((https://bitbucket.org/wackowiki/wackowiki/commits/all Commit log)), the ((https://wackowiki.org/bugs/changelog_page.php Bug Tracker Log)) and ((ToDo)) list.