Author

Topic: Identifying the linked-to post in a topic (SMF patch) (Read 929 times)

legendary
Activity: 2464
Merit: 3878
Hire Bitcointalk Camp. Manager @ r7promotions.com
Basically, the idea is to make it easier to identify the target post after clicking an ordinary post link
Nice work and good to see the quick implementation. It took me a few minutes to understand the idea and how it's changing :-D

About the deleted posts do you think anything can be done like clicking on the deleted post will give a notification that it was deleted instead of taking us to the same page of the topic where it was posted? It will help the users not to look for the linked-to posts when there are no posts at all.
hero member
Activity: 510
Merit: 4005
Added, thanks!


(A bit over-the-top for such a dinky little patch, but, I can hear Ace Ventura in my head, saying: "Yes. Yes. Oh, yeah. Can ya feel that, buddy? Huh? Huh? Huh?") Grin

What looked best IMO was to do the arrow and black color, but without the text-decoration:none or cursor: default.
So, style B + (unrevised) style C. Nice!

Also, while I was messing around with the topic HTML anyway, I decided to just completely remove the ad area. I don't foresee selling ads again anytime soon, and while maybe the factoids were providing some value, many of them were outdated.
I wonder if some users would appreciate the factoids (especially the older ones) being preserved/accessible for nostalgia's sake? Maybe a new endpoint (like /factoid.php or /index.php?action=factoid) that displays a random one each time? (I mean, I count 30 Wayback Machine snapshots of /adrotate.php?adinfo from 2013 to 2023, so it's not strictly necessary, I suppose, but, yeah, something first-party might be nice...)



Something's wrong Sad
Yep, I noticed that, too. It's a long-standing SMF issue/quirk/design-decision, and wasn't caused by this patch (it's just easier to notice now).

It's quite complicated to explain, and most people would find the details boring AF, so, suffice it to say: it's okay if the message ID doesn't actually belong to the topic, as long as that message ID can be used to calculate the correct offset into that topic (that is, as long as it lands you on the right topic-page, the #new fragment takes care of putting you on the right message). A different way to think about it, is to consider what happens when you have a link to a deleted post: the message ID in the link is no longer part of that topic, but navigating to it will still land you in roughly the right place (topic-page-wise).

In the context of this particular patch, it might have worked out nicer if SMF was more precise about message IDs in a few places, but it actually works out pretty neatly as-is, I think (that is, links with a #new fragment don't really correspond to one message, they correspond to potentially multiple new messages since the last one you read, so there's an argument to be made that it actually makes sense not to graphically single-out the first one).
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
There is nothing wrong
Compare the msgID in both URLs from my code-tags. Then open both URLs. I don't get where the "new" msgID comes from.

According to the PowerGlove code, it is a php tag, which creates this change.

Check the OP in style B: https://bitcointalksearch.org/topic/m.63898641
legendary
Activity: 1789
Merit: 2535
Goonies never say die.
~
What about community-updated factoid? I think that they were nice. It might surprise you but I love the idea of ads on this forum, it gives you a little break between original post and replies and also it's nice when you see something new displayed.
I've been happy about less banner ads, but I'm not sure it was necessary to remove every factoid just because some were outdated. *shrug*


Added, thanks! What looked best IMO was to do the arrow and black color, but without the text-decoration:none or cursor: default.
+1

~while maybe the factoids were providing some value, many of them were outdated.
-2

 Grin


Good job again PowerGlove! Wink
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
There is nothing wrong
Compare the msgID in both URLs from my code-tags. Then open both URLs. I don't get where the "new" msgID comes from.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
Let's test again:
"new":
Code:
https://bitcointalk.org/index.php?topic=5496329.msg64078469;topicseen#new
Post #64078469 is in a different topic:
Code:
https://bitcointalk.org/index.php?topic=5495745.msg64078469#msg64078469

Something's wrong Sad

There is nothing wrong, it is working as intended.
The new graphics only appear when the link has #idpost, in other cases it remains normal.

This is because what gives the order to the browser to apply another graphic is the address ending with #idpost.
Because ;topicseen#new varies from post to post. In other words, it always points to the last post, regardless of the author of the post.

It's true that this could be adjusted, but I don't think it's that relevant.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Added, thanks!
I got to your post by clicking:
Code:
https://bitcointalk.org/index.php?topic=5491546.msg64025684;topicseen#new
Shouldn't the post be black with this link too?

If I click the title of the post, I get:
Code:
https://bitcointalk.org/index.php?topic=5491546.msg64075749#msg64075749
This works as expected



On closer look, why does the "new" link have post #64025684 in the URL?



Let's test again:
"new":
Code:
https://bitcointalk.org/index.php?topic=5496329.msg64078469;topicseen#new
Post #64078469 is in a different topic:
Code:
https://bitcointalk.org/index.php?topic=5495745.msg64078469#msg64078469

Something's wrong Sad
hero member
Activity: 882
Merit: 792
Watch Bitcoin Documentary - https://t.ly/v0Nim
Added, thanks! What looked best IMO was to do the arrow and black color, but without the text-decoration:none or cursor: default.

Also, while I was messing around with the topic HTML anyway, I decided to just completely remove the ad area. I don't foresee selling ads again anytime soon, and while maybe the factoids were providing some value, many of them were outdated.
I noticed this today when I checked reply on my post via Ninja's bot and I was like, am I tripping? Is this the first time I noticed this difference between quoted and other posts? But as it looks, this feature was implemented today. Nice, by the way it would be good if you convert tables into flexbox or grid because that would make this forum responsive. Just like I did here: https://bitcointalksearch.org/topic/m.61056851

What about community-updated factoid? I think that they were nice. It might surprise you but I love the idea of ads on this forum, it gives you a little break between original post and replies and also it's nice when you see something new displayed.

legendary
Activity: 3822
Merit: 2703
Evil beware: We have waffles!
Dang that was quickly done! Grin
I like the new change.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
Added, thanks! What looked best IMO was to do the arrow and black color, but without the text-decoration:none or cursor: default.

Also, while I was messing around with the topic HTML anyway, I decided to just completely remove the ad area. I don't foresee selling ads again anytime soon, and while maybe the factoids were providing some value, many of them were outdated.

The difference is confirmed! Thank you for accepting this change.

Old:

New:

Now, we just have to get used to this new thing.  Cheesy
administrator
Activity: 5222
Merit: 13032
Added, thanks! What looked best IMO was to do the arrow and black color, but without the text-decoration:none or cursor: default.

Also, while I was messing around with the topic HTML anyway, I decided to just completely remove the ad area. I don't foresee selling ads again anytime soon, and while maybe the factoids were providing some value, many of them were outdated.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
What does the link-tree have to do with the title of the post?
The title of the post could have the same style.

OK. Also put the title of the post in black.
It would be a described change that could help with this identification, but perhaps many would not notice the difference.

Now, if it's the solution that involves fewer code changes, it seems like a good solution to me.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Hmm... I never noticed that the last (bold-faced) item in the link-tree is an actual link:
You and me both, I didn't know it until you wrote it I read it here.

What does the link-tree have to do with the title of the post?
The title of the post could have the same style.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
Hmm... I never noticed that the last (bold-faced) item in the link-tree is an actual link:



It has its text-decoration set to none and its cursor set to default, so it's easy to miss, I guess, but it kind of makes sense in a weird way; it's like it's saying: "this is where you are, yo." Cheesy

Anyway, if that's an idea that's worth repeating, then the second diff for style C should be like this:

I'm sorry, but I didn't notice your adjustment to the proposal.  Undecided

What does the link-tree have to do with the title of the post?
hero member
Activity: 510
Merit: 4005
Hmm... I never noticed that the last (bold-faced) item in the link-tree is an actual link:



It has its text-decoration set to none and its cursor set to default, so it's easy to miss, I guess, but it kind of makes sense in a weird way; it's like it's saying: "this is where you are, yo." Cheesy

Anyway, if that's an idea that's worth repeating, then the second diff for style C should be like this:

Code:
--- baseline/Themes/default/Display.template.php 2010-10-22 01:38:35.000000000 +0000
+++ modified/Themes/default/Display.template.php 2024-04-11 01:21:29.000000000 +0000
@@ -359,33 +359,34 @@
  echo '
  ', $settings['use_image_buttons'] ? '' . $message['member']['online']['label'] . '' : $message['member']['online']['label'], '';
  }
  }
  // Otherwise, show the guest's email.
  elseif (empty($message['member']['hide_email']))
  echo '
 

 

  ', ($settings['use_image_buttons'] ? '' . $txt[69] . '' : $txt[69]), '';
 
  // Done with the information about the poster... on to the post itself.
