GitHub/WoltLab/WCF.git
16 months agoMerge pull request #5595 from WoltLab/subscribe-button-description
Marcel Werk [Thu, 27 Jul 2023 14:05:23 +0000 (16:05 +0200)]
Merge pull request #5595 from WoltLab/subscribe-button-description

Fix descriptions for subscribe buttons

16 months agoMerge pull request #5596 from WoltLab/trim-full-invisible
Tim Düsterhus [Thu, 27 Jul 2023 13:55:58 +0000 (15:55 +0200)]
Merge pull request #5596 from WoltLab/trim-full-invisible

Expand `StringUtil::trim()` to clear out strings that consist of invisbile characters only

16 months agoApply suggestions from code review
Marcel Werk [Thu, 27 Jul 2023 13:55:28 +0000 (15:55 +0200)]
Apply suggestions from code review

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
16 months agoExpand `StringUtil::trim()` to clear out strings that consist of invisbile characters...
Tim Düsterhus [Thu, 27 Jul 2023 13:10:49 +0000 (15:10 +0200)]
Expand `StringUtil::trim()` to clear out strings that consist of invisbile characters only

see https://www.woltlab.com/community/thread/300772-unsichtbare-unicode-zeichen-als-titel-verbieten/

16 months agoFix descriptions for subscribe buttons
Marcel Werk [Thu, 27 Jul 2023 12:05:16 +0000 (14:05 +0200)]
Fix descriptions for subscribe buttons

These are generic language variables that are used in various places. Not all use cases support mentions, quotes, or reactions, so the previous descriptions were misleading.

16 months agoSlightly defer the initialization but not loading of CKEditor
Alexander Ebert [Wed, 26 Jul 2023 15:50:10 +0000 (17:50 +0200)]
Slightly defer the initialization but not loading of CKEditor

This change improves the perceived performance by forcing the browser to insert a rendering pass before initializing the browser. In particular on mobile devices this creates an opportunity to refresh the screen.

16 months agoMerge pull request #5594 from WoltLab/watch-vs-subscribe
Marcel Werk [Wed, 26 Jul 2023 14:55:43 +0000 (16:55 +0200)]
Merge pull request #5594 from WoltLab/watch-vs-subscribe

Unify 'Watched' Vs 'Subscribed'

16 months agoUnify 'Watched' Vs 'Subscribed'
Marcel Werk [Wed, 26 Jul 2023 14:49:21 +0000 (16:49 +0200)]
Unify 'Watched' Vs 'Subscribed'

16 months agoPrevent the selection handle to bet cut off by the toolbar
Alexander Ebert [Wed, 26 Jul 2023 14:40:35 +0000 (16:40 +0200)]
Prevent the selection handle to bet cut off by the toolbar

See https://www.woltlab.com/community/thread/300628-widget-handle-cut-off-by-the-editor-toolbar/

16 months agoImprove the visuals of the reaction popover
Alexander Ebert [Wed, 26 Jul 2023 13:58:14 +0000 (15:58 +0200)]
Improve the visuals of the reaction popover

See https://www.woltlab.com/community/thread/300768-darstellungsfehler-bei-reaktionen-in-artikeln/

16 months agoUpgrade to CKEditor5 v38.1.1
Alexander Ebert [Wed, 26 Jul 2023 12:25:16 +0000 (14:25 +0200)]
Upgrade to CKEditor5 v38.1.1

16 months agoUpdate composer dependencies
Tim Düsterhus [Wed, 26 Jul 2023 10:24:32 +0000 (12:24 +0200)]
Update composer dependencies

16 months agoPrevent the loading overlay to overlap the bottom border
Alexander Ebert [Tue, 25 Jul 2023 15:28:16 +0000 (17:28 +0200)]
Prevent the loading overlay to overlap the bottom border

See https://www.woltlab.com/community/thread/300754-rahmen-wird-mindestens-mobil-beim-absenden-%C3%BCberdeckt/

16 months agoMerge branch '5.5'
Alexander Ebert [Tue, 25 Jul 2023 14:16:56 +0000 (16:16 +0200)]
Merge branch '5.5'

16 months agoRelease 5.5.15 5.5.15
Alexander Ebert [Tue, 25 Jul 2023 14:07:42 +0000 (16:07 +0200)]
Release 5.5.15

