'Toegewezen aan', 'subject' => 'Onderwerp', ]; if ($_POST) { require_once 'upload.inc.php'; try { $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->link, 'message' => $html, 'author' => $User->login, ]); if (!$query->rowCount()) { throw new Exception('Fout bij opslaan'); } $newcomment = $Db->dbh->lastInsertId('comments_id_seq'); if (isset($Issue)) { $row = []; foreach (array_keys($journalcol) as $col) { if (!isset($_POST[$col])) continue; $row[$col] = $_POST[$col] ?: NULL; } if (isset($_POST['status'])) { $reset = !empty($_POST['status']); if (isset($Issue->closed) !== $reset) { $row['closed'] = $reset ? ['now()'] : NULL; } } $derived = ['updated' => ['now()']]; $filter = ['id = ? RETURNING *', $Issue->id]; $subquery = $Db->set('issues', $row + $derived, $filter); if ($updated = $subquery->fetch()) { foreach (array_keys($row) as $col) { if ($updated->$col === $Issue->$col) continue; # unaltered $Db->set('journal', [ 'comment_id' => $newcomment, 'property' => 'attr', 'col' => $col, 'old_value' => $Issue->$col, '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"; } } $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";