Convert issue body to mandatory reply (recognised by oldest date):
INSERT INTO comments
SELECT concat(page, '/', id), body, created, author FROM issues;
CREATE OR REPLACE VIEW messages ...;
foreach ($row as $col => $val) {
$cols[] = $this->_value($val, $params);
}
foreach ($row as $col => $val) {
$cols[] = $this->_value($val, $params);
}
- $sql = sprintf('INSERT INTO %s (%s) VALUES (%s)',
+ $sql = sprintf('INSERT INTO %s (%s) VALUES (%s) RETURNING id',
'"'.$table.'"',
implode(', ', array_keys($row)),
implode(', ', $cols)
'"'.$table.'"',
implode(', ', array_keys($row)),
implode(', ', $cols)
$replies = $Page->widget('reply'); # handle updates
$Page->title .= ': '.htmlspecialchars($Issue->subject);
$replies = $Page->widget('reply'); # handle updates
$Page->title .= ': '.htmlspecialchars($Issue->subject);
- $Page->teaser = $Issue->body;
$Page->body = $replies; # find image
if ($Page->api) return;
$Page->body = $replies; # find image
if ($Page->api) return;
print "</dl></aside>\n\n";
print '<div>';
print "</dl></aside>\n\n";
print '<div>';
print $replies;
print "</div>\n";
return;
print $replies;
print "</div>\n";
return;
$query = $Db->set('issues', [
'page' => $Page->handler,
'subject' => $_POST['subject'],
$query = $Db->set('issues', [
'page' => $Page->handler,
'subject' => $_POST['subject'],
- 'body' => messagehtml($_POST['body']),
+ 'link' => preg_replace('/\b(?:de|het|een)\s+|\W+/', '-', strtolower($_POST['subject'])),
'author' => $User->login,
]);
if (!$query->rowCount()) {
throw new Exception('Issue niet opgeslagen.');
}
'author' => $User->login,
]);
if (!$query->rowCount()) {
throw new Exception('Issue niet opgeslagen.');
}
+ $row = $query->fetch();
+ if (!$row->id) {
+ throw new Exception('Issue niet goed opgeslagen.');
+ }
+ $query = $Db->set('comments', [
+ 'page' => "{$Page->handler}/{$row->id}",
+ 'raw' => $_POST['body'],
+ 'message' => messagehtml($_POST['body']),
+ 'author' => $User->login,
+ ]);
+ if (!$query->rowCount()) {
+ throw new Exception('Issueinhoud niet opgeslagen.');
+ }
$_POST = [];
}
$subsql = "SELECT count(*) FROM comments WHERE page=i.page||'/'||i.id";
$_POST = [];
}
$subsql = "SELECT count(*) FROM comments WHERE page=i.page||'/'||i.id";
-$cols = "*, ($subsql AND message IS NOT NULL) AS replycount";
+$cols = "*, ($subsql AND message IS NOT NULL) - 1 AS replycount";
$cols .= ", ($subsql AND message ~ '<img') AS imagecount";
$sql = "SELECT $cols FROM issues i WHERE page = ?";
if (isset($_GET['open'])) {
$cols .= ", ($subsql AND message ~ '<img') AS imagecount";
$sql = "SELECT $cols FROM issues i WHERE page = ?";
if (isset($_GET['open'])) {
page text NOT NULL DEFAULT 'issue',
link text,
subject text,
page text NOT NULL DEFAULT 'issue',
link text,
subject text,
created timestamptz DEFAULT now(),
closed timestamptz,
updated timestamptz NOT NULL DEFAULT now(),
created timestamptz DEFAULT now(),
closed timestamptz,
updated timestamptz NOT NULL DEFAULT now(),
CREATE OR REPLACE VIEW messages AS (
SELECT *, regexp_replace(page, '.*/', '')::int issue FROM comments
CREATE OR REPLACE VIEW messages AS (
SELECT *, regexp_replace(page, '.*/', '')::int issue FROM comments
- UNION ALL
- SELECT concat(page,'/',id), body, created, author, NULL, id FROM issues
$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]);
$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 '<ul class="replies">';
$imagecount = 0;
print '<ul class="replies">';
$imagecount = 0;