16 months agoMerge branch '5.4' into 5.5
Alexander Ebert [Tue, 25 Jul 2023 14:07:16 +0000 (16:07 +0200)]
Merge branch '5.4' into 5.5

16 months agoRelease 5.4.31 5.4.31
Alexander Ebert [Tue, 25 Jul 2023 14:06:36 +0000 (16:06 +0200)]
Release 5.4.31

16 months agoAllow the news feed to open links in a new window
Alexander Ebert [Tue, 25 Jul 2023 14:03:23 +0000 (16:03 +0200)]
Allow the news feed to open links in a new window

16 months agoWhen the month has 6 weeks the selected date was not marked correctly
Marcel Werk [Tue, 25 Jul 2023 13:37:36 +0000 (15:37 +0200)]
When the month has 6 weeks the selected date was not marked correctly

16 months agoForce the overlay contain to be always on top
Alexander Ebert [Tue, 25 Jul 2023 13:36:00 +0000 (15:36 +0200)]
Force the overlay contain to be always on top

See https://www.woltlab.com/community/thread/300763-tooltips-hinter-popover/

16 months agoSimplify the active state of sidebar menu items
Alexander Ebert [Tue, 25 Jul 2023 13:32:29 +0000 (15:32 +0200)]
Simplify the active state of sidebar menu items

See https://www.woltlab.com/community/thread/300811-aktive-boxnavigation/

16 months agoFix the position of the date picker
Alexander Ebert [Tue, 25 Jul 2023 13:28:22 +0000 (15:28 +0200)]
Fix the position of the date picker

See https://www.woltlab.com/community/thread/300760-datepicker-is-broken/

16 months agoForce a minimum width on mobile dialogs
Alexander Ebert [Tue, 25 Jul 2023 13:26:46 +0000 (15:26 +0200)]
Force a minimum width on mobile dialogs

See https://www.woltlab.com/community/thread/300784-mitglieder-filtern-dialog-fehlerhafte-mobile-darstellung/
See https://www.woltlab.com/community/thread/300751-preview-size-in-mobile-resolution-when-text-is-too-short/

16 months agoMerge branch '5.5'
Alexander Ebert [Tue, 25 Jul 2023 13:25:07 +0000 (15:25 +0200)]
Merge branch '5.5'

16 months agoRelease 5.5.14 5.5.14
Alexander Ebert [Tue, 25 Jul 2023 11:22:18 +0000 (13:22 +0200)]
Release 5.5.14

16 months agoUpdating minified JavaScript files
WoltLab [Tue, 25 Jul 2023 11:21:08 +0000 (11:21 +0000)]
Updating minified JavaScript files

16 months agoMerge branch '5.4' into 5.5
Alexander Ebert [Tue, 25 Jul 2023 11:19:37 +0000 (13:19 +0200)]
Merge branch '5.4' into 5.5

16 months agoRelease 5.4.30 5.4.30
Alexander Ebert [Tue, 25 Jul 2023 10:06:26 +0000 (12:06 +0200)]
Release 5.4.30

16 months agoUpdating minified JavaScript files
WoltLab [Tue, 25 Jul 2023 10:03:02 +0000 (10:03 +0000)]
Updating minified JavaScript files

16 months agoMerge branch '5.5'
Alexander Ebert [Tue, 25 Jul 2023 09:39:29 +0000 (11:39 +0200)]
Merge branch '5.5'

16 months agoMerge branch '5.4' into 5.5
Alexander Ebert [Tue, 25 Jul 2023 09:38:23 +0000 (11:38 +0200)]
Merge branch '5.4' into 5.5

16 months agoDecrease the height of the news widget
Alexander Ebert [Tue, 25 Jul 2023 09:38:17 +0000 (11:38 +0200)]
Decrease the height of the news widget

16 months agoMerge branch '5.5'
Tim Düsterhus [Tue, 25 Jul 2023 09:23:48 +0000 (11:23 +0200)]
Merge branch '5.5'

16 months agoMerge branch '5.4' into 5.5
Tim Düsterhus [Tue, 25 Jul 2023 09:22:46 +0000 (11:22 +0200)]
Merge branch '5.4' into 5.5

16 months agoFix comma detection in Ui/ItemList/Static
Tim Düsterhus [Tue, 25 Jul 2023 09:20:28 +0000 (11:20 +0200)]
Fix comma detection in Ui/ItemList/Static

