View source for 6.1 Change Log

===6.1===
(10.03.2023) ((commit:40a17a7b2475e9f5b17cf832a59cb72e1aeafcab 40a17a7)) -> **M19** ++(((/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====

=====secondary config=====
  1. new
    * ##max_page_size##
    * ##news_structure##
    * ##section_edit##
    * ##session_notice##
    * ##svg_sanitizer##
    * ##theme_color##
    * ##upload_allowed_exts##
    * ##xml_sitemap_gz##
  1. renamed
    * ##default_typografica## -> ##typografica##
  1. removed
    * ##dst##
    * ##footer_rating##

=====theme config=====
  * ##custom_menus## - shows custom menu options (hide_toc, hide_index, tree_level)

=====constants=====
  1. new
    * ##DB_ERROR_MODE## : 0 - silent (default), 1 - warning, 2 - exception

=====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==== 
  * 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
  * 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 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)
  * 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',
]
%% 

=====Methods=====
This is only a random selection.
  * added
    * ##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
    * ##get_time_formatted()## -> ##sql_time_formatted()##
    * ##theme_*()## -> ##theme_template($section, $mod = '')##
  * removed
    * page rating related functions

=====Folders=====
  * renamed folder ##wacko## to ##src##

====Database====
  * removed table
    1. ##poll##
    1. ##rating##
  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
  * 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
  * 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

((/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

====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.
  * Typografica: fixed regex for quotes
  * 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##)
  * 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====
  * ##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 multilanguage mode
  * ##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}}## (still experimental)
  * added
    * ##admin_replace## - allows administrators to do a global string find-and-replace on all wiki pages
      * ((/Doc/English/Actions/AdminReplace admin_replace beta version))
    * ##editsection## - mainly for internal use
    * ##blog## - ((/Doc/English/Actions/Blog creates a blog in the namespace of your choice))
  * removed
    * ##polls##
    * ##pollsadd##
    * ##pollsarchive##
    * ##pollspreview##
    * ##mostrated##


====Handlers====
  * ##edit##: added section editing
  * ##upload##: added duplicate file notices
  * ##upload##: allows now hyphen-minus in file name
  * ##upload##: it adds uploaded files to file table in SQL strict mode again, changed default value for caption in file table to ##DEFAULT NULL## 
  * ##moderate##: fixed unreachable sub-forum options to delete, move, rename and merge topics
  * ##upload##: checks if the MIME type of the uploaded file matches the file extension
  * ##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()## 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
  * added breeze icons for dark mode

====WikiEdit====
  * ((WikiEdit ECMAScript 2015 Migration))
  * added Unicode support
  * added button and icon for ##""[[^ footnote]]""##
  * 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
  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: skiped ##is_executable()## check for Windows

====Translations====
  * added Persian language
  * complete Chinese Simplified translation
  * now you can add message sets for your own scripts under ##lang/custom.<lang>.php##
    * the user must create the files on its own, e.g. ##custom.fi.php## using ##$custom_translation = [];##
    * this way the users own message sets get 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.8.0 ++(((https://github.com/PHPMailer/PHPMailer/blob/master/changelog.md Changelog)))++
  * ((https://github.com/darylldoyle/svg-sanitizer svg-sanitizer)) 0.16
  * ((https://github.com/PHPThumb/PHPThumb PHP Thumb Library)) 2.2.1
  * ((/Dev/Projects/SafeHTML SafeHTML)) 1.3.12 
  * ((https://simplepie.org/ SimplePie)) 1.8.0 ++(((https://github.com/simplepie/simplepie/blob/master/CHANGELOG.md Changelog)))++
  * Text_Highlighter 0.8.0
  * ((/Dev/Projects/WikiEdit 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 ((https://bitbucket.org/wackowiki/wackowiki/commits/all  Commit log)), the ((https://wackowiki.org/bugs/changelog_page.php Bug Tracker Log)) and ((ToDo)) list.