+ $is_requested_message = isset($context['requested_msg']) && $context['requested_msg'] == $message['id'];
  echo '
 

 
 
 
 
 
  , using a different color than the usual alternating blue and grey (but not too different).

Maybe a minor issue, but this could effect any styling/colors on a post that a user created to go with the current grey/blue. Also, this could lead to a way for a user to create text using whatever color is chosen, which would look normal on the thread, but a linked version to the post could then visually hide that text.


~Would doing so break anyone's parsers?

Looks good here. We're mainly using pages where these hidden posts don't exist anyway so it shouldn't effect BPIP's parsers.

--
I'm liking the thicker side borders myself, but I'm biased. Grin
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Those are decoy posts meant to confuse adblockers. This is also why a lot of the CSS classes randomize on each pageload. Now that there are no ads, I could remove both of these things. Would doing so break anyone's parsers?
I don't expect to have any problems with this.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
, using a different color than the usual alternating blue and grey (but not too different).
Yep. That's pretty much the first thing I tried, but, I couldn't find a color that struck a nice balance between (effectively) highlighting the post, and not drifting too far away from the SMF aesthetic. Maybe I wasn't persistent enough, and someone else might have better luck, but every time I managed to get the post to stand out, it looked ugly/wrong to me, and every time I managed to make it look nice/right, the post didn't really stand out.

What do you think if it's something like this:

Code:
bgcolor=#F7F8E0

Another more or less equivalent tone can be used. I don't think it gave much, and would only be applied in this specific scenario.
hero member
Activity: 510
Merit: 4005
, using a different color than the usual alternating blue and grey (but not too different).
Yep. That's pretty much the first thing I tried, but, I couldn't find a color that struck a nice balance between (effectively) highlighting the post, and not drifting too far away from the SMF aesthetic. Maybe I wasn't persistent enough, and someone else might have better luck, but every time I managed to get the post to stand out, it looked ugly/wrong to me, and every time I managed to make it look nice/right, the post didn't really stand out.

