🎉 Features
- Support for PHP 8.1 #3979
- New
system.exception
hook that can be used to log an error or exception in a log file or via a service like Sentry #3952
✨ Enhancements
- Added
Toolkit\Html::$inlineList
with array of tags that are allowed in inline context #3884 - System view: Renamed the "SSL" status to "HTTPS" for clarity: #3960
- The blocks field now only shows the currently selected block options bar on nested blocks preview #3931
- The gallery block preview uses
srcset
for potentially smaller preview images router.php
now allows the document root to be set manually #3963- Improved line wrapping for title and info texts on card items #3949
- New
Str::date($time, $format, $handler)
method to format a timestamp as date string #3992 - Run
npm run format
duringpre-commit
hook. #3995 - The
Kirby\Sane\Svg
class now supports more attributes likexml:space
andenable-background
. #3982 Kirby\Toolkit\Dom
: Added support for the specialxml:
namespace- Thumbs created with the
ImageMagick
driver now include the ICC color profile for better color accuracy. Note that this currently does not work for PNG images. #2537 - Updated translations (sv_SV, ko, is_IS, fi, es_ES, es_419, cs) Thank you to all our translators 💛
🐛 Fixes
pages()
helper does not throw deprecation warning for arrays as single parameter #3938Asset
objects can be used as Panel preview images again #3933- Fixed non-standard MIME type "application/force-download" header in
Response::download()
#3956 - Converting blocks from non-existing type (e.g. after renaming) doesn't throw an error #3962
- Item dropdown icon doesn't overlap downdown itself anymore #3966
Panel::go()
and other exceptions are supported in thepanel.route:before
hook #3964route:before
androute:after
hooks only get called for core routing calls #3951Str
methods handle an empty$needle
string #3459- Fixed passing null as second parameter which is deprecated since PHP 8.0 #3975
- The empty writer field no longer contains paragraph #3943
- Fixed script-src warning when setting a CSP header with our nonce #3986
- Area dropdowns can now be created with a simple closure instead of defining a full route (as already advertised) #3970:
'dropdowns' => [
'example' => function () {
return [ ... ]
}
]
- Fixed prop type check for number text in the button component #4000
♻️ Refactoring
- Use
strip_tags
with array of tags #3884 - Use PHP arrow functions #3886
- Switched to
Optional chaining operator
on Frontend #3908 - Refactored plugin loading JS #3937
- Use Prettier for consistent JS formatting #3812
- Use null coalescing assignment operator in PHP #3885
- Upgraded
claviska/simpleimage
dependency #3989 - Type hint for
Iterator::getIterator()
https://github.com/getkirby/kirby/pull/3991/files - Upgraded NPM dependencies #3993
- Don't pass
null
to native functions that actually don't acceptnull
but a specific type (string, int...). #3990 - Replaced
true/punycode
withsymfony/polyfill-intl-idn
dependency #3988
📈 Stats
- 111 commits
- 53 closed issues and PRs
👨💻 Contributors
(in alphabetical order)