From 9cde6b0566390002d167703fa900129bb90e07d8 Mon Sep 17 00:00:00 2001 From: Marcel Korpel <marcel.korpel@gmail.com> Date: Fri, 10 Jul 2015 18:47:33 +0200 Subject: Show dateline when a comment is edited or deleted Signed-off-by: Marcel Korpel <marcel.korpel@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org> --- web/html/css/aurweb.css | 5 +++++ web/lib/pkgbasefuncs.inc.php | 9 ++++++--- web/template/pkg_comments.php | 38 ++++++++++++++++++++++++++------------ 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css index b5ca1f38..b33726c4 100644 --- a/web/html/css/aurweb.css +++ b/web/html/css/aurweb.css @@ -96,6 +96,11 @@ color: #999; } +.edited { + font-size: 0.9em; + color: #999; +} + .delete-comment-form, .edit-comment { float: right; margin-left: 8px; diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php index 1ae31665..6057d104 100644 --- a/web/lib/pkgbasefuncs.inc.php +++ b/web/lib/pkgbasefuncs.inc.php @@ -47,9 +47,12 @@ function pkgbase_comments($base_id, $limit, $include_deleted) { } $dbh = DB::connect(); - $q = "SELECT PackageComments.ID, UserName, UsersID, Comments, "; - $q.= "CommentTS, DelUsersID FROM PackageComments LEFT JOIN Users "; - $q.= "ON PackageComments.UsersID = Users.ID "; + $q = "SELECT PackageComments.ID, A.UserName AS UserName, UsersID, Comments, "; + $q.= "CommentTS, EditedTS, B.UserName AS EditUserName, "; + $q.= "DelUsersID, C.UserName AS DelUserName FROM PackageComments "; + $q.= "LEFT JOIN Users A ON PackageComments.UsersID = A.ID "; + $q.= "LEFT JOIN Users B ON PackageComments.EditedUsersID = B.ID "; + $q.= "LEFT JOIN Users C ON PackageComments.DelUsersID = C.ID "; $q.= "WHERE PackageBaseID = " . $base_id . " "; if (!$include_deleted) { $q.= "AND DelUsersID IS NULL "; diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php index 6cc95555..8650db29 100644 --- a/web/template/pkg_comments.php +++ b/web/template/pkg_comments.php @@ -16,19 +16,33 @@ $count = pkgbase_comments_count($base_id, $include_deleted); </h3> <?php while (list($indx, $row) = each($comments)): ?> - <?php if ($row['UserName'] && $SID): - $row['UserName'] = "<a href=\"" . get_user_uri($row['UserName']) . "\">{$row['UserName']}</a>"; - endif; ?> + <?php + $date_fmtd = gmdate('Y-m-d H:i', $row['CommentTS']); + if ($row['UserName']) { + $user_fmtd = html_format_username($row['UserName']); + $heading = __('%s commented on %s', $user_fmtd, $date_fmtd); + } else { + $heading = __('Anonymous comment on %s', $date_fmtd); + } + + if ($row['EditedTS']) { + $date_fmtd = gmdate('Y-m-d H:i', $row['EditedTS']); + $heading .= ' <span class="edited">('; + if ($row['DelUsersID']) { + $user_fmtd = html_format_username($row['DelUserName']); + $heading .= __('deleted on %s by %s', $date_fmtd, $user_fmtd); + } else { + $user_fmtd = html_format_username($row['EditUserName']); + $heading .= __('last edited on %s by %s', $date_fmtd, $user_fmtd); + } + $heading .= ')</span>'; + } + + $row['DelUserName'] = html_format_username($row['DelUserName']); + $row['EditUserName'] = html_format_username($row['EditUserName']); + ?> <h4<?php if ($row['DelUsersID']): ?> class="comment-deleted"<?php endif; ?>> - <?php if ($row['UserName']): ?> - <?= __('%s commented', $row['UserName']) ?> - <?php else: ?> - <?= __('Anonymous comment') ?> - <?php endif; ?> - <?= __('on %s', gmdate('Y-m-d H:i', $row['CommentTS'])) ?> - <?php if ($row['DelUsersID']): ?> - (<?= __('deleted') ?>) - <?php endif; ?> + <?= $heading ?> <?php if (!$row['DelUsersID'] && can_delete_comment_array($row)): ?> <form class="delete-comment-form" method="post" action="<?= htmlspecialchars(get_pkgbase_uri($pkgbase_name), ENT_QUOTES); ?>"> <fieldset style="display:inline;"> -- cgit v1.2.3-24-g4f1b