- Add a little red(?) asterisk or something in the lower-right corner of the post icon (ie. td.td_headerandpost table tbody tr td a img).
Messing with the post icon is a cool idea...

Maybe this one's too subtle, but, a drop shadow on the icon looks kind of nice:



(That's a style="filter: drop-shadow(0 0 2px #355d8099);" on the element; the #355d8099 is a 60% opacity dark/desaturated blue that I color-picked from the top-most gradient on the SMF menu.)
administrator
Activity: 5222
Merit: 13032
I like the idea. All proposed styles seem OK to me, though some alternative styling ideas which come to mind are:
 - Change the color of the entire post
, using a different color than the usual alternating blue and grey (but not too different).
 - Add a little red(?) asterisk or something in the lower-right corner of the post icon (ie. td.td_headerandpost table tbody tr td a img).

When you open the HTML source of this page for example, there are a bunch of "shadow" posts under the OP. These are invisible posts that have the same HTML structure as real posts, but they don't have anything inside them. There is usually a random amount of these displayed, anywhere from one to three. So what is the deal with that, and where do they come from?

Those are decoy posts meant to confuse adblockers. This is also why a lot of the CSS classes randomize on each pageload. Now that there are no ads, I could remove both of these things. Would doing so break anyone's parsers?
legendary
Activity: 1789
Merit: 2535
Goonies never say die.
That's a cool idea (that is, using a content string on a ::before pseudo-element), but, besides the advantage of avoiding adding a element (which, all concerned parties seem to agree will either not disturb, or be pretty easy to adjust their parsers for), there are a few drawbacks (in no particular order):
~

The other advantage went back to the customized style sheets people may be using, in the pseudo-element scenario using Style B, they'd have the ability to change the symbol/content.

The pseudo-element wouldn't have to happen on though, I initially picked that because it was the line of code you were modifying in the patch, but it makes more sense on the
above that, to avoid the link interference.

Although, I'm kinda liking the black version on Style C myself now. But, if Style B makes it, I'd prefer the one-time use of the CSS as opposed to the there, but that's just me... I guess I understand not wanting to add a 3rd file into the mix.
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
Style C

This one just makes the subject-line link black.


I like this one better, tbh.

No changes to the html tree and I personally find it easier to identify on the page.

I agree too. I think this way is more efficient for what is proposed. And most importantly, it doesn't change the current structure, it's just a matter of layout.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I'm probably going to quote this out of context once in a while:
if I were building a new frontend for Bitcointalk from scratch
Good luck Cheesy
legendary
Activity: 2758
Merit: 6830
Style C

This one just makes the subject-line link black.


I like this one better, tbh.

No changes to the html tree and I personally find it easier to identify on the page.
hero member
Activity: 510
Merit: 4005
Sometimes the post you're looking for will not even be on the landing page after clicking on the link. (...) Will this pose a problem or it happens too few times for it to actually matter.
Missing/deleted posts won't confuse this patch. What'll happen is that none of the posts will be "marked". (Typically, when I land on a topic-page that's missing the post I was looking for, I usually know that's what's happened because the viewport hasn't snapped to a post, and I can still see the SMF menu; that'll still be the case with this patch.)

In terms of hard-coding any styles in general, is there any reason you are not avoiding the all together and adding an "id" to the element, then just adding to the CSS file?
That's a cool idea (that is, using a content string on a ::before pseudo-element), but, besides the advantage of avoiding adding a element (which, all concerned parties seem to agree will either not disturb, or be pretty easy to adjust their parsers for), there are a few drawbacks (in no particular order):

(*) To me, it feels unnatural to put something in the global stylesheet for such a specific, single use-case. (Though, I'm aware that that's mostly a matter of preference, and I do see some other used-just-once stuff in the stylesheet already. I guess, if I were building a new frontend for Bitcointalk from scratch, I'd probably be inclined to avoid inline styles and to observe stricter separation between content and presentation.)

(*) With this patch, there's no avoiding having to make a small change to Display.php and a small change to Display.template.php (with or without your CSS idea). So, involving the stylesheet would add a third patch-point. Needing 3 co-ordinating pieces for this feature to work makes things a little more fragile and complicated than they should be, I think. (I'm also inclined to believe that theymos is more likely to decide to sit down and review/merge a patch, when that patch involves no more components/changes than necessary.)

(*) When the "marker" is added this way (via a ::before pseudo-element), it forms part of the actual subject-line link (as opposed to sitting next to it in a sibling element), and so, when you hover over it, for example, it looks/responds like it's just some extra characters in the subject-line (which is undesirable for a few reasons, but, the main one, I guess, is that I don't want to introduce any unnecessary confusion around where the marker ends and the subject-line begins; if someone tries, for example, to artificially place the marker into their subject-line before posting, then I want there to be some semi-obvious difference between a genuine marker and a "fake" one). It also picks up the link's color (which lowers the contrast of the marker), and its opacity value ends up affecting a small part of the link's :hover text decoration, which looks kind of messy.

But, I believe the best approach is option A, (...) I would just add maybe a color change, or a different font size, to make this situation stand out more than just italics.
I've looked at a lot of hues by going around the color wheel in ~15 degree increments, and, maybe I'm just really picky, but they all look "wrong" to me in one way or another. What does end up working rather nicely, though, is making the subject-line black. Another thing that works pretty nicely is underlining the subject-line. Underlining also kind of makes sense semantically, in a weird way: Normally, you only see the subject-line underlined when you're about to click on it, but, in this context, you already have clicked on the link (otherwise you wouldn't be seeing it rendered differently to begin with).