This got broken during the TypeScript migration in c04fd6ce08b40262c660d38dbd491c37aed49a89.

see https://www.woltlab.com/community/thread/300812-itemlist-static-separierung-per-komma-funktioniert-nicht/

16 months agoMerge pull request #5592 from WoltLab/numberformat-php
Tim Düsterhus [Mon, 24 Jul 2023 14:52:54 +0000 (16:52 +0200)]
Merge pull request #5592 from WoltLab/numberformat-php

Fix number formatting in StringUtil

16 months agoFix PHP codestyle
Tim Düsterhus [Mon, 24 Jul 2023 13:34:46 +0000 (15:34 +0200)]
Fix PHP codestyle

16 months agoFix StringUtil::formatDouble() for $maxDecimals != 2
Tim Düsterhus [Mon, 24 Jul 2023 07:26:21 +0000 (09:26 +0200)]
Fix StringUtil::formatDouble() for $maxDecimals != 2

NumberFormatter performs rounding itself, thus there is no need to round
manually. This also changes the recommended alternative for this use case that
is mentioned in the doc comment.

16 months agoLimit the NumberFormatter to 2 fraction digits in StringUtil::getNumberFormatter()
Tim Düsterhus [Mon, 24 Jul 2023 07:23:51 +0000 (09:23 +0200)]
Limit the NumberFormatter to 2 fraction digits in StringUtil::getNumberFormatter()

see https://www.woltlab.com/community/thread/300795-startseite-beitr%C3%A4ge-pro-tag-ist-%C3%BCbertrieben-genau/

16 months agoFix handling of negative numbers in StringUtil::formatInteger()
Tim Düsterhus [Mon, 24 Jul 2023 07:20:04 +0000 (09:20 +0200)]
Fix handling of negative numbers in StringUtil::formatInteger()

The formatted value was compared against `0`, not the original integer. Just
delegate to `formatNumeric()`.

16 months agoAdd missing `.button` class in PaypalPaymentMethod
Tim Düsterhus [Fri, 21 Jul 2023 07:10:31 +0000 (09:10 +0200)]
Add missing `.button` class in PaypalPaymentMethod

16 months agoFix the position of the quote selection
Alexander Ebert [Thu, 20 Jul 2023 10:23:07 +0000 (12:23 +0200)]
Fix the position of the quote selection

It shares the `balloonTooltip` class but is not part of the page overlay container.

See https://www.woltlab.com/community/thread/300757-quote-by-marking-text-tooltip-is-misplaced-when-page-is-scrolled/

16 months agoRelease 6.0.0 Alpha 7 6.0.0_Alpha_7
Alexander Ebert [Wed, 19 Jul 2023 15:49:51 +0000 (17:49 +0200)]
Release 6.0.0 Alpha 7

16 months agoUpdating minified JavaScript files
WoltLab [Wed, 19 Jul 2023 15:42:59 +0000 (15:42 +0000)]
Updating minified JavaScript files

16 months agoUpdate the CKEditor 5 bundle
Alexander Ebert [Wed, 19 Jul 2023 15:41:26 +0000 (17:41 +0200)]
Update the CKEditor 5 bundle

16 months agoImprove the readability of mentions in the editor
Alexander Ebert [Wed, 19 Jul 2023 14:48:52 +0000 (16:48 +0200)]
Improve the readability of mentions in the editor

See https://www.woltlab.com/community/thread/300743-vorschl%C3%A4ge-f%C3%BCr-erw%C3%A4hnungen-etwas-vergr%C3%B6%C3%9Fern/

16 months agoDisable image resizing
Alexander Ebert [Wed, 19 Jul 2023 14:44:43 +0000 (16:44 +0200)]
Disable image resizing

See #5591

16 months agoMerge pull request #5590 from WoltLab/better-scroll-disable
Alexander Ebert [Wed, 19 Jul 2023 14:39:16 +0000 (16:39 +0200)]
Merge pull request #5590 from WoltLab/better-scroll-disable

Improve the behavior of visible scrollbars

16 months agoClosing dialogs with Esc should close and detach the dialog
Alexander Ebert [Wed, 19 Jul 2023 14:18:01 +0000 (16:18 +0200)]
Closing dialogs with Esc should close and detach the dialog

See https://www.woltlab.com/community/thread/300742-seite-nicht-mehr-scrollbar-wenn-dialog-mittels-esc-geschlossen-wird/

