diff --git a/public/content/inspirations/1_shape-of-the-nature/20878a95a67b25e122365f351f1ec1a7.jpg.txt b/public/content/inspirations/1_shape-of-the-nature/20878a95a67b25e122365f351f1ec1a7.jpg.txt index b1e6444..e502190 100644 --- a/public/content/inspirations/1_shape-of-the-nature/20878a95a67b25e122365f351f1ec1a7.jpg.txt +++ b/public/content/inspirations/1_shape-of-the-nature/20878a95a67b25e122365f351f1ec1a7.jpg.txt @@ -1,3 +1,11 @@ +Alt: + +---- + +Favoriteforusers: + +---- + Description: ---- diff --git a/public/content/inspirations/1_shape-of-the-nature/d82f18573c439d6edd434ffca62471a7.png.txt b/public/content/inspirations/1_shape-of-the-nature/d82f18573c439d6edd434ffca62471a7.png.txt index b799303..2e8c181 100644 --- a/public/content/inspirations/1_shape-of-the-nature/d82f18573c439d6edd434ffca62471a7.png.txt +++ b/public/content/inspirations/1_shape-of-the-nature/d82f18573c439d6edd434ffca62471a7.png.txt @@ -1,3 +1,11 @@ +Alt: + +---- + +Favoriteforusers: - user://WWjXgPWk + +---- + Favoriteforclients: - page://G418qZ4ABsoWFx4i diff --git a/public/site/blueprints/files/inspiration.yml b/public/site/blueprints/files/inspiration.yml index 72df070..b7b4926 100644 --- a/public/site/blueprints/files/inspiration.yml +++ b/public/site/blueprints/files/inspiration.yml @@ -5,7 +5,11 @@ accept: type: image fields: + alt: + label: Texte alternatif + type: text favoriteForUsers: label: | Dans les favoris des utilisateurs : type: users + disabled: true diff --git a/public/site/config/config.php b/public/site/config/config.php index 795178d..1b6e547 100644 --- a/public/site/config/config.php +++ b/public/site/config/config.php @@ -16,89 +16,10 @@ return [ 'language' => 'fr', 'css' => 'assets/css/panel.css', 'favicon' => 'assets/favicons/favicon.svg', - 'menu' => [ - 'site' => [ - 'label' => 'Dashboard', - 'icon' => 'dashboard', - 'current' => function (string $current): bool { - // the links of all your custom menu entries - $links = [ - 'pages/clients', - 'pages/projects', - 'pages/inspirations', - 'pages/notifications', - 'pages/events' - ]; - $path = Kirby\Cms\App::instance()->path(); - return - $current === 'site' && - A::every($links, fn ($link) => Str::contains($path, $link) === false); - } - ], - 'clients' => [ - 'label' => 'Clients', - 'icon' => 'account', - 'link' => 'pages/clients', - 'current' => function (string $current): bool { - $path = Kirby\Cms\App::instance()->path(); - return Str::contains($path, 'pages/clients'); - } - ], - 'projects' => [ - 'label' => 'Projets', - 'icon' => 'folder', - 'link' => 'pages/projects', - 'current' => function (string $current): bool { - $path = Kirby\Cms\App::instance()->path(); - return Str::contains($path, 'pages/projects'); - } - ], - 'inspirations' => [ - 'label' => 'Inspirations', - 'icon' => 'images', - 'link' => 'pages/inspirations', - 'current' => function (string $current): bool { - $path = Kirby\Cms\App::instance()->path(); - return Str::contains($path, 'pages/inspirations'); - } - ], - '-', - 'notifications' => [ - 'label' => 'Notifications', - 'icon' => 'bell', - 'link' => 'pages/notifications', - 'current' => function (string $current): bool { - $path = Kirby\Cms\App::instance()->path(); - return Str::contains($path, 'pages/notifications'); - } - ], - 'events' => [ - 'label' => 'Événements', - 'icon' => 'calendar', - 'link' => 'pages/events', - 'current' => function (string $current): bool { - $path = Kirby\Cms\App::instance()->path(); - return Str::contains($path, 'pages/events'); - } - ], - '-', - 'users', - 'system' - ] + 'menu' => require(__DIR__ . '/menu.php'), ], 'routes' => [ - [ - 'pattern' => '(:all)logout.php', - 'action' => function () { - $kirby = kirby(); - $user = $kirby->user(); - $user->logout(); - session_start(); - - go($_SESSION['redirect_url']); - - return '
logout'; - } - ] + require(__DIR__ . '/routes/logout.php'), + require(__DIR__ . '/routes/toggle-favorite.php'), ] ]; diff --git a/public/site/config/menu.php b/public/site/config/menu.php new file mode 100644 index 0000000..fbfbccc --- /dev/null +++ b/public/site/config/menu.php @@ -0,0 +1,71 @@ + [ + 'label' => 'Dashboard', + 'icon' => 'dashboard', + 'current' => function (string $current): bool { + // the links of all your custom menu entries + $links = [ + 'pages/clients', + 'pages/projects', + 'pages/inspirations', + 'pages/notifications', + 'pages/events' + ]; + $path = Kirby\Cms\App::instance()->path(); + return + $current === 'site' && + A::every($links, fn ($link) => Str::contains($path, $link) === false); + } + ], + 'clients' => [ + 'label' => 'Clients', + 'icon' => 'account', + 'link' => 'pages/clients', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/clients'); + } + ], + 'projects' => [ + 'label' => 'Projets', + 'icon' => 'folder', + 'link' => 'pages/projects', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/projects'); + } + ], + 'inspirations' => [ + 'label' => 'Inspirations', + 'icon' => 'images', + 'link' => 'pages/inspirations', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/inspirations'); + } + ], + '-', + 'notifications' => [ + 'label' => 'Notifications', + 'icon' => 'bell', + 'link' => 'pages/notifications', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/notifications'); + } + ], + 'events' => [ + 'label' => 'Événements', + 'icon' => 'calendar', + 'link' => 'pages/events', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/events'); + } + ], + '-', + 'users', + 'system' +]; \ No newline at end of file diff --git a/public/site/config/routes/logout.php b/public/site/config/routes/logout.php new file mode 100644 index 0000000..ff9d5b6 --- /dev/null +++ b/public/site/config/routes/logout.php @@ -0,0 +1,13 @@ + '(:all)logout.php', + 'action' => function () { + $kirby = kirby(); + $user = $kirby->user(); + $user->logout(); + session_start(); + + go(site()->url()); + } +]; \ No newline at end of file diff --git a/public/site/config/routes/toggle-favorite.php b/public/site/config/routes/toggle-favorite.php new file mode 100644 index 0000000..a609b9c --- /dev/null +++ b/public/site/config/routes/toggle-favorite.php @@ -0,0 +1,33 @@ + '(:all)toggle-favorite.json', + 'method' => 'post', + 'action' => function () { + $json = file_get_contents('php://input'); + $data = json_decode($json); + + $fileName = $data->fileName; + + $page = page($data->inspirationUri); + $file = $page->files()->find($fileName); + + $user = Find::user($data->userUuid); + $favoriteForUsers = $file->favoriteForUsers()->toUsers(); + + if ($favoriteForUsers->has($user)) { + $favoriteForUsers->remove($user); + } else { + $favoriteForUsers->add($user); + } + + $array = $favoriteForUsers->toArray(); + $yaml = Data::encode($array, 'yaml'); + + $file->update([ + 'favoriteForUsers' => $yaml + ]); + + return $favoriteForUsers->toJson(); + } +]; \ No newline at end of file diff --git a/public/site/snippets/footer.php b/public/site/snippets/footer.php index 3c52612..0526bd8 100644 --- a/public/site/snippets/footer.php +++ b/public/site/snippets/footer.php @@ -1,7 +1,9 @@