Style C

This one just makes the subject-line link black.



Code:
--- baseline/Sources/Display.php 2011-02-07 16:45:09.000000000 +0000
+++ modified/Sources/Display.php 2024-04-04 00:02:44.000000000 +0000
@@ -230,24 +230,25 @@
  SELECT COUNT(*)
  FROM {$db_prefix}messages
  WHERE ID_MSG < $virtual_msg
  AND ID_TOPIC = $topic", __FILE__, __LINE__);
  list ($context['start_from']) = mysql_fetch_row($request);
  mysql_free_result($request);
  }
 
  // We need to reverse the start as well in this case.
  $_REQUEST['start'] = empty($options['view_newest_first']) ? $context['start_from'] : $topicinfo['numReplies'] - $context['start_from'];
 
  $context['robot_no_index'] = true;
+ $context['requested_msg'] = $virtual_msg;
  }
  }
 
  // Create a previous next string if the selected theme has it as a selected option.
  $context['previous_next'] = $modSettings['enablePreviousNext'] ? '' . $txt['previous_next_back'] . ' ' . $txt['previous_next_forward'] . '' : '';
 
  // Check if spellchecking is both enabled and actually working. (for quick reply.)
  $context['show_spellchecking'] = !empty($modSettings['enableSpellChecking']) && function_exists('pspell_new');
 
  // Censor the title...
  censorText($topicinfo['subject']);
  $context['page_title'] = $topicinfo['subject'];

Code:
--- baseline/Themes/default/Display.template.php 2010-10-22 01:38:35.000000000 +0000
+++ modified/Themes/default/Display.template.php 2024-04-07 23:42:42.000000000 +0000
@@ -359,33 +359,34 @@
  echo '
  ', $settings['use_image_buttons'] ? '' . $message['member']['online']['label'] . '' : $message['member']['online']['label'], '';
  }
  }
  // Otherwise, show the guest's email.
  elseif (empty($message['member']['hide_email']))
  echo '
 

 

  ', ($settings['use_image_buttons'] ? '' . $txt[69] . '' : $txt[69]), '';
 
  // Done with the information about the poster... on to the post itself.
+ $is_requested_message = isset($context['requested_msg']) && $context['requested_msg'] == $message['id'];
  echo '
 

 
 

  ';
 
  // If this is the first post, (#0) just say when it was posted - otherwise give the reply #.
  echo '
 
« ', !empty($message['counter']) ? $txt[146] . ' #' . $message['counter'] : '', ' ', $txt[30], ': ', $message['time'], ' »
';
 
  // Can they reply? Have they turned on quick reply?
  if ($context['can_reply'] && !empty($options['display_quick_reply']))
  echo '
  ', $reply_button, '';

(I see references in SMF to a "nav" class for the link-tree, and a reference to a "navPages" class for the page-list; makes me think that the idiomatic way to repeat this idea would be to add a "navMessage" class instead of doing this with an inline style.)

@theymos: I know this is off-topic, but, seeing as though you're watching the thread, and while I've got links on my mind: if/when you find some time, maybe you could quickly tackle this one? (I think that suggestion makes a lot of sense; when LoyceV first mentioned it, I remember thinking: "Ooh, that's a nice little improvement.")

P.S. I blew all of my theymos-sMerit on your April Fools gag, so I won't be able to merit your posts for a bit. Wink
legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**
I tried a border on the top/bottom as well but it felt too loud, with all of the other horizontal lines going on with quotes, posts, banner/sigs, etc. I don't mind the bgcolor on the title though, sort of what I was trying to do here. The yellow isn't too bad on a mobile device, but on a desktop the long yellow strip feels too much, for me at least. Smiley

This option can also be interesting, but without the border. And in terms of color, you can use the same tone of blue that is used in the posts, with two shades interspersed. Placing the respective post, with the header having a different tone from the rest of the post.

I don't know if I made myself understood, but I'm a little lazy to take some images. Maybe later.  Tongue
legendary
Activity: 1789
Merit: 2535
Goonies never say die.
with the entire post, maybe a simple border on the left/right:
Code:
border-left: 2px solid #537798;
border-right: 2px solid #537798;
It's also a good idea. But I didn't limit the highlights to the left and right border. It would include the top and bottom.

I tried a border on the top/bottom as well but it felt too loud, with all of the other horizontal lines going on with quotes, posts, banner/sigs, etc. I don't mind the bgcolor on the title though, sort of what I was trying to do here. The yellow isn't too bad on a mobile device, but on a desktop the long yellow strip feels too much, for me at least. Smiley


- Change the color of the entire post
with the entire post, maybe a simple border on the left/right:
Code:
border-left: 2px solid #537798;
border-right: 2px solid #537798;

It's also a good idea. But I didn't limit the highlights to the left and right border. It would include the top and bottom.
legendary
Activity: 1789
Merit: 2535
Goonies never say die.
If you can do something on the
with the entire post, maybe a simple border on the left/right:
Code:
border-left: 2px solid #537798;
border-right: 2px solid #537798;



edit:

maybe a little thicker: Grin


legendary
Activity: 1862
Merit: 5154
**In BTC since 2013**

 
 
 
 
 

  ';
 
  // If this is the first post, (#0) just say when it was posted - otherwise give the reply #.
  echo '
 
