Update to Kirby 5

This commit is contained in:
Paul Nicoué 2025-07-11 14:41:34 +02:00
parent 5d9979fca8
commit 0fefc5e2e1
472 changed files with 30853 additions and 10301 deletions

View file

@ -0,0 +1,20 @@
<?php
use Kirby\Cms\User;
use Kirby\Panel\Ui\Buttons\SettingsButton;
use Kirby\Panel\Ui\Buttons\ViewButton;
use Kirby\Toolkit\I18n;
return [
'users.create' => function (User $user, string|null $role = null) {
return new ViewButton(
dialog: 'users/create?role=' . $role,
disabled: $user->kirby()->roles()->canBeCreated()->count() < 1,
icon: 'add',
text: I18n::translate('user.create'),
);
},
'user.settings' => function (User $user) {
return new SettingsButton(model: $user);
}
];

View file

@ -57,7 +57,7 @@ return [
'email' => '',
'password' => '',
'translation' => $kirby->panelLanguage(),
'role' => $role ?? $roles['options'][0]['value'] ?? null
'role' => $role ?: $roles['options'][0]['value'] ?? null
]
]
];
@ -231,9 +231,9 @@ return [
// compare passwords
if ($password !== $passwordConfirmation) {
throw new InvalidArgumentException([
'key' => 'user.password.notSame'
]);
throw new InvalidArgumentException(
key: 'user.password.notSame'
);
}
// change password if everything's fine
@ -319,7 +319,6 @@ return [
return [
'event' => 'user.delete',
'dispatch' => ['content/remove' => [$url]],
'redirect' => $redirect
];
}

View file

@ -1,18 +1,29 @@
<?php
use Kirby\Cms\Find;
use Kirby\Panel\Ui\Buttons\LanguagesDropdown;
$files = require __DIR__ . '/../files/dropdowns.php';
return [
'user' => [
'pattern' => 'users/(:any)',
'options' => fn (string $id) =>
Find::user($id)->panel()->dropdown()
],
'user.languages' => [
'pattern' => 'users/(:any)/languages',
'options' => function (string $id) {
return Find::user($id)->panel()->dropdown();
$user = Find::user($id);
return (new LanguagesDropdown($user))->options();
}
],
'user.file' => [
'pattern' => '(users/.*?)/files/(:any)',
'options' => $files['file']
],
'user.file.languages' => [
'pattern' => '(users/.*?)/files/(:any)/languages',
'options' => $files['language']
]
];

View file

@ -1,29 +1,12 @@
<?php
use Kirby\Cms\App;
use Kirby\Toolkit\Escape;
use Kirby\Panel\Controller\Search;
use Kirby\Toolkit\I18n;
return [
'users' => [
'label' => I18n::translate('users'),
'icon' => 'users',
'query' => function (string|null $query, int $limit, int $page) {
$kirby = App::instance();
$users = $kirby->users()
->search($query)
->paginate($limit, $page);
return [
'results' => $users->values(fn ($user) => [
'image' => $user->panel()->image(),
'text' => Escape::html($user->username()),
'link' => $user->panel()->url(true),
'info' => Escape::html($user->role()->title()),
'uuid' => $user->uuid()->toString(),
]),
'pagination' => $users->pagination()->toArray()
];
}
'query' => fn (string|null $query, int $limit, int $page) => Search::users($query, $limit, $page)
]
];

View file

@ -2,6 +2,7 @@
use Kirby\Cms\App;
use Kirby\Cms\Find;
use Kirby\Panel\Ui\Buttons\ViewButtons;
use Kirby\Toolkit\Escape;
return [
@ -18,7 +19,11 @@ return [
return [
'component' => 'k-users-view',
'props' => [
'canCreate' => $kirby->roles()->canBeCreated()->count() > 0,
'buttons' => fn () =>
ViewButtons::view('users')
->defaults('create')
->bind(['role' => $role])
->render(),
'role' => function () use ($roles, $role) {
if ($role) {
return $roles[$role] ?? null;