6.1 Change Log

6.1

(05.10.2024) a401705 -> M26 (Release Notes)


As work on WackoWiki 6.1 is still underway, this is an incomplete list of changes.



1. Configuration

1.1. primary config

  1. new
    • db_vendor
  2. renamed
    • sql_mode_strict to sql_mode
      • 0 - server
      • 1 - session lax
      • 2 - session strict

1.2. 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
  2. renamed
    • default_typografica -> typografica
    • img_max_thumb_width -> max_thumb_width
    • img_create_thumbnail -> create_thumbnail
  3. removed
    • dst
    • footer_rating

1.3. theme config

  • custom_menus - shows custom menu options (hide_toc, hide_index, tree_level)

1.4. constants

  1. new
    • COOKIE_SAMESITE : 'Strict', 'Lax' (default), 'None'
    • DB_ERROR_MODE : 0 - silent (default), 1 - warning, 2 - exception
  2. renamed
    • UPLOAD_PER_PAGE_DIR to UPLOAD_LOCAL_DIR
    • SQL_MODE_PERMISSIVE to SQL_MODE_LAX
  3. removed
    • XML_HTMLSAX3, see autoload.conf

1.5. conf files

  1. changed
    1. csp_custom.conf
    2. csp.conf
    3. autoload.conf
    4. router.conf

2. Core

  • added option to set the SameSite attribute, default 'Lax' , see constants.php

    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 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, 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
      
      $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

2.1. 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)
  • 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

2.2. Folders

  • renamed folder wacko to src

3. 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
  2. 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
  3. 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
  4. removed field
    1. footer_rating from page table
    2. typografica from user_setting table
    3. dst from user_setting table
  5. 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
  6. removed table
    1. poll
    2. 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 and db_vendor

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
  • 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: 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
    • 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
  • 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 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

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, ' &gt; ', true, true);
      +$tpl->breadcrumbs    = $this->get_page_path(null, false, ' &gt; ', 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

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

  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)
  3. appearance: added option to set a theme color for the address bar
  4. removed obsolete convert module
  5. sets DEFAULT for all fields in backup module script
  6. restore: skips is_executable() check for Windows
  7. 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.
  8. 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.

12. Packages

updated


See core dependencies



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.

Comments

  1. 6.1.26 release notes

    Minor feature and bug fix release for 6.1.x series

    • adds file_meta for file_cache
    • uses :focus-within pseudo selector for dropdown
    • adds CSS class btn-sm and btn-md
    • English message sets fixes
    • initial language files for Tamil
    • re-check for anonymous user before storing cache
      • soft_login() may set sess->user_profile
    • removes redundant setlocale() call
    • adds db_vendor to primary config
    • installer auto-detects db_vendor
      • either mariadb or mysql
      • uses server SQL mode for installer by default
      • in debug mode the db_vendor can be selected in the db config page along with the SQL mode
      • mainly to solve SQL mode incompatibilities between MariaDB and MySQL
    • renames sql_mode_strict to sql_mode
      • 0 – server (default)
      • 1 – session lax 
      • 2 – session strict
    • fixes not showing read ACL $ pages in the default menu for logged in users with no own bookmarks defined
    • miscellaneous minor fixes
    • svg sanitizer 0.19
    • PhpThumb 2.3.1

    • WikiAdmin
    • 19.10.2024 05:41 edited