16 months agoFix margins in embedded content widget
Marcel Werk [Wed, 19 Jul 2023 13:29:46 +0000 (15:29 +0200)]
Fix margins in embedded content widget

16 months agoAdd a default value for the x offset of legacy dialogs
Alexander Ebert [Wed, 19 Jul 2023 12:20:59 +0000 (14:20 +0200)]
Add a default value for the x offset of legacy dialogs

The lack of a valid value sometimes caused the dialog to be squished against the side of the document, causing an incorrect width calculation.

16 months agoSimulate the visible sidebar when a dialog is open
Alexander Ebert [Wed, 19 Jul 2023 12:18:29 +0000 (14:18 +0200)]
Simulate the visible sidebar when a dialog is open

16 months agoAlways force the vertical scrollbar to be visible
Alexander Ebert [Wed, 19 Jul 2023 12:04:03 +0000 (14:04 +0200)]
Always force the vertical scrollbar to be visible

16 months agoRemove the outdated module import
Alexander Ebert [Tue, 18 Jul 2023 16:38:45 +0000 (18:38 +0200)]
Remove the outdated module import

16 months agoFix the scroll freeze handling on mobile
Alexander Ebert [Tue, 18 Jul 2023 16:34:19 +0000 (18:34 +0200)]
Fix the scroll freeze handling on mobile

See https://www.woltlab.com/community/thread/300714-page-jumps-on-mobile-when-opening-reaction-dialog/

16 months agoAdd a workaround for the collapsing borders in Firefox
Alexander Ebert [Tue, 18 Jul 2023 14:53:12 +0000 (16:53 +0200)]
Add a workaround for the collapsing borders in Firefox

See https://www.woltlab.com/community/thread/300725-broken-hover-effect-for-tables-in-ckeditor/

16 months agoMerge pull request #5589 from WoltLab/editor-align-order
Tim Düsterhus [Tue, 18 Jul 2023 14:26:52 +0000 (16:26 +0200)]
Merge pull request #5589 from WoltLab/editor-align-order

Use “standard” order for alignment options in CKEditor toolbar

16 months agoLimit the ToC to a maximum of 50% width on large devices
Alexander Ebert [Tue, 18 Jul 2023 14:26:12 +0000 (16:26 +0200)]
Limit the ToC to a maximum of 50% width on large devices

See https://www.woltlab.com/community/thread/300544-maximalbreite-f%C3%BCr-inhaltsverzeichnis-setzen/

16 months agoFix the position of tooltips
Alexander Ebert [Tue, 18 Jul 2023 14:23:23 +0000 (16:23 +0200)]
Fix the position of tooltips

See #5575

16 months agoFix the color of the balloon tooltip pointer
Alexander Ebert [Tue, 18 Jul 2023 13:54:32 +0000 (15:54 +0200)]
Fix the color of the balloon tooltip pointer

See https://www.woltlab.com/community/thread/300637-incorrectly-colored-triangle-pointer-for-image-controls-in-ckeditor-in-dark-mode/

16 months agoRestore the mobile search icon when closing the search
Alexander Ebert [Tue, 18 Jul 2023 13:38:18 +0000 (15:38 +0200)]
Restore the mobile search icon when closing the search

See https://www.woltlab.com/community/thread/300653-mobiles-such-icon-%C3%A4ndert-seinen-status-nicht/

16 months agoSuppress button hover states on touch devices
Alexander Ebert [Tue, 18 Jul 2023 13:01:52 +0000 (15:01 +0200)]
Suppress button hover states on touch devices

See https://www.woltlab.com/community/thread/300684-mobil-ist-es-nicht-erkennbar-wenn-man-eine-formatierung-deaktiviert/

16 months agoUse “standard” order for alignment options in CKEditor toolbar
Tim Düsterhus [Tue, 18 Jul 2023 12:29:40 +0000 (14:29 +0200)]
Use “standard” order for alignment options in CKEditor toolbar

It might be arguable whether it should be "left, center, right, justify" or
"left, right, center, justify", but in no case "center" should come first.

"left, center, right, justify" is used by Google Docs and LibreOffice Writer.

16 months agoProvide a sane width attribute for attachments
Alexander Ebert [Tue, 18 Jul 2023 10:04:30 +0000 (12:04 +0200)]
Provide a sane width attribute for attachments

