github getkirby/kirby 5.6.2

latest release: 6.0.0-beta.2
3 hours ago

✨ Enhancements

  • New panel.uploads option sets how many files the Panel uploads at the same time (default: 3)
// site/config/config.php
return [
  'panel' => [
    'uploads' => 5
  ]
];
  • New Kirby\Image\Svg class to read information from SVG markup #8546
  • Animated GIF thumbs from the imagickdriver are smaller
  • New $helper.number.format(value, options) formats numbers in the Panel's interface language. #8674

🏎️ Performance

  • Natural sorting in the Panel (e.g. structure fields with sortBy) is 5–30× faster for large lists. #8675

🐛 Bug fixes

  • Content storage:
    • Saving no longer replaces secondary language content with the default language under certain circumstances #8591
    • Hooks that chain several model actions without returning the result no longer break the action that triggered them, e.g.
      publishing changes in the Panel. #8548
    • Kirby\Filesystem\Dir::remove() no longer fails when a parallel request removes the directory at the same time #8606
    • Deleting a page with subpages or files that cannot be deleted no longer removes the page's content and some of its files and subpages before failing. #8656
  • Translations
    • Plugin translations no longer go missing if translations were read before all plugins were loaded #8547
    • The Panel's <html lang> attribute is a valid language tag (e.g. pt-BR instead of pt_BR). #8674
    • Fix custom language view buttons breaking the view #8569
  • Queries:
    • Array values are only called if they are closures, never as PHP functions by name #8575
    • A context variable set to null no longer falls back to the global query function of the same name #8575
    • Fixed queries containing uppercase AND/OR (e.g. page.title == "ORANGE") #8573
    • Fixed names starting with true, false or null (e.g. page.nullable) #8573
  • Media handling
    • Pages no longer break when images are uploaded in parallel while being resized #8374
    • Batch uploads in the Panel no longer fill up all PHP-FPM workers and leave the Panel unresponsive. #8526
    • SVGs without width/height attributes render in the Panel file preview #8014
    • More accurate dimensions for SVG files: a missing width or height is derived from the viewBox ratio, the viewBox offset no longer reduces the size, decimals are rounded instead of cut off, and comma-separated viewBox values are supported #8546
    • imagick thumb driver resizes and crops all frames of animated GIFs, not just one
    • Converting an animated GIF to JPG or PNG with the imagick or im driver creates a thumb of the first frame, instead of publishing the original GIF and leaving extra files in the media folder
    • Converting an animated GIF to WebP with the im driver keeps all frames intact
    • Converting an animated GIF to AVIF with the imagick or im driver creates a small still thumb of the first frame instead of a large file with one image per frame
    • imagick and im thumb drivers create intact thumbs of animated WebPs instead of glitchy frames, and imagick no longer fails to convert them to GIF
    • Grayscale thumbs of GIFs with the imagick driver use the brightness of each color instead of its red channel
    • Focus points at 1% or less crop from the correct position instead of the opposite edge #8685
    • Thumbs with an unknown crop position are cropped from the center instead of failing #8685
    • File sizes in the upload dialog use the same units and number format as the file view (e.g. 2.5 GB instead of 2.7BB). #8674
    • Thumb job files no longer stay in the media folder when a template reads the size of a new thumb #6511
  • Database
    • Kirby\Database\Database::connect() uses PDO::connect() on PHP 8.4+. Kirby\Database\Database::connection() now returns the driver subclass (e.g. Pdo\Sqlite), so driver-specific methods work without PHP 8.5 deprecations. #8669
    • Kirby\Database\Query::count() counts the groups of grouped queries and the distinct rows of distinct()queries with a select list. This also fixes the total  Kirby\Database\Query::page(). #8670
  • Panel
    • Clicking a link in a link field preview inside a table (e.g. a structure field) no longer also opens the row. #8672
    • <select> elements use correct colors for dark Panel theme #8567
    • Page/file pickers no longer hang with a loading spinner when the user's role isn't allowed to list any page/file #8544
    • Fixed Cmd/Ctrl+S in a pages, files or users field dialog clearing the field instead of applying the selection. #8488
    • Page create dialog: title and slug templates no longer HTML-escape special characters like & #8553
    • Range inputs format their value in the Panel's interface language. #8674
    • Panel activation banner does not try anymore to open license dialog if user has no permission #8555
  • Http
    • Kirby\Http\Uri::idn() and Kirby\Http\Uri::unIdn() no longer drop the host when the IDN conversion fails. #8678
    • Kirby\Http\Idn::decodeEmail() and Kirby\Http\Idn::encodeEmail() keep the address as is when the domain cannot be converted and no longer throw for an empty domain #8678
    • Kirby\Http\Idn::decodeEmail() and Kirby\Http\Idn::encodeEmail() split at the last @, so quoted local parts like "a@b"@example.com are converted correctly #8678

♻️ Refactored

  • Kirby\Toolkit\V::email() validates the value type explicitly instead of catching all errors #8678

Don't miss a new kirby release

NewReleases is sending notifications on new releases.