nouveau-theatre-de-besancon/site/plugins/front-comments/dialogs/create-issue.php

46 lines
1.2 KiB
PHP
Raw Normal View History

2024-09-10 17:14:38 +02:00
<?php
use AdrienPayet\FrontComments\Comment;
return [
'pattern' => 'comments/create-issue/(:any)/(:all)',
'load' => function (string $commentId, string $pageUri) {
return [
'component' => 'k-text-dialog',
'props' => [
'text' => t('adrienpayet.front-comments.confirm-create-issue')
]
];
},
'submit' => function (string $commentId, string $pageUri) {
$page = Find::page($pageUri);
$comments = $page->comments()->toData('yaml');
$commentData = getCommentData($comments, $commentId);
$comment = new Comment($commentData, $page);
try {
$comment->createIssue();
$comments = array_map(
function ($item) use ($comment) {
if ($item['id'] == $comment->id()) {
return $comment->data();
}
return $item;
},
$comments
);
$page->update(
[
'comments' => $comments
]
);
return true;
} catch (\Throwable $th) {
throw new Exception($th->getMessage(), 1);
}
}
];