Releases: getkirby/kirby
Releases · getkirby/kirby
4.6.0
✨ Enhancements
- PHP 8.4 support
- New bluesky icon
🐛 Bug fixes
- Fixed CSS rules messing up grid styling inside the gallery block drawer #6838
- Fix alt attribute for
FileVersion
instances #6852 - Using single quotes in sqlite table discovery query fixes #6769
- Fix console error when no buttons available #6863
- Structure field: fix label of remove dropdown item #6899
- Block options: fix tabbing from sort handle #6893
- Structure field: fix preview input when paginated #6894
- Set require: true on image block location field #6905
- Blueprint
image
option: fixed support for query string #6916 - System view: fixed too long server software names #6917
- Pages and files sections: fixed
page
option #6735 - Role blueprints get properly extended #6918
- Link field: fixed handling of invalid options #6919
- Fixed
js()
/css()
helpers parameters
🧹 Housekeeping
5.0.0-beta.2
Pre-release notes: https://getkirby.com/releases/5
Changelog since 5.0.0-beta.1
✨ Enhancements
- Allow disable all page buttons via
buttons: false
- New way to set the default storage instance for all models #6867
- New
App::storage(ModelWithContent $model)
method - New
storage
component, which can be overwritten in plugins or the app instance setup. - The storage component is now used in all Models to create the default storage instance
// How to create a new default storage instance component: use Kirby\Cms\App; use Kirby\Cms\ModelWithContent; use Kirby\Content\PlainTextStorage; class MyCustomStorageClass extends PlainTextStorage { } // on app initialisation $kirby = new App([ 'components' => [ 'storage' => function (App $kirby, ModelWithContent $model) { return MyCustomStorageClass($model); ] ] ]); // in a plugin App::plugin('my/storage', [ 'components' => [ 'storage' => function (App $kirby, ModelWithContent $model) { return MyCustomStorageClass($model); ] ] ]);
- New
- New
$app->role()
method that works like$app->user()
to return a specific role or the role of the current user. #6874 - View buttons: i18n + query support, component name from key
Panel\Ui\Button
: i18n support fortext
andtitle
propsPanel\Ui\Buttons\ViewButtons
andPanel\Ui\Buttons\ViewButton
have new optional$model
property- Kirby query support in
Panel\Ui\Buttons\ViewButton
forlink
,dialog
,drawer
,icon
,text
,theme
props - Deriving the Vue component name from key:
This first looks up
buttons: - preview retour: text: Retour
k-retour-view-button
and falls back tok-view-button
.
- Writer: nodes with
inline: true
in their button definition are displayed as inline buttons in toolbar (instead inside the dropdown) #6902 - New
this.$helper.object.filter(object, predicate)
. #6902 - Page status button uses custom status labels for
title
#6911 - Plugin update status: passive theme for unknown plugin versions #6920
- System view: Plugin table features two distinct columns for the license type and status #6896
- LicenseStatus supports
link
,dialog
anddrawer
props #6896
🐛 Bug fixes
- Fixed
Str::ucfirst()
behavior, now behaves like PHP default #6834 - Writer field: inline toolbar is hidden when no nodes and marks are available #6804
- Page dropdown: fix disabling preview item #6891
- File preview: fix aspect ratio for medium viewports #6891
- Page section w/ table layout: fix flag column #6866
- Range/Number field: fix
isEmpty()
usage #6898 - Custom writer nodes: fixed active state detection for nodes that include paragraph child nodes #6902
- Permissions are now always correctly determined if the active user changes during the request #6880
🐛 Fixed regressions from Beta.1
- Hide language selector for single language #6850
- Duplicate action is forcing to copy files #6921
- Link in info box is now visible again in dark mode #6906
🚨 Breaking changes
- The
Str::ucfirst()
method no longer lowercases all but the first letter of the text, it only capitalizes the first letter. #6860 - Classes extending
ModelPermissions
need to set their category with theconst CATEGORY
orstatic function category()
instead ofprotected string $category
and use the staticuser()
method instead of$user
and$permissions
properties #6880 <k-item>
: Removeddata-only-option
attributes<k-dialog>
: Removeddata-has-footer
attribute<k-toggles-input>
: Removeddata-disabled
attribute<k-writer-input>
: Removeddata-toolbar-inline
attribute<k-bubble>
: Removeddata-has-text
attribute<k-header>
: Removeddata-has-buttons
attribute<k-tag>
: Removeddata-has-image
anddata-has-toggle
attributes<k-tree>
: Removeddata-has-subtree
attributerequired: true
on checkbox and toggle fields now enforces that these fields need to be checked/toggles (active state)
☠️ Deprecated
panel.favicon
option throws deprecation warnings forurl
option (usehref
instead) and forrel
key (userel
option instead)
♻️ Refactored
ModelPermissions
now also supportsLanguage
objects as quasi models #6876- New
LanguagePermissions
class that inherits the existing logic fromLanguageRules
for consistency with other models #6876 - Globally cache
access
andlist
permissions per permission category, model type and user role to reduce code duplication #6881
♻️ Refactored after Beta.1
- Update preview token logic to reliably fix tokens for the homepage #6856
🧹 Housekeeping
- Move
$app->roles()
method to theAppUsers
trait to increase the overview - Clean up permission-related code for consistency #6879
4.6.0-rc.1
🐛 Bug fixes
- Fixed CSS rules messing up grid styling inside the gallery block drawer #6838
- Fix alt attribute for
FileVersion
instances #6852 - Using single quotes in sqlite table discovery query fixes #6769
- Fix console error when no buttons available #6863
- Structure field: fix label of remove dropdown item #6899
- Block options: fix tabbing from sort handle #6893
- Structure field: fix preview input when paginated #6894
- Set require: true on image block location field #6905
- Blueprint
image
option: fixed support for query string #6916 - System view: fixed too long server software names #6917
- Pages and files sections: fixed
page
option #6735 - Role blueprints get properly extended #6918
- Link field: fixed handling of invalid options #6919
🧹 Housekeeping
5.0.0-beta.1
Pre-release notes: https://getkirby.com/releases/5
4.5.0
✨ Enhancements
avif
images are now considered resizable by default #6670- User view: show prev/next buttons also on account view #6610
- Video block: better
autoplay
handling panel.upload
exposes upload dialogopen
event #6621- New
Toolkit\Obj::toKeys()
method #6651 - Improved
Roles
filter methods #6655 - New
angle-dropdown
button #6663
- Improved highlighting of current items in a dropdown #6672
- Tags input: dropdown shows current selection via checkbox/radio button #6698
api.methodOverwrite
config option to activate purePATCH
requests #6650- Moving pages: allow pages as parent that don’t restrict any templates in their blueprint, but feature at least one pages section listing the page’s children #6717
- Role always shown when creating a new user, even if only one role available #6654
- Support
icon
andinfo
for query and api options #6780 - Changed the status update host to getkirby.com #6787
- Update composer dependencies
🐛 Bug fixes
- Fixed
$field->isEmpty()
for some empty arrays #6637 slugs.maxlength
option works now #6526- Fix updating new language variables for secondary languages #6622
- Page create dialog:
toggle
field allowed #6669 User::roles()
doesn't return only the current role for non-admin users but all available roles #6663- Fixed issue where the page create dialog would use an existing page
new
instead just creating a temporary object #6643 - Radio input: fix default columns count #6699
- Multilang: Writer field now inserts the correct permalink for the current content language #6668
- Multilang:
$page->permalink()
returns a language-based permalink for the current content language #6668 - Fixed uploading non-resizable files with template/blueprint that features
create
option #6718 - Fixed some cached page and file properties #6720
- The license key dialog now trims accidently copied spaces from the license key #6722
- Panel UI fixed for
create
andchangeRole
permissions and user options #5147 #5146 - Fix preview links for files when the parent page preview is disabled #6786
☠️ Deprecated
UserRules::validRole()
♻️ Refactored
- Remove roles count check from
UserPermissions
#6658
5.0.0-alpha.4
Pre-release notes: https://getkirby.com/buzz/v5-alpha
4.5.0-rc.1
✨ Enhancements
avif
images are now considered resizable by default #6670- User view: show prev/next buttons also on account view #6610
- Video block: better
autoplay
handling panel.upload
exposes upload dialogopen
event #6621- New
Toolkit\Obj::toKeys()
method #6651 - Improved
Roles
filter methods #6655 - New
angle-dropdown
button #6663
- Improved highlighting of current items in a dropdown #6672
- Tags input: dropdown shows current selection via checkbox/radio button #6698
api.methodOverwrite
config option to activate purePATCH
requests #6650- Moving pages: allow pages as parent that don’t restrict any templates in their blueprint, but feature at least one pages section listing the page’s children #6717
- Role always shown when creating a new user, even if only one role available #6654
- Support
icon
andinfo
for query and api options #6780 - Changed the status update host to getkirby.com #6787
- Update composer dependencies
🐛 Bug fixes
- Fixed
$field->isEmpty()
for some empty arrays #6637 slugs.maxlength
option works now #6526- Fix updating new language variables for secondary languages #6622
- Page create dialog:
toggle
field allowed #6669 User::roles()
doesn't return only the current role for non-admin users but all available roles #6663- Fixed issue where the page create dialog would use an existing page
new
instead just creating a temporary object #6643 - Radio input: fix default columns count #6699
- Multilang: Writer field now inserts the correct permalink for the current content language #6668
- Multilang:
$page->permalink()
returns a language-based permalink for the current content language #6668 - Fixed uploading non-resizable files with template/blueprint that features
create
option #6718 - Fixed some cached page and file properties #6720
- The license key dialog now trims accidently copied spaces from the license key #6722
- Panel UI fixed for
create
andchangeRole
permissions and user options #5147 #5146
☠️ Deprecated
UserRules::validRole()
♻️ Refactored
- Remove roles count check from
UserPermissions
#6658
5.0.0-alpha.3
Pre-release notes: https://getkirby.com/buzz/v5-alpha
4.4.1
4.4.0
Tip
Pages section: if you are experiencing performance issues with a pages section and the table layout, you can try to use rawvalues: true
to improve performance. This will use the unprocessed values from the content file, which is a lot more performant, but can result in some broken column previews (which would require processed values).
✨ Enhancements
- Link field: when selecting files, the current page is preselected #6458
- New auto option for
(image: )
KirbyTag(image: cat.jpg width: auto height: auto)
// config.php 'kirbytext' => [ 'image' => [ 'width' => 'auto', 'height' => 'auto', ] ];
- Image/Gallery blocks: added selector to change background #6430
- Pages, files and users dialogs use proper radio buttons/checkboxes to display selection #6044 #5930
- Site area: using icon defined in site blueprint #5936
- Added support for language-specific UUID urls #6312
/en/@/page/1234 /en/@/file/1234
- New
google
icon - Allow access to the
Kirby\Cms\License::HISTORY
const #6503 k-button
: use title or text of a button to setaria-label
#5899$permissions->for()
,$modelpermissions->can()
and$modelpermissions->cannot()
accept a new$default
parameter #6548- Pages, files and users field: default empty string is now correct when only allowed to select one page/file/user #6565
- All fields have a
.k-field-type-TYPE
CSS class added #5009 - File uploads: preview uses
image
options from field/section #6611 - Change URL dialog: in multilang, show the language segment as part of the path preview #6607
content.uuid.index
option to prevent index lookup. Will throw an exception if a UUID model cannot be looked up from the cache alone. This requires you to keep a full UUID cache at all times but can be helpful for very large sites where any index lookup would run into memory limits. #6564- Use
content.uuid.format
to specifyuuid-v4
as format.
- Use
system.exception
hook: returnfalse
to prevent error to be logged #5028- Filename sanitization considers user language for better results #4972
(image: )
KirbyTag: for local files, addwidth: auto
and/orheight: auto
to include the actual image dimensions as attributes #5064
🐛 Bug fixes
- Using
Cmd + S/Ctrl + S
in nested structures/objects with date fields does not corrupt data anymore #6390 Kirby\Exception\NotFoundException
thrown during page rendering now redirects request to the error page (with 404); asKirby\Exception\ErrorPageException
already does #6553- Link field preview: fixed overflow instead of wrapping for long links #6510
- Tags input: dropdown won't open anymore when
max
has been reached #6468 - Text block: fixed padding when replacing writer input with texture input #6484
- Panel topbar: fix overflow when breadcrumb gets very long #6348
A::random()
throws exception instead of error when$count
is higher than array length #6555- Fix
focus
helper for non-native inputs #6347 - Writer field: content with non-breaking changes doesn't anymore show up as changed always #6285
- Fixed
new Http\Uri()
for relative URLs with a colon inside #6331 pattern
attribute for Panel fields: fixed inconsistencies between frontend and backend validation #6585preview
blueprint option now supports setting role-based permissions #6572$file->previewUrl()
returnsnull
if parent page preview is deactivated/not allowed for the user #6572- Fixed parallel Panel search requests #6409
- Files field: store only filenames when UUIDs disabled and file belongs to the same page #5084
- Sections with table layout: fixed some issues with sorting rows that should be unsortable #6609
- Redirect language URLs with non-translated slugs #3550
- Fix docblocks for $panel.dialog/$panel.drawer #6648