« ', !empty($message['counter']) ? $txt[146] . ' #' . $message['counter'] : '', ' ', $txt[30], ': ', $message['time'], ' »
';
 
  // Can they reply? Have they turned on quick reply?
  if ($context['can_reply'] && !empty($options['display_quick_reply']))
  echo '
  ', $reply_button, '';

Style D

This one puts a text-decoration: underline on the subject-line link.



Code:
--- baseline/Sources/Display.php 2011-02-07 16:45:09.000000000 +0000
+++ modified/Sources/Display.php 2024-04-04 00:02:44.000000000 +0000
@@ -230,24 +230,25 @@
  SELECT COUNT(*)
  FROM {$db_prefix}messages
  WHERE ID_MSG < $virtual_msg
  AND ID_TOPIC = $topic", __FILE__, __LINE__);
  list ($context['start_from']) = mysql_fetch_row($request);
  mysql_free_result($request);
  }
 
  // We need to reverse the start as well in this case.
  $_REQUEST['start'] = empty($options['view_newest_first']) ? $context['start_from'] : $topicinfo['numReplies'] - $context['start_from'];
 
  $context['robot_no_index'] = true;
+ $context['requested_msg'] = $virtual_msg;
  }
  }
 
  // Create a previous next string if the selected theme has it as a selected option.
  $context['previous_next'] = $modSettings['enablePreviousNext'] ? '' . $txt['previous_next_back'] . ' ' . $txt['previous_next_forward'] . '' : '';
 
  // Check if spellchecking is both enabled and actually working. (for quick reply.)
  $context['show_spellchecking'] = !empty($modSettings['enableSpellChecking']) && function_exists('pspell_new');
 
  // Censor the title...
  censorText($topicinfo['subject']);
  $context['page_title'] = $topicinfo['subject'];

Code:
--- baseline/Themes/default/Display.template.php 2010-10-22 01:38:35.000000000 +0000
+++ modified/Themes/default/Display.template.php 2024-04-07 23:43:30.000000000 +0000
@@ -359,33 +359,34 @@
  echo '
  ', $settings['use_image_buttons'] ? '' . $message['member']['online']['label'] . '' : $message['member']['online']['label'], '';
  }
  }
  // Otherwise, show the guest's email.
  elseif (empty($message['member']['hide_email']))
  echo '
 

 

  ', ($settings['use_image_buttons'] ? '' . $txt[69] . '' : $txt[69]), '';
 
  // Done with the information about the poster... on to the post itself.
+ $is_requested_message = isset($context['requested_msg']) && $context['requested_msg'] == $message['id'];
  echo '
 

 

 
 
 
 
 

  ';
 
  // If this is the first post, (#0) just say when it was posted - otherwise give the reply #.
  echo '
 
« ', !empty($message['counter']) ? $txt[146] . ' #' . $message['counter'] : '', ' ', $txt[30], ': ', $message['time'], ' »
';
 
  // Can they reply? Have they turned on quick reply?
  if ($context['can_reply'] && !empty($options['display_quick_reply']))
  echo '
  ', $reply_button, '';

(The four styles are conceptually orthogonal: A = subject-in-italics, B = subject-with-graphical-prefix, C = subject-in-black, D = subject-underlined. A + D = in italics and underlined, D + B = underlined and with a graphical prefix, etc.; I think, if it were up to me, I might just go with C: it's nice and simple, with plenty of contrast, so it's really easy to pick out the "marked" post, and it still looks SMFish to my eyes. Though, for some types of color blindness, I can see other choices/combinations making sense.)
sr. member
Activity: 1260
Merit: 358
Reading the thread shows that OP was asking for personalized suggestions, basically the pov of other users. I personally will easily keep tabs on a reply if it is highlighted to me once I land on the page, even if hat fades of later. And it's a middle ground between having less obvious markers which can easily be missed and loud ones which will stand out too much in the page.

Try having some individualized opinions yourself, not so hard, eh?

Seems like you have taken it personally although my intention wasn't to make you feel that way. When we talk about personalized suggestions and opinions, they are supposed to be a solution to the problem being discussed. I don't see any value in a personalized suggestion that isn't in any way solving the problem. That was what I was trying to say if the marker fades away, there is no point in having it in the first place because you would still lose track of the post you were redirected to, you might be able to easily identify the posts but it doesn't mean it's a universal solution, and that is what is being discussed here.  Smiley

Talking about having individualized opinions myself, I did face the problem being discussed here all the time, however, the solutions discussed seemed perfect to me, so I didn't want to repeat anything, but since I didn't find your opinion suitable, I thought of pointing that out since all of us have freedom of speech in the forum and I have every right to do that.  Smiley
legendary
Activity: 2758
Merit: 6830
I’ll have to double check when I get my laptop in ~3 days but as long as you leave the title alone inside its own tag, I can always adjust my scraper. Just don’t commingle the arrow and the actual title in a way you can’t programmatically differentiate both of them.
legendary
Activity: 2254
Merit: 2406
Playgram - The Telegram Casino
Reading the thread shows that OP was asking for personalized suggestions, basically the pov of other users. I personally will easily keep tabs on a reply if it is highlighted to me once I land on the page, even if hat fades of later. And it's a middle ground between having less obvious markers which can easily be missed and loud ones which will stand out too much in the page.

