'(:all)delete-comment.json', 'method' => 'POST', 'action' => function () { $json = file_get_contents('php://input'); $data = json_decode($json); // kirby()->impersonate('kirby'); $page = page($data->location->page->uri); $file = $page->file($data->location->file->uuid); $comments = $file->comments()->isEmpty() == true ? [] : Yaml::decode($file->comments()->value()); $isReply = $data->location->parent->id ?? false; foreach ($comments as $key => &$comment) { if ($isReply) { if ($comment['id'] === $data->location->parent->id) { foreach ($comment['replies'] as $replyKey => $reply) { if ($reply['id'] === $data->id) { unset($comment['replies'][$replyKey]); $comment['replies'] = array_values($comment['replies']); } } } } else { if ($comment['id'] === $data->id) { unset($comments[$key]); } } } $comments = array_values($comments); $newFile = $file->update([ 'comments' => $comments, ]); echo json_encode(getFileData($newFile)); // Note: Les notifications sont maintenant dérivées des commentaires. // La suppression du commentaire supprime automatiquement la notification. exit; }, ];