ToDo R6.0


R 6.0

Roadmap
dev repo [bitbucket.org]
ChangeLog


Main Focus: UTF-8 support and migration


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://secure.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

2. Features


3. Core


  1. set return type declarations : (array | bool | float | int | mixed | string | void | ... )
  2. implement support for relative path
    1. absolute path must ensured for cookies, redirect, canonical, sitemap
  3. fix client side JS input validation patterns, see below under testing
    1. login and registration action
    2. new, clone and rename handler
  4. 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.
  5. add option to disable hit counter

4. Installer

  • add note to base_url about relative path: "... or the path, relative to base url, starting with /"
    • current input form type is url and won't match /wiki/
  • router may does not load CSS and images until config.php is written DONE -> bugs:532
  • PHP Notice:  Undefined variable: wacko_config in /test/class/settings.php on line 39
    PHP Warning:  array_merge(): Expected parameter 2 to be an array, null given in /test/class/settings.php on line 39
    
    PHP Notice:  Undefined index: tls in /test/setup/header.php on line 4
    PHP Notice:  Undefined index: tls in /test/setup/common.php on line 9
    PHP Notice:  Undefined index: base_url in /test/setup/common.php on line 15
  1. 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
  2. offer to create the recovery_password within the install process

5. Handler

  • Full Diff is very slow with multi-byte support
    • it may take seconds, the larger the document the longer it takes.
    • the only thing that was changed is setting the /u flag and changing substr to mb_substr
    • revision:1bf90f9

6. Action

  • registration: add option to enforce user name patterns

7. Migration

  • The replacement of old transliterated links and supertag references may pose an insurmountable hurdle for regular users
    1.  ((/Doc/Русский/Obnovlenie ru)) -> ((/Doc/Русский/Обновление ru))
    2.  file:/forum/discussion/ifmodifiedsinceheaderdoesnotworks/403_network_analysis.png
       -> 
      file:/Forum/Discussion/IfModifiedSinceHeaderDoesNotWorks/403_network_analysis.png

8. Formatter

9. Cache


10. Admin Panel

  • support templates

11. Database


12. WikiEdit

  • add Unicode support

13. Libs

  1. 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

14. Refactoring


15. Themes

  • Avoid @import to include external stylesheets because it blocks parallel downloads, use the link tag instead.
  • CSS: [dir=rtl]
  • defer scripts defer></script>

16. Documentation

  • add example for resizing image from a external source ((http://example.com/image.png width=500 align=center))
    • height, width
    • align=[ left | right | center ]
  • write your own action
  • write your own formatter
  • write your own theme

17. Feedback


18. Testing


HTML5 pattern

Unable to check <input pattern='[\p{L}\p{Nd}\-\.]+'> because the pattern is not a valid regexp: invalid identity escape in regular expression

JavaScript does not support the construct \p{}.

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