Try having some individualized opinions yourself, not so hard, eh?
legendary
Activity: 1789
Merit: 2535
Goonies never say die.
BPIP grabs this title for the smerit log as well (...)
Oops, how could I forget about you and suchmoon? My bad. Wink

Ah, no worries, it looks like the wouldn't really effect our parsers anyway. Smiley

In terms of hard-coding any styles in general, is there any reason you are not avoiding the all together and adding an "id" to the element, then just adding to the CSS file?  

Code:
#selected_post::before {
  opacity: 30%;
  content: "\2192";
}
sr. member
Activity: 1260
Merit: 358
I will also want a more obvious marker, maybe a darker highlight that fades away after a few seconds on the page. Is this even a possibility?

What's the point of having a marker if it fades away or disappears and you will still have to find the linked-to post by re-entering the link in the URL bar? The actual reason behind this proposal is so that you don't lose the post that you clicked a link to and be able to find it easily even after scrolling up or down on the page.

You need to read this part of the opening post once again I believe because you clearly didn't understand the context of the change being proposed or implemented:

I also sometimes lose track of the linked-to post when I scroll around the page for a bit to get some context before reading the actual post (then, I find myself going to the address bar and hitting Enter so that the browser snaps to the right post again).

In the worst case, both of those situations occur: After landing on the relevant topic-page, you scroll around a bit for some context, then you use the Enter trick to snap to the right post, but that's not reliable for the last or second-to-last post, so you have to do the address-comparing thing too. Cheesy
hero member
Activity: 798
Merit: 1045
Goodnight, ohh Leo!!! 🦅
I will also want a more obvious marker, maybe a darker highlight that fades away after a few seconds on the page. Is this even a possibility?
There's a possibility that Gloves would put up a patch with the darker highlight, but not with an instruction that it fades away on its own after a couple of seconds; not unless you manually refresh the page -- considering the fact that the forum's time-out is way beyond your description.
legendary
Activity: 2254
Merit: 2406
Playgram - The Telegram Casino
Sometimes the post you're looking for will not even be on the landing page after clicking on the link. This I believe happens when some posts in the thread were deleted. Will this pose a problem or it happens too few times for it to actually matter.

I will also want a more obvious marker, maybe a darker highlight that fades away after a few seconds on the page. Is this even a possibility?
hero member
Activity: 510
Merit: 4005
PowerGlove, you seem to know a lot about the custom SMF front end, so let me ask you a question: (...)
I can only guess at what those might be. I think a satisfying answer would have to come from theymos.