16 months agoReport image attachments to the editor
Alexander Ebert [Tue, 18 Jul 2023 10:00:01 +0000 (12:00 +0200)]
Report image attachments to the editor

See https://www.woltlab.com/community/thread/300722-broken-image-icon-when-editing-a-post-with-a-video-file-attached/

16 months agoMove popover into the body element
Alexander Ebert [Mon, 17 Jul 2023 19:04:48 +0000 (21:04 +0200)]
Move popover into the body element

These elements do not exist within dialogs and their behavior does not play well with fixed positioning.

16 months agoFix the position of balloon tooltips
Alexander Ebert [Mon, 17 Jul 2023 16:59:51 +0000 (18:59 +0200)]
Fix the position of balloon tooltips

16 months agoFix the handling of the width attributes of `[attach]`
Alexander Ebert [Mon, 17 Jul 2023 16:37:54 +0000 (18:37 +0200)]
Fix the handling of the width attributes of `[attach]`

16 months agoMerge branch 'master' of https://github.com/WoltLab/WCF
Marcel Werk [Mon, 17 Jul 2023 16:26:41 +0000 (18:26 +0200)]
Merge branch 'master' of https://github.com/WoltLab/WCF

16 months agoMake explanation of notification setting more precise
Marcel Werk [Mon, 17 Jul 2023 16:26:35 +0000 (18:26 +0200)]
Make explanation of notification setting more precise

16 months agoUse fixed positioning for drop-down menus
Alexander Ebert [Mon, 17 Jul 2023 16:25:19 +0000 (18:25 +0200)]
Use fixed positioning for drop-down menus

16 months agoMerge branch 'master' of https://github.com/WoltLab/WCF
Marcel Werk [Mon, 17 Jul 2023 16:20:06 +0000 (18:20 +0200)]
Merge branch 'master' of https://github.com/WoltLab/WCF

16 months agoFix some logic errors when sending comment notifications
Marcel Werk [Mon, 17 Jul 2023 16:20:00 +0000 (18:20 +0200)]
Fix some logic errors when sending comment notifications

The old code assumed that the active user was also the author of the respective comment, but this is not guaranteed.

16 months agoFix typo
Marcel Werk [Mon, 17 Jul 2023 16:17:39 +0000 (18:17 +0200)]
Fix typo

16 months agoFix a typo in the style variable value 6.0.0_Alpha_6
Alexander Ebert [Mon, 17 Jul 2023 16:06:53 +0000 (18:06 +0200)]
Fix a typo in the style variable value

16 months agoRelease 6.0.0 Alpha 6
Alexander Ebert [Mon, 17 Jul 2023 15:53:44 +0000 (17:53 +0200)]
Release 6.0.0 Alpha 6

16 months agoUpdating minified JavaScript files
WoltLab [Mon, 17 Jul 2023 15:43:26 +0000 (15:43 +0000)]
Updating minified JavaScript files

16 months agoMerge pull request #5588 from WoltLab/ckeditor-image-resize
Alexander Ebert [Mon, 17 Jul 2023 15:40:58 +0000 (17:40 +0200)]
Merge pull request #5588 from WoltLab/ckeditor-image-resize

Add image resize support in CKEditor

16 months agoUpdate the CKEditor 5 bundle
Alexander Ebert [Mon, 17 Jul 2023 15:34:31 +0000 (17:34 +0200)]
Update the CKEditor 5 bundle

16 months agoFix the positioning of tooltips
Alexander Ebert [Mon, 17 Jul 2023 11:46:24 +0000 (13:46 +0200)]
Fix the positioning of tooltips

Fixes #5575

16 months agoFix the installation through the projects
Alexander Ebert [Mon, 17 Jul 2023 11:31:02 +0000 (13:31 +0200)]
Fix the installation through the projects

16 months agoFix the image resizing of aligned images
Alexander Ebert [Mon, 17 Jul 2023 11:25:41 +0000 (13:25 +0200)]
Fix the image resizing of aligned images

16 months agoFix a typo
Alexander Ebert [Mon, 17 Jul 2023 11:19:19 +0000 (13:19 +0200)]
Fix a typo

Co-authored-by: Tim Düsterhus <duesterhus@woltlab.com>
16 months agoClean up the code
Alexander Ebert [Mon, 17 Jul 2023 11:17:27 +0000 (13:17 +0200)]
Clean up the code

