fix send notification to users and create custom user method

This commit is contained in:
isUnknown 2024-10-28 15:02:28 +01:00
parent 9dcb054973
commit f132049948
3 changed files with 133 additions and 12 deletions

View file

@ -18,6 +18,111 @@ Comments:
username: Adrien Payet
date: 2024-10-23T16:22:47+02:00
id: m2lyrs06
m2t206b6:
text: Nouveau com
username: Adrien Payet
date: 2024-10-28T14:27:41+01:00
id: m2t206b6
m2t20ei0:
text: Et ebcore
username: Adrien Payet
date: 2024-10-28T14:27:51+01:00
id: m2t20ei0
m2t213jw:
text: test2
username: Adrien Payet
date: 2024-10-28T14:28:24+01:00
id: m2t213jw
m2t21e5f:
text: autre
username: Adrien Payet
date: 2024-10-28T14:28:38+01:00
id: m2t21e5f
m2t21h7k:
text: sfgd
username: Adrien Payet
date: 2024-10-28T14:28:42+01:00
id: m2t21h7k
m2t2sgrk:
text: test3
username: Adrien Payet
date: 2024-10-28T14:49:41+01:00
id: m2t2sgrk
m2t2sn60:
text: test4
username: Adrien Payet
date: 2024-10-28T14:49:49+01:00
id: m2t2sn60
m2t2ux6u:
text: test5
username: Adrien Payet
date: 2024-10-28T14:51:35+01:00
id: m2t2ux6u
m2t2v0ba:
text: test6
username: Adrien Payet
date: 2024-10-28T14:51:39+01:00
id: m2t2v0ba
m2t2wak4:
text: test8
username: Adrien Payet
date: 2024-10-28T14:52:39+01:00
id: m2t2wak4
m2t2z30f:
text: jfhj
username: Adrien Payet
date: 2024-10-28T14:54:49+01:00
id: m2t2z30f
m2t2ze81:
text: qsvfh
username: Adrien Payet
date: 2024-10-28T14:55:04+01:00
id: m2t2ze81
m2t30udw:
text: fdgjh
username: Adrien Payet
date: 2024-10-28T14:56:12+01:00
id: m2t30udw
m2t31bxv:
text: testl
username: Adrien Payet
date: 2024-10-28T14:56:34+01:00
id: m2t31bxv
m2t32i8i:
text: dlakeja
username: Adrien Payet
date: 2024-10-28T14:57:29+01:00
id: m2t32i8i
m2t33dra:
text: hfdts
username: Adrien Payet
date: 2024-10-28T14:58:10+01:00
id: m2t33dra
m2t34im4:
text: lkqs
username: Adrien Payet
date: 2024-10-28T14:59:03+01:00
id: m2t34im4
m2t359np:
text: lqsjd
username: Adrien Payet
date: 2024-10-28T14:59:38+01:00
id: m2t359np
m2t362kx:
text: ;sjn
username: Adrien Payet
date: 2024-10-28T15:00:16+01:00
id: m2t362kx
m2t36rex:
text: jfghy
username: Adrien Payet
date: 2024-10-28T15:00:48+01:00
id: m2t36rex
m2t37dx2:
text: dkdjsfn
username: Adrien Payet
date: 2024-10-28T15:01:17+01:00
id: m2t37dx2
2:
m2lys1bs:
text: test

View file

@ -29,18 +29,7 @@ return [
'comments' => $comments
]);
foreach (kirby()->users()->without($user) as $otherUser) {
try {
$notifications = $otherUser->notifications()->isNotEmpty() ? $otherUser->notifications()->toArray() : ["comments" => []];
$notifications['comments'][$data->id] = $newComment;
$otherUser->update([
"notifications" => $notifications
]);
} catch (\Throwable $th) {
throw new Exception($th->getMessage(), 1);
}
}
$user->sendNotification('comments', $newComment);
return getFileData($newFile);
}

View file

@ -0,0 +1,27 @@
<?php
Kirby::plugin('adrienpayet/pdc-user-methods', [
'userMethods' => [
'sendNotification' => function ($group, $data) {
foreach (kirby()->users()->not($this) as $otherUser) {
try {
$notifications = $otherUser->notifications()->isNotEmpty()
? Yaml::decode($otherUser->notifications()->value())
: [];
if (!isset($notifications[$group])) {
$notifications[$group] = [];
}
$notifications[$group][$data['id']] = $data;
$otherUser->update([
'notifications' => $notifications
]);
} catch (\Throwable $th) {
throw new Exception("Error updating notifications: " . $th->getMessage() . ' line ' . $th->getLine(), 1);
}
}
}
]
]);