I think your changes are too subtle to quickly identify the post I'm looking for.
Yep. I can appreciate that point of view. It's worth pointing out, though, that it's difficult to gauge things just by looking at the example images in the OP; when you see either style A or style B in its proper context (that is, when a differently-rendered post is surrounded by posts that aren't rendered differently), then the differently-rendered post stands out pretty obviously (at least, to my eyes it does).

BPIP grabs this title for the smerit log as well (...)
Oops, how could I forget about you and suchmoon? My bad. Wink

(...) Style C?  Or too obvious?
I think that one is maybe a little too loud. (But, I'm aware that I lean pretty subtle most of the time.)

I mean, my point of view isn't really any more valuable than anyone else's, so if most people think/feel that something a bit more obvious is necessary, then I'm happy to produce patches for styles C/D/E/etc. based on any idea(s) that people like.

One thing to consider, though, is that some users are running modified/customized stylesheets, so a robust solution should try to avoid relying on hard-coded color values (from that point of view, styles A and B are nice and resilient; they'll likely work as intended with any custom stylesheet).

Personally, I think style B has quite a lot of promise; the way it's presented in the OP looks pretty good to me as-is, but the HTML for that style (⇾ ) actually has two degrees of freedom to play with: both the opacity value and the specific Unicode symbol can make a pretty big visual difference. For example, if you bump the opacity up to 60% and change the symbol from U+21FE to U+2B0A (so, ⬊ ), then, it'll look like this:



I suppose, if I ignore my thoughts about custom-stylesheet resilience, and do a slightly taller glyph (U+2BAF), in 60% opacity primary blue, or something, then it's easy to get it to pretty much jump out from the page (⮯ ):



(Something to consider when picking a glyph, is that some of them can either render quite differently or be missing entirely on some devices/browsers/fonts; if that ends up being an actual issue, then, I think what I'll do is bake the symbol into a little transparent PNG, and re-work the patch around that.)
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
As shahzadafzal explained, there is something in the backend that generates these "dummyPosts" and could be related to forum ads.

Only theymos can answer this, but I think it has something to do with the "ad", this bitcointalk ad that appears on every page after the first posts. Because I see there's a pattern, although the number will change as the ad changes, but the ID of this ad has something to do with these posts and this number.

Also, sometimes this post appears once, sometimes twice, or maybe three or four times in a row. It can be above the ad, or sometimes it's around the ad.

I'm not sure if it's related to ads since in this particular rendition of this topic, the ad HTML is below the
's for all the dummy posts (which itself is below the OP).
legendary
Activity: 1789
Merit: 2535
Goonies never say die.
LoyceV and TryNinja would probably appreciate some notice before you merge it, so that they can tweak their scrapers if necessary.
BPIP grabs this title for the smerit log as well, so if style B is chosen, a notice would also be nice to suchmoon or I although I will double-check later if it actually effects us, I just know the order of the tree elements are important on some of the pages.

edit:
Style C?  Or too obvious?
 


Would be on the
above that div:
Code:
legendary
Activity: 1820
Merit: 2700
Crypto Swap Exchange
PowerGlove, you seem to know a lot about the custom SMF front end, so let me ask you a question:

When you open the HTML source of this page for example, there are a bunch of "shadow" posts under the OP. These are invisible posts that have the same HTML structure as real posts, but they don't have anything inside them. There is usually a random amount of these displayed, anywhere from one to three. So what is the deal with that, and where do they come from?

There is a topic where this was discussed a bit: https://bitcointalksearch.org/topic/what-is-this-glitch-5474601

As shahzadafzal explained, there is something in the backend that generates these "dummyPosts" and could be related to forum ads.

Only theymos can answer this, but I think it has something to do with the "ad", this bitcointalk ad that appears on every page after the first posts. Because I see there's a pattern, although the number will change as the ad changes, but the ID of this ad has something to do with these posts and this number.

Also, sometimes this post appears once, sometimes twice, or maybe three or four times in a row. It can be above the ad, or sometimes it's around the ad.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Normally, the (optional) fragment identifier at the end of the URL (#msg60743 in the example link) suffices to position the viewport so that the linked-to post is obvious/unambiguous. But, sometimes that mechanism isn't precise enough, like when the post is the last or second-to-last one on its page
When images without height/width tags load, the page "jumps" a bit, which makes the post I'm looking for not the first one that shows even if it's in the middle of a long page.

Quote
I also sometimes lose track of the linked-to post when I scroll around the page for a bit to get some context before reading the actual post (then, I find myself going to the address bar and hitting Enter so that the browser snaps to the right post again).
I do that too Tongue

Quote
LoyceV and TryNinja would probably appreciate some notice before you merge it
I have so many (old) scrapers, I can't tell if this is going to break something. I'll just see when it happens.



I think your changes are too subtle to quickly identify the post I'm looking for.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
PowerGlove, you seem to know a lot about the custom SMF front end, so let me ask you a question:

When you open the HTML source of this page for example, there are a bunch of "shadow" posts under the OP. These are invisible posts that have the same HTML structure as real posts, but they don't have anything inside them. There is usually a random amount of these displayed, anywhere from one to three. So what is the deal with that, and where do they come from?
sr. member
Activity: 602
Merit: 387
Rollbit is for you. Take $RLB token!
I read your description many times to understand problems in this context and I faced with indexing problem after clicking on a link too. I see your solution is good but I also see you mentioned about issue for moderator when handling report.

I propose you to code a SMF patch, together with this one or another one, to quote a linked post. So with that patch, we will have two things like

- Linked-to post like this patch.
- A quote of that post.

If I am a moderator, and receive a report, with a post link, I will get its link and if possible, a quoted content of that reported post.
hero member
Activity: 510
Merit: 4005
Hey, everybody! Smiley

This suggestion came from Cyrus, and I think it's a really good idea, so I thought I'd sink some time into it, and put together a patch.

Basically, the idea is to make it easier to identify the target post after clicking an ordinary post link, like: https://bitcointalksearch.org/topic/m.60743.

Normally, the (optional) fragment identifier at the end of the URL (#msg60743 in the example link) suffices to position the viewport so that the linked-to post is obvious/unambiguous. But, sometimes that mechanism isn't precise enough, like when the post is the last or second-to-last one on its page (then, I often find myself hovering over the subject link and comparing it to the address bar to confirm that I'm reading the right post).

I also sometimes lose track of the linked-to post when I scroll around the page for a bit to get some context before reading the actual post (then, I find myself going to the address bar and hitting Enter so that the browser snaps to the right post again).

In the worst case, both of those situations occur: After landing on the relevant topic-page, you scroll around a bit for some context, then you use the Enter trick to snap to the right post, but that's not reliable for the last or second-to-last post, so you have to do the address-comparing thing too. Cheesy

I also have to imagine that report-handling would be a little more pleasant for moderators if they had a reliable way to always quickly identify the linked-to post.

Anyway, it's tempting to make the linked-to post really stand out by putting a differently-colored background or border on it, or an inset/outset box-shadow or something, but, all the variations of that idea that I tried ended up looking pretty naff (and, anyway, I don't really like messing with the SMF aesthetic that a lot of veteran members prefer as-is). In this case, I think it's wiser to just do something really subtle and "quiet" (after all, the forum has been just fine for a long time without this, so I don't think it should be something that jumps out from the page and draws your eye too much; it should just be something that people who know what to look for, will look for).

I've done this patch in two styles:

Style A

This one just makes the subject-line of the linked-to post render differently than normal (with font-style: italic).



Code:
--- baseline/Sources/Display.php 2011-02-07 16:45:09.000000000 +0000
+++ modified/Sources/Display.php 2024-04-04 00:02:44.000000000 +0000
@@ -230,24 +230,25 @@
  SELECT COUNT(*)
  FROM {$db_prefix}messages
  WHERE ID_MSG < $virtual_msg
  AND ID_TOPIC = $topic", __FILE__, __LINE__);
  list ($context['start_from']) = mysql_fetch_row($request);
  mysql_free_result($request);
  }
 
  // We need to reverse the start as well in this case.
  $_REQUEST['start'] = empty($options['view_newest_first']) ? $context['start_from'] : $topicinfo['numReplies'] - $context['start_from'];
 
  $context['robot_no_index'] = true;
+ $context['requested_msg'] = $virtual_msg;
  }
  }
 
  // Create a previous next string if the selected theme has it as a selected option.
  $context['previous_next'] = $modSettings['enablePreviousNext'] ? '' . $txt['previous_next_back'] . ' ' . $txt['previous_next_forward'] . '' : '';
 
  // Check if spellchecking is both enabled and actually working. (for quick reply.)
  $context['show_spellchecking'] = !empty($modSettings['enableSpellChecking']) && function_exists('pspell_new');
 
  // Censor the title...
  censorText($topicinfo['subject']);
  $context['page_title'] = $topicinfo['subject'];

