X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/483761be2d405d4a69c005bd407f12e6d81445b1..d9e768059d2a10c2c5eb5b908a998fb496b4e4cf:/widget/reply.php diff --git a/widget/reply.php b/widget/reply.php index 879b53d..0a0e4e5 100644 --- a/widget/reply.php +++ b/widget/reply.php @@ -4,14 +4,32 @@ require_once 'database.inc.php'; $journalcol = [ 'assign' => 'Toegewezen aan', + 'subject' => 'Onderwerp', ]; if ($_POST) { + require_once 'upload.inc.php'; try { - $html = nl2br(htmlspecialchars($_POST['reply'])); - $html = "

$html

"; + $html = messagehtml($_POST['reply']); + if ($_FILES and !empty($_FILES['image'])) { + $target = 'data/upload'; + if (!file_exists($target)) { + throw new Exception("er is geen uploadmap aanwezig op $target"); + } + $target .= '/' . $User->login; + if ($result = userupload($_FILES['image'], $target)) { + if (preg_match('(^image/)', $_FILES['image']['type'])) { + $html .= sprintf('

', $result); + } + else { + $html .= sprintf('

Bijgevoegd bestand: %s

', + $result, basename($result) + ); + } + } + } $query = $Db->set('comments', [ - 'page' => $Page, + 'page' => $Page->link, 'message' => $html, 'author' => $User->login, ]); @@ -47,33 +65,62 @@ if ($_POST) { 'value' => $updated->$col, ]); } + $Issue = $updated; } } + + $target = "/{$Page->link}/$newcomment#$newcomment"; + abort($target, ($Page->api ? 200 : 303) . ' reply success'); $_POST['reply'] = NULL; } catch (Exception $e) { + if ($Page->api) { + abort(ucfirst($e->getMessage()), '500 reply error'); + } print "

Antwoord niet opgeslagen: {$e->getMessage()}.

\n\n"; } } -$query = $Db->query('SELECT * FROM comments WHERE page = ? ORDER BY created', [$Page]); +$cols = '*, (SELECT json_agg(journal.*) FROM journal WHERE comment_id = comments.id) AS journal'; +$query = $Db->query("SELECT $cols FROM comments WHERE page = ? ORDER BY created", [$Page->link]); print '\n\n";