Releases: getkirby/kirby
4.1.0-rc.3
What's changed since 4.1.0-rc.2
- Refactor the link field input event handling to improve link detection #6198
- ColorField: proper HTML/XSS handling #6195
- ImageMagick: remove optimization that breaks focus #6205
Full Changelog: 4.1.0-rc.2...4.1.0-rc.3
4.1.0-rc.2
4.1.0-rc.1
🎉 Features
New page create dialog features
The page create dialog now allows to hide the title
and/or slug
field by defining a string template that will be used instead
create:
title: "{{ page.location }} – {{ page.date.toDate('M Y') }}"
slug: "{{ page.location.slug }}-{{ page.date.toDate('Y-m-d') }}"
Custom fields from the create dialog will be accessible through Kirby query starting with page.
(in this example the fields location
and date
. If no custom fields are defined, the create dialog will be skipped and the page immediately created. #6154
Color field: query and API support for options
myColorField:
type: color
options:
type: query
query: kirby.option('my.colors')
// only values
return [
'my' => [
'colors' => [
'#3e3e3e',
'#aaa',
'#ddd',
]
]
];
// values -> labels
return [
'my' => [
'colors' => [
'#3e3e3e' => 'Color A' ,
'#aaa' => 'Color B',
'#ddd' => 'Color C',
]
]
];
New sharpen option for thumbnails
When resizing images, you can now sharpen them. This often enhances the image quality when downscaling images.
$page->image('my-image.jpg')->thumb([
'width' => 300,
'height' => 200,
'sharpen' => true
]);
You can also pass an integer value to control the sharpening effect. Higher numbers create sharper images. The default is 50.
$page->image('my-image.jpg')->thumb([
'width' => 300,
'height' => 200,
'sharpen' => 25
]);
Thank you very much to @dgsiegel for implementing this feature. #6164
Link Field Previews
The link field now has proper previews in structure and object fields #5262
And more …
- Stats section supports new
icon
option #6006 - New
A::implode()
method that also handles nested arrays #6059
✨ Enhancements
- Upgrade to Vite 5 #5984
- Page and files section with table layout will now try to infer the column type from the blueprint of the first model when no type has been provided explicitly #6147
- When a block fieldset doesn't set a
name
, thelabel
is now used as fallback #6137 - The search type can now be pre-defined when opening the search dialog #6158
panel.dialog.open({
component: "k-search-dialog",
props: {
type: "pages"
}
});
- Extensive block examples in the lab #6160
- Added support for emojis and other multi-byte characters in mysql database connections. Thanks to @degoya #6168
- Improved lab examples with better source code view #6170
🐛 Bug fixes
- Link field: fixed default type if
url
option not available #6145 - Fixed renewal date formatting in the license dialog when using a custom date handler #6138
- Fix Panel menu button centering #6051
- Writer toolbar: fix when implicitly inline #6069
- Support dimensions for
avif
images #6141 - Table layout: columns marked as
mobile: true
are shown again in narrow viewports #6106 - Respect custom allowed slug characters from
Str
class in slug field #6049 $store.content
: fix consistent id pattern #6057- Structure field: clone row on duplicate #6073
field.isVisible()
: fix if statement #6098- Many objects are serializable again #6072
Helpers::handleErrors()
correctly restores the original error handler even if an exception is thrown in the action #6105- Fixed PHP warning for structure fields without subfields #6059
- Fixed PHP warning for
F::size()
with non-existing file #6059 - Fixed PHP warning for unserializing
Session
data #6059 - Fixed PHP warning for
V::message()
with nested arrays #6059 - Fix fallbacks in the
Kirby/Api/Api
andKirby/Form/Form
classes when no app object is loaded - The CLI detection also works for processes not attached to a terminal (e.g. externally called from another script)
- Fix
$store.content.id
when deleting page #6111 - Fix handling
image: false
in blueprint for Panel preview images #6020 - Fixes overflow in narrow layout field columns when using a block with
preview: fields
#6128 - Blocks: fixed disabled field preview #5818
- Language argument now gets passed reliably to hooks from dialogs/areas #6117
- Improve link kirbytag behavior when uuid point to non-existing page #6083
- Files section: fixed
NaN
value after sorting files #6067 - Page create dialog: custom fields in dialogs are prefilled with default values #6137
- Page create dialog: no error is thrown when directly publishing page with required fields that have a default value #6119
- Fixed Panel column block gap #5935
- Consistent disabled state and styling for all block types #5100
- It is possible again to use the field names
field
,options
,parent
,siblings
andparams
inside structure fields #6181 $field->toStructure()->field()
now returns a copy of the structure field object as intended #6181file
KirbyTag that references a non-existing file does not throw an exception anymore, when nottext
attribute passed #6177- New text and html props for the
k-tag
component #5834 - New
cancel-small
icon version #5834 - New
$helper.link
#5834 - Upload of the identical file should not change the UUID #5730
- Add missing link field id #6169
♻️ Refactored
- New
this.$helper.array.
functions:fromObject
,sortBy
,split
,wrap
#6140 - The license file included in the Kirby repo is now formatted correctly on GitHub #6060
- PHPUnit test provider methods are now static
FileActionsTest
: static provider methods #6092
- Prepare for Vue 3
- Remove input theme field mentions #6102
- Use more PHP arrow functions #6125
- DRY tests with
Kirby\TestCase
#6124 - Blocks and layouts reuse props across components #5818
- Color field: options should be written as
$value => $name
, e.g. #6152
options:
"#F8B195": "Sunny rays"
"#F67280": "First-love blush"
"#C06C84": "Cherry blossom"
"#6C5B7B": "Morning gloom"
"#355C7D": "Midnight rain"
- Improved performance due to caching blueprint section objects #6175
☠️ Deprecated
- Color field: writing options as
$name => value
has been deprecated #6152 $helper.object.clone()
has been deprecated. Use the nativestructuredClone
function instead. #6086Array.fromObject()
has been deprecated. Usethis.$helper.array.fromObject()
instead.Array.wrap()
has been deprecated. Usethis.$helper.array.wrap()
instead.- `myArray.sortBy...
4.0.3
✨ Enhancements
- DDEV development environments are now treated as local and allow setting up the Panel by default #6091
- Kirby 3 licenses can now activated from the Kirby 4 Panel to allow direct renewal #6089
- Updated translations (de, it, pt_BR, pt_PT, tr)
🐛 Bug fixes
- No more deprecation warning when passing empty string to
Url::short()
#6126
🧹 Housekeeping
- Replace remote testing domain with example.com
4.0.2
3.10.0
The version number might seem a bit weird. Here's the explanation:
The latest stable release of Kirby 3 is Kirby 3.9.8, which has support for PHP 8.0 until PHP 8.2. But we cannot offer support for PHP 8.3 without dropping support for PHP 8.0, due to version restrictions in our dependencies. So we decided to introduce this additional release, which adds support for PHP 8.3 (and nothing else) but also drops support for 8.0, while still keeping Kirby 3.9.8 around with the support for PHP 8.0. Depending on your hosting requirements, you can now choose between either Kirby 3.9.8 or Kirby 3.10.0.
✨ Enhancements
- Adds support for PHP 8.3
- Drops support for PHP 8.0
4.0.1
✨ Enhancements
- Updated translations (fr, it, ko, lt, nl)
🐛 Bug fixes
- Fix slug field in file rename dialog #6024
- Writer toolbar: don’t set position when not inline #6021
- Proper default value for
-scroll-top
- Table block: fix sticky table headers inside table block preview #6016
- Slug field: fixed wizard button style #6008
- Slug field: wizard now works correctly with mixed-case field names
- Fixes the bottom margin of the pagination in a models dialog #6010
- Fix the bottom margin for the info box in the lab #6033
- Fix layout field when there are no fieldsets #6035
4.0.0
Kirby 4 is here! 🚀
Full release notes: https://getkirby.com/releases/4.0
4.0.0-rc.4
This is a quick patch for an upload regression that we unfortunately introduced in the last RC. Please, use this RC instead of RC.3
4.0.0-rc.3
UPDATE
We unfortunately introduced an upload bug in this RC, which renders any uploads unusable. We are very sorry for that. Please, use RC.4 instead: https://github.com/getkirby/kirby/releases/tag/4.0.0-rc.4
🚨 Security
During an internal security review of the Kirby 4 codebase, we have discovered two cross-site scripting (XSS) vulnerabilities in the changes dialog and the admin disable dialog for the new TOTP login feature.
Both vulnerabilities were introduced during the Kirby 4 alphas and betas and are fixed by this RC.
The vulnerabilities affect all Kirby sites on Kirby 4 alphas, betas or previous release candidates that might have potential attackers in the group of authenticated Panel users or that allow external visitors to create or update user accounts.
Sites on Kirby 3 are not affected.
✨ Enhancements
- Add Vue target version to jsconfig #5971
- Add missing class aliases to ease some breaking changes #5987
- Field and section labels have title attribute #5994
- colors library supports hex colors without leading
#
#5997 - New disabled theme for
<k-item>
#5996
🐛 Bug fixes
- Fix double-escaping bug in the Panel language view #5986
- ImageMagick: fix focus-cropping bug (thanks to @mrflix) #5982
- Block selector: fix for empty groups #5794
- Object field: fix disabled table style #5957
- Models fields: add disabled style #5959
- Link field: fix model preview for too long titles #5924
- Slug field respects custom allowed slug characters from
Str::$defaults['slug']['allowed']
#5929 - Buttons in field and section headers don’t wrap on narrow screens #5994
- ColornameInput: only use
getComputedStyle
as last resort when colors library fails #5997
♻️ Refactored
- Use the Vue object syntax for dynamic
:style
attributes to enhance the robustness and security #5986 - Ensure the security of the
Str::safeTemplate()
method against code execution attacks with an automated test #5986
🚨 Breaking changes
$helper.string.slug
: theallow
parameter now defines the whole set of allowed characters, not just the characters in addition toa-z0-9
#5991