16 months agoAdd resize support for attachments
Alexander Ebert [Fri, 14 Jul 2023 16:08:57 +0000 (18:08 +0200)]
Add resize support for attachments

16 months agoAdd support for resizable attachments
Alexander Ebert [Fri, 14 Jul 2023 14:34:15 +0000 (16:34 +0200)]
Add support for resizable attachments

16 months agoMerge pull request #5587 from WoltLab/attachment-bbcode-refactor
Alexander Ebert [Mon, 17 Jul 2023 10:26:20 +0000 (12:26 +0200)]
Merge pull request #5587 from WoltLab/attachment-bbcode-refactor

Refactor `AttachmentBBCode`

16 months agoInvert the logic by short-circuiting for thumbnails
Alexander Ebert [Fri, 14 Jul 2023 16:34:01 +0000 (18:34 +0200)]
Invert the logic by short-circuiting for thumbnails

16 months agoSimplify the handling of the alignment CSS classes
Alexander Ebert [Fri, 14 Jul 2023 16:29:19 +0000 (18:29 +0200)]
Simplify the handling of the alignment CSS classes

16 months agoSlightly improve the consistency of HTML generation
Alexander Ebert [Fri, 14 Jul 2023 15:35:55 +0000 (17:35 +0200)]
Slightly improve the consistency of HTML generation

16 months agoUse short circuits and replace large string concats with `\sprintf()`
Alexander Ebert [Fri, 14 Jul 2023 15:21:05 +0000 (17:21 +0200)]
Use short circuits and replace large string concats with `\sprintf()`

16 months agoSplit the `getParsedTag()` method into specific functions
Alexander Ebert [Fri, 14 Jul 2023 14:55:34 +0000 (16:55 +0200)]
Split the `getParsedTag()` method into specific functions

16 months agoRemove long deprecated support for external object lists
Alexander Ebert [Fri, 14 Jul 2023 14:39:24 +0000 (16:39 +0200)]
Remove long deprecated support for external object lists

This features was deprecated 9 years ago in https://github.com/WoltLab/WCF/commit/0a2b09a2d0d914887eedf43d02328add19ec4216

16 months agoMerge pull request #5586 from WoltLab/package-installation-submit-ux
Tim Düsterhus [Fri, 14 Jul 2023 12:58:23 +0000 (14:58 +0200)]
Merge pull request #5586 from WoltLab/package-installation-submit-ux

Improve the UX around submitting package installation requests

16 months agoShow the regular AJAX status in package installation until the first request goes...
Tim Düsterhus [Fri, 14 Jul 2023 12:20:46 +0000 (14:20 +0200)]
Show the regular AJAX status in package installation until the first request goes through

Until the first request goes through, nothing is visible, as the dialog is not
yet spawned. Show the regular AJAX status to improve the UX.

16 months agoDisable submit button in package installation confirmation after clicking
Tim Düsterhus [Fri, 14 Jul 2023 12:20:08 +0000 (14:20 +0200)]
Disable submit button in package installation confirmation after clicking

It might take a while for the request to go through and the admin should not
click twice.

16 months agoMerge pull request #5584 from WoltLab/reset-date-selection-ui
Marcel Werk [Fri, 14 Jul 2023 11:20:06 +0000 (13:20 +0200)]
Merge pull request #5584 from WoltLab/reset-date-selection-ui

Improve UI of the reset button in the date picker

16 months agoMerge remote-tracking branch 'origin/master'
Tim Düsterhus [Fri, 14 Jul 2023 08:33:11 +0000 (10:33 +0200)]
Merge remote-tracking branch 'origin/master'

16 months agoMerge branch '5.5'
Tim Düsterhus [Fri, 14 Jul 2023 08:32:14 +0000 (10:32 +0200)]
Merge branch '5.5'

16 months agoFix truncation of Unicode string query parameters in Benchmark
Tim Düsterhus [Fri, 14 Jul 2023 08:28:50 +0000 (10:28 +0200)]
Fix truncation of Unicode string query parameters in Benchmark

This needs to use `mb_substr()`, as we checked UTF-8 validity before to use
`UNHEX()` with binary strings. Previously UTF-8 sequences might've been cut
short and the resulting invalid sequence cannot be JSON encoded, as JSON
requires strings to be valid UTF-8.

see https://www.woltlab.com/community/thread/298853-schwer-reproduzierbar-fehlermeldungen-beim-importieren-von-sprachdateien/