X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/7f191935501429b51d0b220ba32eda8b3a747655..28665e987ef8be35ce4f7082bd7aa5c91371397a:/widget/reply.php?ds=inline diff --git a/widget/reply.php b/widget/reply.php index 2bc9014..7e7d327 100644 --- a/widget/reply.php +++ b/widget/reply.php @@ -1,52 +1,142 @@ Reacties'."\n"; +require_once 'upload.inc.php'; if ($_POST) { try { - $html = nl2br(htmlspecialchars($_POST['reply'])); - $html = "
$html
"; - $query = $Db->insert('comments', [ - 'page' => $Page, - 'message' => $html, - 'author' => $User->login, - ]); - if (!$query->rowCount()) { - throw new Exception('Fout bij opslaan'); - } + $newcomment = createcomment($_POST, $Issue); + $target = "/{$Page->link}?last=$newcomment#$newcomment"; + abort($target, ($Page->api ? 200 : 303) . ' reply success'); $_POST['reply'] = NULL; } catch (Exception $e) { - print "Antwoord niet opgeslagen: {$e->getMessage()}.
\n\n"; + if ($Page->api) { + abort(ucfirst($e->getMessage()), '500 reply error'); + } + printf("Antwoord niet opgeslagen: %s.
\n\n", + nl2br(htmlspecialchars($e->getMessage())) + ); } } -$query = $Db->query('SELECT * FROM comments WHERE page = ? ORDER BY created', [$Page]); +$cols = "*, (SELECT json_agg(journal.*) FROM journal WHERE comment_id = comments.id AND property = 'attr') AS journal"; +$query = $Db->query("SELECT $cols FROM comments WHERE page = ? ORDER BY created", [$Page->link]); + +if ($row = $query->fetch()) { + print $row->message; + $Page->teaser = $row->raw; +} print '%s\n", $row->message); + if ($html = $row->message) { + $html = preg_replace('/(?<= 2 ? 'loading="lazy" ' : '', $html, -1, $found); + $imagecount += $found; + printf("
\n%s\n", $html); + } + if ($changes = json_decode($row->journal)) { + print '
%2$s' : + (!isset($change->value) ? 'verwijderd (
%snaar
%s'), + $change->old_value, $change->value + ) + ); + } + print "