Jag grävde vidare i detta. Det visar sig att min minnesbild stämmer ganska bra: detta var en grundfunktion i vBulletin.
I gammal vBulletin-kod finns "goto=newpost" uttryckligen implementerat i "showthread.php":
Kod:
case 'newpost':
$threadinfo = verify_id('thread', $threadid, 1, 1);
if ($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid'])
{
$vbulletin->userinfo['lastvisit'] = max(
$threadinfo['threadread'],
$threadinfo['forumread'],
TIMENOW - ($vbulletin->options['markinglimit'] * 86400)
);
}
else if (($tview = intval(fetch_bbarray_cookie('thread_lastview', $threadid))) > $vbulletin->userinfo['lastvisit'])
{
$vbulletin->userinfo['lastvisit'] = $tview;
}
$posts = $db->query_first("
SELECT MIN(postid) AS postid
FROM " . TABLE_PREFIX . "post
WHERE threadid = $threadinfo[threadid]
AND visible = 1
AND dateline > " . intval($vbulletin->userinfo['lastvisit']) . "
Källkod:
https://github.com/holandacz/nb4/blob/master/showthread.php
Det intressanta är alltså vad koden faktiskt gör.
"goto=newpost" betyder inte "gå till sista inlägget". Den hämtar användarens "threadread" och "forumread" och söker därefter efter det första synliga inlägget som är nyare än den beräknade läspositionen.
Det finns även gamla vBulletin-templates där standardlänken syns:
Kod:
showthread.php?goto=newpost&t=$lastpostinfo[lastthreadid]
och vBulletins egen phrase för länken heter:
Kod:
go_first_unread_in_thread_x
Samma template skiljer dessutom uttryckligen denna från:
Kod:
showthread.php?goto=lastpost&t=$lastpostinfo[lastthreadid]
Källa:
https://www.daniweb.com/programming/web-development/threads/12725/revised-vbulletin-mod-rewrite-tutorial
Det var alltså två olika operationer:
Kod:
goto=newpost
→ första olästa inlägget för just den användaren
goto=lastpost
→ trådens sista inlägg
Det finns även samtida beskrivningar från andra vBulletin-forum som bekräftar samma beteende. En administratör beskriver exempelvis "newpost" som något som löses i forumdatabasen utifrån lagrade read markers, användarens senaste aktivitet och inläggens tid, varefter servern redirectar till det konkreta post-ID:t:
https://www.wilderssecurity.com/threads/wilders-email-notification-positioning-to-first-new-unread-post-in-thread.312232/
Det här gör Flashbacks nuvarande beteende rätt intressant.
Flashbacks gamla URI fungerar fortfarande:
Kod:
https://www.flashback.org/showthread.php?threadid=3740310&goto=newpost
Samtidigt har vi dagens:
Kod:
https://www.flashback.org/t3740310s
Om dessa två idag leder till samma sak, alltså trådens senaste inlägg, verkar Flashback någon gång vid refaktoreringen av sina gamla vBulletin-URI:er ha slagit ihop två operationer som ursprungligen hade olika semantik.
Det vore i så fall inte en funktion som behöver uppfinnas.
Det vore en gammal grundfunktion som har refaktorats sönder.
Det passar dessutom väldigt bra ihop med vad Flashback fortfarande gör på Favoriter och Prenumerationer. Systemet kan fortfarande skilja en tråd med olästa inlägg från en som är ikappläst. Den gamla vBulletin-implementationen visar också exakt hur sådan information användes för att lösa "goto=newpost" till första olästa inlägget.
Så det jag föreslog ovan:
är egentligen inte ens den intressantaste lösningen längre.
Den riktiga frågan är snarare:
Vad hände med "goto=newpost" när Flashback ersatte de gamla vBulletin-länkarna med dagens URI-format?
EDIT:
https://www.flashback.org/t3740310n borde vara motsvande "newpost". Så ett
på slutet av en trådlänk är motsvarande newpost.