X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/483761be2d405d4a69c005bd407f12e6d81445b1..05c560470887c86a30c82360d7be5caf0de1baa4:/widget/reply.php diff --git a/widget/reply.php b/widget/reply.php index 879b53d..66e9587 100644 --- a/widget/reply.php +++ b/widget/reply.php @@ -4,15 +4,37 @@ 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

"; - $query = $Db->set('comments', [ - 'page' => $Page, - 'message' => $html, + $reply = []; + if (isset($_POST['reply']) and $body = $_POST['reply']) { + $reply['raw'] = $body; + $reply['message'] = messagehtml($body); + } + 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)) { + $reply['raw'] .= "/$result"; + if (preg_match('(^image/)', $_FILES['image']['type'])) { + $reply['message'] .= sprintf('

', $result); + } + else { + $reply['message'] .= sprintf('

Bijgevoegd bestand: %s

', + $result, basename($result) + ); + } + } + } + $query = $Db->set('comments', $reply + [ + 'page' => $Page->link, 'author' => $User->login, ]); if (!$query->rowCount()) { @@ -47,33 +69,73 @@ 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]); + +if ($row = $query->fetch()) { + print $row->message; + $Page->teaser = $row->raw; +} print '\n\n";