View source for ToDo R6.0

{{toc from="h3" to="h6" numerate=1}}
 
===R 6.0==
((https://wackowiki.org/bugs/roadmap_page.php?version_id=17 Roadmap))
((https://bitbucket.org/wackowiki/wackowiki/commits/ dev repo [bitbucket.org]))
((ChangeLog))
https://github.com/WackoWiki/wackowiki/compare/6.0.24...6.0

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 **((/Dev/Release/R5.5/ToDo open issues from R5.5))** .

====PHP====
%%(info type="note" title="PHP 8 functionality")
New PHP 8 functionality is reserved for **((/Dev/Release/R6.1/ToDo 6.1 branch))** releases .
((https://www.php.net/supported-versions.php Currently Supported PHP Versions))
%%

====Features====
  * **((Unicode UTF-8 support))** - Migration to Unicode

====Core====
  1. --add utf8_word_count function-- DONE
  1. Why does it store interwiki in session and not as JSON in _cache/config/interwiki.conf?
    * ##get_inter_wiki_url($name, $tag)##
  1. move interwiki.conf and antispam.conf into table & _cache/config/*
  1. add option to enforce email validation before a user can login
  1. notify_watcher(): add direct link to diff mode in email body
  1. it sucks to see again and over again all these random session_notice(s), add a option to turn it off for daily work.
  1. COLLATE utf8mb4_bin for tag eats ##𝓦𝓲𝓴𝓲𝓦𝓸𝓻𝓭𝓼## in LIKE '/%' query, without slash it finds it, whO_Ot
  2. ((TagPattern Tag Pattern Issues))
    1. --((/Dev/Release/R6.0/TagPattern it is possible to create a page tag with a underscore)), but then the page won't be found via run() function because ##_## is cast away-- - DONE
    2.  Only alphanumeric signs at the start and end of the tag and each subtag should be allowed, furthermore the use of more then one dot (##.##) or hyphen (##-##) in consecutive order should be not allowed, to avoid conflict with wiki formatter syntax.
  1. UTF-8 text must be checked for well-formedness
    * %%static function is_utf8($string)
{
  return (bool) preg_match('//u', $string);
}%%
  1. set return type declarations : (array | bool | float | int | mixed | string | void |  ...   )
    * http://docs.php.net/manual/en/functions.returning-values.php
  1. fix client side JS input validation patterns
    1. --login and registration action-- DONE
    2.  new, clone and rename  handler
  1. Replace all HTML-Entities except ((https://www.php.net/manual/de/function.htmlspecialchars.php 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. 
  1. --add option to disable hit counter--
    * user already uses web analytics software or there is no use case for a hit counter
    * This reduces database load, updating the page and file hits field with every page hit is a main source for slow queries.


====Installer====


====Handler====
  * --**add ability to remove / hide certain revisions via GUI**--
    * SQL cache -> revision handler
    * message boxes
  * wordbreak, how to break lines of Chinese, Japanese, or Korean
    * %%(css)
line-break: strict;
white-space: nowrap;
word-break: keep-all;
%% 

====Action====


====Formatter====
  * auto-paragraph did not terminates correctly in indent div having a code wrapper
    * %%(hl html)<div class="indent"><pre class="code">su</pre>
<p id="p86658-7" class="auto"></div>%%
  * 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
  * 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##

====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
%%(sql)
SELECT cache_lang, method, count(cache_id) AS n 
FROM `prefix_cache` 
GROUP BY cache_lang, method 
ORDER BY `cache_lang`, n DESC, method; 
%% 


====Libs====
  2. ((https://github.com/chrisboulton/php-diff/issues/53 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

====Testing===
  1. https://github.com/rectorphp/rector/blob/master/docs/rector_rules_overview.md#codequality

=====Test cases=====
-> ((Testing Test cases))