[PATCH] pkg_comments.php: Make comment timestamps link to the comment
As of today, there is no easy way to obtain a link to a specific comment on a package page. Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are: - phpBB (e.g. bbs.archlinux.org) - GitHub - Disqus - Discourse This patch adopts this convention as well, by making the comment timestamp an unobtrusive link to the comment itself. --- web/html/css/aurweb.css | 2 +- web/template/pkg_comments.php | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css index 593c9ae..d587dc6 100644 --- a/web/html/css/aurweb.css +++ b/web/html/css/aurweb.css @@ -122,7 +122,7 @@ top: 4px; } -.flagged a { +.flagged a, a.date { color: inherit; } diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php index 3001a34..3bcf1a3 100644 --- a/web/template/pkg_comments.php +++ b/web/template/pkg_comments.php @@ -53,17 +53,19 @@ if ($comment_section == "package") { $pkgbase_name = $row["PackageBaseName"]; } + $anchor = (isset($pinned) ? "pinned-" : "comment-") . $row['ID']; $date_fmtd = date('Y-m-d H:i', $row['CommentTS']); + $date_link = '<a href="#' . $anchor . '" class="date">' . $date_fmtd . '</a>'; if ($comment_section == "package") { if ($row['UserName']) { $user_fmtd = html_format_username($row['UserName']); - $heading = __('%s commented on %s', $user_fmtd, $date_fmtd); + $heading = __('%s commented on %s', $user_fmtd, $date_link); } else { - $heading = __('Anonymous comment on %s', $date_fmtd); + $heading = __('Anonymous comment on %s', $date_link); } } elseif ($comment_section == "account") { $pkg_uri = '<a href=' . htmlspecialchars(get_pkg_uri($row['PackageBaseName']), ENT_QUOTES) . '>' . htmlspecialchars($row['PackageBaseName']) . '</a></td>'; - $heading = __('Commented on package %s on %s', $pkg_uri, $date_fmtd); + $heading = __('Commented on package %s on %s', $pkg_uri, $date_link); } $is_deleted = $row['DelTS']; @@ -97,7 +99,7 @@ if ($comment_section == "package") { $comment_classes .= " comment-deleted"; } ?> - <h4 id="<?= isset($pinned) ? "pinned-" : "comment-" ?><?= $row['ID'] ?>" class="<?= $comment_classes ?>"> + <h4 id="<?= $anchor ?>" class="<?= $comment_classes ?>"> <?= $heading ?> <?php if ($is_deleted && has_credential(CRED_COMMENT_UNDELETE)): ?> <form class="undelete-comment-form" method="post" action="<?= htmlspecialchars(get_pkgbase_uri($pkgbase_name), ENT_QUOTES); ?>"> @@ -152,7 +154,7 @@ if ($comment_section == "package") { </form> <?php endif; ?> </h4> - <div id="<?= isset($pinned) ? "pinned-" : "comment-" ?><?= $row['ID'] ?>-content" class="article-content<?php if ($is_deleted): ?> comment-deleted<?php endif; ?>"> + <div id="<?= $anchor ?>-content" class="article-content<?php if ($is_deleted): ?> comment-deleted<?php endif; ?>"> <div> <?php if (!empty($row['RenderedComment'])): ?> <?= $row['RenderedComment'] ?> -- 2.19.0
On 10/15/18 8:26 PM, Vladimir Panteleev wrote:
As of today, there is no easy way to obtain a link to a specific comment on a package page.
Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are:
- phpBB (e.g. bbs.archlinux.org) - GitHub - Disqus - Discourse
This patch adopts this convention as well, by making the comment timestamp an unobtrusive link to the comment itself. --- web/html/css/aurweb.css | 2 +- web/template/pkg_comments.php | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css index 593c9ae..d587dc6 100644 --- a/web/html/css/aurweb.css +++ b/web/html/css/aurweb.css @@ -122,7 +122,7 @@ top: 4px; }
-.flagged a { +.flagged a, a.date { color: inherit; }
This causes the link color to be the same black as the rest of the "commented on" text. Question is, do we actually want that? It makes it a bit hard to tell the links are there... -- Eli Schwartz Bug Wrangler and Trusted User
As of today, there is no easy way to obtain a link to a specific comment on a package page. Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are: - phpBB (e.g. bbs.archlinux.org) - GitHub - Disqus - Discourse This patch adopts this convention as well, by making the timestamp a link to the comment. --- Version 2: Removed the CSS rule making the link color same as the text, thus making the link more discoverable. web/template/pkg_comments.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php index 3001a34..3bcf1a3 100644 --- a/web/template/pkg_comments.php +++ b/web/template/pkg_comments.php @@ -53,17 +53,19 @@ if ($comment_section == "package") { $pkgbase_name = $row["PackageBaseName"]; } + $anchor = (isset($pinned) ? "pinned-" : "comment-") . $row['ID']; $date_fmtd = date('Y-m-d H:i', $row['CommentTS']); + $date_link = '<a href="#' . $anchor . '" class="date">' . $date_fmtd . '</a>'; if ($comment_section == "package") { if ($row['UserName']) { $user_fmtd = html_format_username($row['UserName']); - $heading = __('%s commented on %s', $user_fmtd, $date_fmtd); + $heading = __('%s commented on %s', $user_fmtd, $date_link); } else { - $heading = __('Anonymous comment on %s', $date_fmtd); + $heading = __('Anonymous comment on %s', $date_link); } } elseif ($comment_section == "account") { $pkg_uri = '<a href=' . htmlspecialchars(get_pkg_uri($row['PackageBaseName']), ENT_QUOTES) . '>' . htmlspecialchars($row['PackageBaseName']) . '</a></td>'; - $heading = __('Commented on package %s on %s', $pkg_uri, $date_fmtd); + $heading = __('Commented on package %s on %s', $pkg_uri, $date_link); } $is_deleted = $row['DelTS']; @@ -97,7 +99,7 @@ if ($comment_section == "package") { $comment_classes .= " comment-deleted"; } ?> - <h4 id="<?= isset($pinned) ? "pinned-" : "comment-" ?><?= $row['ID'] ?>" class="<?= $comment_classes ?>"> + <h4 id="<?= $anchor ?>" class="<?= $comment_classes ?>"> <?= $heading ?> <?php if ($is_deleted && has_credential(CRED_COMMENT_UNDELETE)): ?> <form class="undelete-comment-form" method="post" action="<?= htmlspecialchars(get_pkgbase_uri($pkgbase_name), ENT_QUOTES); ?>"> @@ -152,7 +154,7 @@ if ($comment_section == "package") { </form> <?php endif; ?> </h4> - <div id="<?= isset($pinned) ? "pinned-" : "comment-" ?><?= $row['ID'] ?>-content" class="article-content<?php if ($is_deleted): ?> comment-deleted<?php endif; ?>"> + <div id="<?= $anchor ?>-content" class="article-content<?php if ($is_deleted): ?> comment-deleted<?php endif; ?>"> <div> <?php if (!empty($row['RenderedComment'])): ?> <?= $row['RenderedComment'] ?> -- 2.19.0
On 10/16/18 9:31 PM, Vladimir Panteleev wrote:
As of today, there is no easy way to obtain a link to a specific comment on a package page.
Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are:
- phpBB (e.g. bbs.archlinux.org) - GitHub - Disqus - Discourse
This patch adopts this convention as well, by making the timestamp a link to the comment. ---
Version 2: Removed the CSS rule making the link color same as the text, thus making the link more discoverable.
Thanks, the change looks great! Tested locally and it performs as expected. ... As discussed on IRC, there doesn't seem to be any specific motivation to add the CSS rule other than "preserve the status quo" w.r.t. coloring, but I think it's reasonable to make it stand out, and this matches what I've seen on many other websites, so, merged to pu. -- Eli Schwartz Bug Wrangler and Trusted User
Excerpts from Vladimir Panteleev's message of October 16, 2018 2:26:
As of today, there is no easy way to obtain a link to a specific comment on a package page.
Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are:
- phpBB (e.g. bbs.archlinux.org)
(Our BBS is FluxBB, not phpBB.)
- GitHub - Disqus - Discourse
This patch adopts this convention as well, by making the comment timestamp an unobtrusive link to the comment itself.
Most of what makes those URLs useful is that they link to the actual post though, while this is just an anchor to the page you're currently on, which means that as soon as it ends up at the next page, the URL is broken, so I'm not sure how useful this is in practice? -- Sincerely, Johannes Löthberg
On 10/20/18 9:05 AM, Johannes Löthberg wrote:
Excerpts from Vladimir Panteleev's message of October 16, 2018 2:26:
As of today, there is no easy way to obtain a link to a specific comment on a package page.
Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are:
- phpBB (e.g. bbs.archlinux.org)
(Our BBS is FluxBB, not phpBB.)
- GitHub - Disqus - Discourse
This patch adopts this convention as well, by making the comment timestamp an unobtrusive link to the comment itself.
Most of what makes those URLs useful is that they link to the actual post though, while this is just an anchor to the page you're currently on, which means that as soon as it ends up at the next page, the URL is broken, so I'm not sure how useful this is in practice?
Admittedly, my usual use case is with ?PP=250. Not too long ago, I simply defaulted to using the "show all" link. I guess there is a difference between forum posts, which start on the first page and add new posts to a new page, vs. the AUR which shows the newest comments first. Is there any way to make truly stable links like that? -- Eli Schwartz Bug Wrangler and Trusted User
Excerpts from Eli Schwartz's message of October 21, 2018 1:20:
On 10/20/18 9:05 AM, Johannes Löthberg wrote:
Excerpts from Vladimir Panteleev's message of October 16, 2018 2:26:
As of today, there is no easy way to obtain a link to a specific comment on a package page.
Many implementations of forums and comment systems today seem to follow a convention where a comment's timestamp is an unobtrusive link to the comment itself. Some examples are:
- phpBB (e.g. bbs.archlinux.org)
(Our BBS is FluxBB, not phpBB.)
- GitHub - Disqus - Discourse
This patch adopts this convention as well, by making the comment timestamp an unobtrusive link to the comment itself.
Most of what makes those URLs useful is that they link to the actual post though, while this is just an anchor to the page you're currently on, which means that as soon as it ends up at the next page, the URL is broken, so I'm not sure how useful this is in practice?
Admittedly, my usual use case is with ?PP=250. Not too long ago, I simply defaulted to using the "show all" link.
I guess there is a difference between forum posts, which start on the first page and add new posts to a new page, vs. the AUR which shows the newest comments first. Is there any way to make truly stable links like that?
Same way that phpBB and FluxBB does it, you link to a comment-specific URL, not an anchor on the destination page. Something like /comment/<comment_id> -> look up which package the comment is on -> count how many visible comments are before it for that package -> divide by per-page value -> redirect to that page with the anchor. -- Sincerely, Johannes Löthberg
On Sat, Oct 20, 2018 at 1:05 PM Johannes Löthberg <johannes@kyriasis.com> wrote:
(Our BBS is FluxBB, not phpBB.)
Oops, right.
Most of what makes those URLs useful is that they link to the actual post though, while this is just an anchor to the page you're currently on, which means that as soon as it ends up at the next page, the URL is broken, so I'm not sure how useful this is in practice?
True. Though, as far as I've seen, the vast majority of AUR packages have low enough comment activity that the link will remain functional for quite some time. You can also get a permanent link by capturing the anchor from the "?comments=all" page. I think making the timestamp's href point to a truly permanent link would be a good improvement on top of this change.
participants (3)
-
Eli Schwartz
-
Johannes Löthberg
-
Vladimir Panteleev