ToDo R6.0


R 6.0

Roadmap
dev repo [bitbucket.org]
ChangeLog


Main Focus: UTF-8 support and migration and PHP 8.0 compatibility


R6.0 is more or less R5.5 with Unicode support. Please look here for open issues from R5.5 .

1. PHP

1.1. PHP 7.4

  1. https://www.php.net/manual/en/migration74.php
  2. "Trying to access array offset on value of type ..." warning for accessing null/bool/int/float/resource as if it were an array -> bugs:553

1.2. PHP 8.0

  1. https://stitcher.io/blog/new-in-php-8
  2. https://php.watch/versions/8.0
  3. https://github.com/php/php-src/blob/php-8.0.0/UPGRADING

2. Features

3. Core

  1. https://github.com/rectorphp/r[...]rview.md#codequality
  2. localize date formats
  3. improve and foster message sets
  4. set return type declarations : (array | bool | float | int | mixed | string | void | ... )
  5. fix client side JS input validation patterns, see below under testing
    1. login and registration action DONE
    2. new, clone and rename handler
  6. Replace all HTML-Entities except HTML special chars
    1. nbsp; — to indent or add extra spacing to a paragraph, sentence, or another portion, better using CSS instead of multiple non-breaking spaces.
  7. add option to disable hit counter
  8. move link and notifications functions in own class
    • $this->msg->notify_user()
    • $this->ref->link()

4. Installer

  1. validate username
  2. Nginx: installer seems to activate rewrite_mode ?
  3. define('CACHE_SESSION_DIR', '/tmp'); is defined in constant.php, and currently not set via the installer
    1. use ini_get('session.save_path') as indicator, BUT we do not use the PHP build in session! -> write value, its a nuisance that the user currently has to do this on his own
  4. offer to create the recovery_password within the install process
  5. use dbal also for installer: $db->sql_query($sql)

5. Handler

  • auto-save function on the edit and _comments handler by applying the localStorage function
  • saved discarded comment due invalidated token to avoid data loss
  • send notice on comment edit and make change visible in actions like it is done for pages, to not miss possible important content changes
  • increase the default size of the comment textarea in the default theme
  • add option to send a copy of the personal message also to the sender
  • edit: set custom textarea size (user settings/JS)
  • properties: add page tag below page title: Tag: Cluster/Page – looks ugly
  • wordbreak, how to break lines of Chinese, Japanese, or Korean
    • line-break: strict;
      white-space: nowrap;
      word-break: keep-all; 

6. Action

  • registration: add option to enforce certain user name patterns
  • registration: add white and blacklist for allowed email domains
  • poll: improve actions and add templates

7. Formatter

  • add support for AVIF – GD lib support pending!
  • add lazy loading for <img> tags in wackoformatter and for thumbnails in gallery action
  • str_replace("\xc2\xa0", " ", $string);
  • text inside ##code formatter## is processed as wikitext with possibly undesired results
    • the text must be escaped to be taken as is
  • removes intentional left empty lines inside info formatter
  • parse also anchor with dash, e.g. tag#one-two
  • ((../ Go Back)) goes back two levels, but should go to parent page only
  • interwiki links are not tracked
  • <ignore> tags must be removed for diff-mode 0
    • check output other than show handler, the replace should be done in one place
  • relative links were not parsed in the context of the page they are included, what is the default behavior?
  • re-parsing all pages and links may result in wrong toc references, when the included page gets parsed after the page which includes them
    • HOTFIX: save all included pages with wrong toc reference again, this will update body_toc

8. Cache

  • set new default cache_ttl values in config default and description in documentation
    • seconds duration
      600 10 minutes
      1200 20 minutes
      3600 1 hour
      7200 2 hours
      18000 5 hours
      86400 24 hours
      2678400 31 days

Evaluate page cache

SELECT cache_lang, method, count(cache_id) AS n 
FROM `prefix_cache` 
GROUP BY cache_lang, method 
ORDER BY `cache_lang`, n DESC, method;

9. Admin Panel

  • support templates
  • resync links excludes pages from owner System, we may remove this restriction
  • restore: process may fail while restoring page with certain Unicode
    • needs further investigation, backup seems to works while restoring may fail
    • creates empty REPLACE queries for page table until it causes a script termination due timeout

10. Database

11. WikiEdit

  • add Unicode support

12. Libs

  1. https://github.com/pear/Text_Highlighter/pull/5
  2. php-diff successor
    1. https://github.com/jfcherng/php-diff
    2. https://github.com/JBlond/php-diff <— SWITCHED TO 
    3. https://github.com/sebastianbergmann/diff

13. Refactoring


14. Themes

  • CSS: [dir=rtl]
  • defer scripts defer></script>
  • default theme
    • background body: #ebeef2

15. Ideas

  • add action with conditional redirect by browser language to pre-selected pages, e.g. ['fr'] --> "/Doc/Français"
  • moderation/remove/rename of sub pages without modifying the parent cluster
  • add extension for https://github.com/mermaid-js/mermaid

16. Documentation

17. Feedback


18. Testing


Content Security Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf eval blockiert ("script-src"). 5 autocomplete.js:280:2

18.1. Test cases

-> Test cases

18.2. Debug

https://app.codacy.com/gh/WackoWiki/wackowiki/dashboard


declare(strict_types=1);