Code:
--- baseline/Themes/default/Display.template.php 2010-10-22 01:38:35.000000000 +0000
+++ modified/Themes/default/Display.template.php 2024-04-04 00:03:41.000000000 +0000
@@ -359,32 +359,33 @@
  echo '
  ', $settings['use_image_buttons'] ? '' . $message['member']['online']['label'] . '' : $message['member']['online']['label'], '';
  }
  }
  // Otherwise, show the guest's email.
  elseif (empty($message['member']['hide_email']))
  echo '
 

 

  ', ($settings['use_image_buttons'] ? '' . $txt[69] . '' : $txt[69]), '';
 
  // Done with the information about the poster... on to the post itself.
+ $is_requested_message = isset($context['requested_msg']) && $context['requested_msg'] == $message['id'];
  echo '
 

 

 
 
 
 
 

-

+ ';
 
  // If this is the first post, (#0) just say when it was posted - otherwise give the reply #.
  echo '
 
« ', !empty($message['counter']) ? $txt[146] . ' #' . $message['counter'] : '', ' ', $txt[30], ': ', $message['time'], ' »
';
 
  // Can they reply? Have they turned on quick reply?
  if ($context['can_reply'] && !empty($options['display_quick_reply']))
  echo '
  ', $reply_button, '';

Style B

This one places a small, low-opacity Unicode arrow just before the subject-line of the linked-to post.



Code:
--- baseline/Sources/Display.php 2011-02-07 16:45:09.000000000 +0000
+++ modified/Sources/Display.php 2024-04-04 00:02:44.000000000 +0000
@@ -230,24 +230,25 @@
  SELECT COUNT(*)
  FROM {$db_prefix}messages
  WHERE ID_MSG < $virtual_msg
  AND ID_TOPIC = $topic", __FILE__, __LINE__);
  list ($context['start_from']) = mysql_fetch_row($request);
  mysql_free_result($request);
  }
 
  // We need to reverse the start as well in this case.
  $_REQUEST['start'] = empty($options['view_newest_first']) ? $context['start_from'] : $topicinfo['numReplies'] - $context['start_from'];
 
  $context['robot_no_index'] = true;
+ $context['requested_msg'] = $virtual_msg;
  }
  }
 
  // Create a previous next string if the selected theme has it as a selected option.
  $context['previous_next'] = $modSettings['enablePreviousNext'] ? '' . $txt['previous_next_back'] . ' ' . $txt['previous_next_forward'] . '' : '';
 
  // Check if spellchecking is both enabled and actually working. (for quick reply.)
  $context['show_spellchecking'] = !empty($modSettings['enableSpellChecking']) && function_exists('pspell_new');
 
  // Censor the title...
  censorText($topicinfo['subject']);
  $context['page_title'] = $topicinfo['subject'];

Code:
--- baseline/Themes/default/Display.template.php 2010-10-22 01:38:35.000000000 +0000
+++ modified/Themes/default/Display.template.php 2024-04-04 00:05:27.000000000 +0000
@@ -359,33 +359,34 @@
  echo '
  ', $settings['use_image_buttons'] ? '' . $message['member']['online']['label'] . '' : $message['member']['online']['label'], '';
  }
  }
  // Otherwise, show the guest's email.
  elseif (empty($message['member']['hide_email']))
  echo '
 

 

  ', ($settings['use_image_buttons'] ? '' . $txt[69] . '' : $txt[69]), '';
 
  // Done with the information about the poster... on to the post itself.
+ $is_requested_message = isset($context['requested_msg']) && $context['requested_msg'] == $message['id'];
  echo '
 

 

 
 
 
 

 

- ', $message['subject'], '
+ ', $is_requested_message ? '⇾ ' : '', '', $message['subject'], '
 
';
 
  // If this is the first post, (#0) just say when it was posted - otherwise give the reply #.
  echo '
 
« ', !empty($message['counter']) ? $txt[146] . ' #' . $message['counter'] : '', ' ', $txt[30], ': ', $message['time'], ' »
';
 
  // Can they reply? Have they turned on quick reply?
  if ($context['can_reply'] && !empty($options['display_quick_reply']))
  echo '
  ', $reply_button, '';

As always, everyone's thoughts/notes/votes are appreciated. Wink

@theymos: Style A doesn't add or remove any markup, so post scrapers (probably) won't be affected by the change. Style B introduces a new element just before the element that wraps the subject-line, so if that's the one you like (assuming that you like either one to begin with), then LoyceV and TryNinja would probably appreciate some notice before you merge it, so that they can tweak their scrapers if necessary.
Jump to:
© 2020, Bitcointalksearch.org