New Features
New Gap field
The new gap field is a simple layout field to help you organise your fields more visually and create gaps in the field grid.
fields:
category:
type: text
width: 1/2
gap:
type: gap
width: 1/4
featured:
type: toggle
width: 1/4
text:
- "no"
- "yes"
With conditional fields
fields:
hasHeadline:
type: radio
options:
- yes
- no
headline:
type: text
width: 1/2
when:
hasHeadline: yes
gap:
type: gap
width: 1/2
when:
hasHeadline: no
text:
type: textarea
Async api library
All API methods in the Panel now support async await as an alternative to promise callbacks. This helps to break out of callback hell.
const page = await this.$api.pages.get("photography");
console.log(page.title);
New beforeSend
option for $kirby->email()
You can now access the phpMailer instance for more fine-grained control in the new beforeSend
option:
$kirby->email([
'from' => 'no-reply@supercompany.com',
'to' => 'someone@gmail.com',
'subject' => 'Thank you for your contact request',
'body' => 'We will never reply',
'transport' => [
'type' => 'smtp',
'host' => 'mail.getkirby.com',
'port' => 465,
'security' => true,
'auth' => true,
'username' => 'test@test.com',
'password' => 'randomString',
],
// new feature
'beforeSend' =>function ($mailer) {
$mailer->SMTPOptions = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
];
return $mailer;
}
]);
You can also use this new option in email presets in your config file.
New Dark Mode SVG favicon
For Dark Mode users, the favicon of the panel will now automatically switch color and adjust to the dark browser bar.
More new features …
- New
Form::content()
method - New
Vue.$helper.string.camelToKebab(string)
helper - New
Vue.$helper.isComponent(componentName)
helper - Async store actions
Enhancements
- Added unit tests for LanguageRoutes #2609
- Added missing hooks unit tests
- We brought
Kirby\Http\Request\Query
in line withKirby\Http\Query
#2692
Fixes
We introduced an unintentional breaking change in 3.4.0 that broke plugin options in some third-party plugins. 3.4.1 reverts this breaking change. All plugins that already shipped a fix for this breaking change unfortunately have to roll back that fix as well. We are sorry for the hassle! (You can read more about the issue here: #2697)
More fixes …
- Fixed
words
option forCollection::search()
#2698 - Fixed error page in multilang setup #2609
- Fixed issues with Umlauts in user email addresses #2600
- Pass
$originalPage
inpage.duplicate:after
hook to fix breaking change - Structure fields no longer save unsaveable fields #2702
- Fixed warning in Account view after logout #2713
- Fixed warning in Settings view after logout
- Set fixed types in fields to avoid issues in extended fields #2643
translate: false
in a child of a structure field no longer savesnull
on secondary language #1602- Fixed certificate issue in
Remote::post()
requests #2745 - Fixed unexpected behaviour in
Html::tag()
method #2743