Jump to the first unread post in topic

Snitz™ Forums 2000
https://forum.snitz.com/forumTopic/Posts/71051?pagenum=1
05 November 2025, 02:12

Topic


Webbo
Jump to the first unread post in topic
15 September 2015, 17:26


Having done a search for a 'Jump to first unread post in a topic' the nearest I could find relating to it was this old thread... http://forum.snitz.com/Forum/topic.asp?ARCHIVE=true&TOPIC_ID=31927

We already have this which will 'Jump to Last Post'


How hard would it be to convert it to 'jump to first unread post' within a thread for logged in members and leave it as 'jump to last post' for visitors who would not be 'cookied' so therefore the software wouldn't know what they'd read or not?

 

Replies ...


HuwR
16 September 2015, 06:12


The forum has no way of knowing what the last post you read was as it is not tracked
AnonJr
16 September 2015, 09:33


You could make a decent guess based on the last visit time and the post time, but I forget exactly when the last visit time is updated.
HuwR
16 September 2015, 12:28


the last visit time does not indicate whether you have read a post, or even looked in a particular forum. Plus that is exactly how Active.asp works by default, it will show you posts since your last visit.
The two thinks are by no means the same, I can visit without reading anything at all.
Webbo
16 September 2015, 15:45


What would be required for the forum to know the last post you read, would it be possible to add this using cookies?
HuwR
16 September 2015, 16:18


yes, you could track it with cookies, you could create a cookie using the forum_id as part of its name and store the date against it, then retrieve when you want to use it
Carefree
16 September 2015, 16:50


You'd have to track the last post read in each/every forum that a person has access to. You would have to update the cookie every time a post is read.
Webbo
17 September 2015, 02:23


What kind of load would that put on a server for a busy forum ?
HuwR
17 September 2015, 07:40


Not entirely sure smile
AnonJr
17 September 2015, 09:30


True, didn't quite think it all the way through.
Now that I'm thinking of it, maybe this would be a good use for some of the local storage options instead of cookies? In either case, you still have the fun of figuring out what to do if I read it on my laptop and am now viewing the forum on my tablet... to a programmer, it makes sense that the cookie/local storage didn't follow you from device to device; but to the average user, there would likely be confusion as to why it's telling me I didn't read it when I did.
HuwR
17 September 2015, 12:05


Originally posted by AnonJr
True, didn't quite think it all the way through.
Now that I'm thinking of it, maybe this would be a good use for some of the local storage options instead of cookies? In either case, you still have the fun of figuring out what to do if I read it on my laptop and am now viewing the forum on my tablet... to a programmer, it makes sense that the cookie/local storage didn't follow you from device to device; but to the average user, there would likely be confusion as to why it's telling me I didn't read it when I did.

Yes, that is very true, so may be better to store in a table perhaps, but you would also need to think about house keeping so if a topic is deleted it would remove it from being tracked (otherwise the table will get full of junk records)
Carefree
17 September 2015, 12:19


The only way to do it, IMHO, would be to track who viewed which topics in a table, adding a big load for a large, busy server. You could do it by adding a field to the Members table, then comma-separating all topics viewed, appending, appending, ad infinitum. It would be very slow, eventually, checking such a list for every visitor.
Alternatively, instead of last topic read - why not have it jump to FIRST topic posted following date of last visit? Much simpler, much less demand on the database.
AnonJr
17 September 2015, 13:58


Just ruminating out loud, but what if the bulk of the work was left to be done client-side? Store all of the Topic IDs/Post numbers in a JSON format (either in a field in the members table or as discrete files, e.g. 'memberid.json') and let some client-side JS keep it up, sending an updated copy to be synced back at a set interval and/or action...
... I had more to that thought, but after 3 calls, two knocks at the office door, and a few other interruptions I've lost all notion of the original thought. =/
AnonJr
17 September 2015, 14:00


Originally posted by Carefree
Alternatively, instead of last topic read - why not have it jump to FIRST topic posted following date of last visit? Much simpler, much less demand on the database.

Close to what I had originally posted, but as HuwR pointed out, just because I came doesn't mean I read that post. It could be an acceptable compromise if it's something the community could grasp and be ok with - that I might get bumped to later in a thread than what I'd actually read because it assumed I read everything that was there at the time of my last visit.
Webbo
17 September 2015, 16:42


I think that would be confusing for a lot of people

HuwR
17 September 2015, 17:36


You could try an approach similar to below


Create a new field, called hasread in the topic and reply tables. This field contains a list of values in string form, following a certain pattern.
For example: 5|6|12|1107|2045|45.
Each value between | represents a member id, who has read the post.

Every time a user opens a forum or topic, while fetching the list of topics or replies, you check if each post was read by that user,
by:
Splitting the string in hasread Now you have an array containing the memberids, so you just need to check if the current user is in the array

If false, the post is unread, otherwise mark it as read and also append that memberid in the hasread list.
Webbo
18 September 2015, 02:39


That could work as long as there are no new posts to the thread since the member's last visit. If new posts then the thread would need unmarking or remarking as 'new posts since last visit' and a link or button to take you to the first of the unread posts
Carefree
18 September 2015, 04:22


If you marked the topic (and specific replies) as having been read, but new replies were not marked, only the new replies would be shown as new. The requirement would, as HuwR indicated, be covered by a field for every topic/reply listing any user(s) who had read them.
I'll see if I can write something that will do it when I get back from the hospital, if nobody beats me to it.
HuwR
18 September 2015, 05:02


For high volume sites with many users it may be better from a performance perspective to normalize the hasread field into a separate table
A simple join in the retrieve posts query should grab the data you need though.
Carefree
18 September 2015, 22:34


OK- I wrote a mod that will do what you want. There may be a more efficient way of doing the same thing, but I'm tired. If someone else wants to rewrite it, feel free.
It requires two new fields in the database, one new image, and three small changes to files.
First, save the following in your forum directory as "dbs_trackviews.asp", and run Mod Setup from admin console.
Code:

Track Views 1.0

[ALTER] TOPICS
ADD#T_VIEWLIST#MEMO#NULL#
[END]

[ALTER] REPLY
ADD#R_VIEWLIST#MEMO#NULL#
[END]

Next, make the following changes to your existing files:

"default.asp"
Code:

Look for the following lines (appx 1039-1045):

if (showicon = true) then DoLastPostLink = DoLastPostLink & getCurrentIcon(strIconLastpost,"Jump to Last Post","align=""absmiddle""") & "</a>"
elseif ForumLastPostTopicID <> 0 then
DoLastPostLink = "<a href=""topic.asp?TOPIC_ID=" & ForumLastPostTopicID & """>"
if (showicon = true) then DoLastPostLink = DoLastPostLink & getCurrentIcon(strIconLastpost,"Jump to Last Post","align=""absmiddle""") & "</a>"
else
DoLastPostLink = ""
end if

If keeping both "Jump to Last Post" link and "Unread Post" link, then change them to say:
if (showicon = true) then DoLastPostLink = DoLastPostLink & getCurrentIcon(strIconLastpost,"Jump to Last Post","align=""absmiddle""") & "</a> "&DoLastUnreadLink
elseif ForumLastPostTopicID <> 0 then
DoLastPostLink = "<a href=""topic.asp?TOPIC_ID=" & ForumLastPostTopicID & """>"
if (showicon = true) then DoLastPostLink = DoLastPostLink & getCurrentIcon(strIconLastpost,"Jump to Last Post","align=""absmiddle""") & "</a> "&DoLastUnreadLink
else
DoLastPostLink = ""
end if
' ## Track Views Above

Otherwise, if keeping only "Unread Post" link, then change them to say:
if (showicon = true) then DoLastPostLink = DoLastUnreadLink
' ## Track Views Above

Look for the following line (appx 1034):

Function DoLastPostLink(showicon)

Below it, insert these:
' ## Track Views Below
DoLastUnreadLink = ""
strSqlUR="SELECT FORUM_ID, TOPIC_ID, T_VIEWLIST FROM " & strTablePrefix & "TOPICS WHERE FORUM_ID=" & ForumID & " ORDER BY TOPIC_ID DESC"
Set rsUR = my_Conn.Execute(strSqlUR)
If Not rsUR.EOF Then
rsUR.MoveFirst
Do While Not rsUR.EOF
If rsUR("T_VIEWLIST") > "" Then
If InStr(rsUR("T_VIEWLIST"), "|" & CStr(MemberID) & "|") = 0 Then
Topic_UnreadID = rsUR("TOPIC_ID")
End If
Else
Topic_UnreadID = rsUR("TOPIC_ID")
End If
rsUR.MoveNext
Loop
rsUR.Close
End If
Set rsUR = Nothing
If Topic_UnreadID > 0 Then intTUI = CLng(Topic_UnreadID) Else intTUI = 0
strSqlUR = "SELECT FORUM_ID, TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE FORUM_ID=" & ForumID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsUR = my_Conn.Execute(strSqlUR)
If Not rsUR.EOF Then
rsUR.MoveFirst
Do While Not rsUR.EOF
If rsUR("R_VIEWLIST") > "" Then
If InStr(rsUR("R_VIEWLIST"), "|" & CStr(MemberID) & "|") = 0 Then
If rsUR("TOPIC_ID") < Topic_UnreadID Then Topic_UnreadID = rsUR("TOPIC_ID")
End If
Else
If rsUR("TOPIC_ID") < Topic_UnreadID Then Topic_UnreadID = rsUR("TOPIC_ID")
End If
rsUR.MoveNext
Loop
rsUR.Close
End If
Set rsUR = Nothing

"topic.asp"
Code:

Look for the following lines (appx 79-81):

mypage = request("whichpage")
if ((Trim(mypage) = "") or (IsNumeric(mypage) = False)) then mypage = 1
mypage = cLng(mypage)

After those, insert these:
' ## Track Views Below
Dim strViewed, intLSV, intFound
strViewed="":intLSV=0 : intFound = 0
If MemberID > 0 Then strMID = CStr(MemberID) Else strMID=""
strSqlVL = "SELECT TOPIC_ID, T_VIEWLIST FROM " & strTablePrefix & "TOPICS WHERE TOPIC_ID=" & TOPIC_ID
Set rsViewed = my_Conn.Execute(strSqlVL)
If Not (rsViewed.BOF Or rsViewed.EOF) Then
strViewed = Trim(rsViewed("T_VIEWLIST"))
If Len(strViewed) > 0 Then
intLSV = Len(strViewed)
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
intFound = 1
End If
Else
strViewed = "|" & strMid & "|"
End If
rsViewed.Close
End If
Set rsViewed = Nothing
If strMid > "" Then
If intFound = 0 Then
strSqlTV = "UPDATE " & strTablePrefix & "TOPICS SET T_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID
my_conn.Execute (strSqlTV),,adCmdText + adExecuteNoRecords
strSqlRL = "SELECT TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE TOPIC_ID=" & TOPIC_ID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsViewed = my_Conn.Execute(strSqlRL)
If Not rsViewed.EOF Then
rsViewed.MoveFirst
strViewed = ""
Do While Not rsViewed.EOF
strViewed = Trim(rsViewed("R_VIEWLIST"))
If Len(strViewed) > 0 Then
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
strSqlRV = "UPDATE " & strTablePrefix & "REPLY SET R_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID & " AND REPLY_ID=" & rsViewed("REPLY_ID")
my_conn.Execute (strSqlRV),,adCmdText + adExecuteNoRecords
rsViewed.MoveNext
Loop
rsViewed.Close
End If
Set rsViewed = Nothing
Else
strSqlRL = "SELECT TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE TOPIC_ID=" & TOPIC_ID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsViewed = my_Conn.Execute(strSqlRL)
If Not rsViewed.EOF Then
rsViewed.MoveFirst
strViewed = ""
Do While Not rsViewed.EOF
strViewed = Trim(rsViewed("R_VIEWLIST"))
If Len(strViewed) > 0 Then
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
strSqlRV = "UPDATE " & strTablePrefix & "REPLY SET R_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID & " AND REPLY_ID=" & rsViewed("REPLY_ID")
my_conn.Execute (strSqlRV),,adCmdText + adExecuteNoRecords
rsViewed.MoveNext
Loop
rsViewed.Close
End If
Set rsViewed = Nothing
End If
ElseIf intLSV = 0 And strMid > "" Then
strViewed = "|" & strMid & "|"
strSqlTV = "UPDATE " & strTablePrefix & "TOPICS SET T_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID
my_conn.Execute (strSqlTV),,adCmdText + adExecuteNoRecords
strSqlRL = "SELECT TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE TOPIC_ID=" & TOPIC_ID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsViewed = my_Conn.Execute(strSqlRL)
If Not rsViewed.EOF Then
rsViewed.MoveFirst
strViewed = ""
Do While Not rsViewed.EOF
strViewed = Trim(rsViewed("R_VIEWLIST"))
If Len(strViewed) > 0 Then
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
strSqlRV = "UPDATE " & strTablePrefix & "REPLY SET R_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID & " AND REPLY_ID=" & rsViewed("REPLY_ID")
my_conn.Execute (strSqlRV),,adCmdText + adExecuteNoRecords
rsViewed.MoveNext
Loop
rsViewed.Close
End If
Set rsViewed = Nothing
End If
' ## Track Views Above

"inc_iconfiles.asp"
Code:

Look for the following line (appx 148):

Const strIconZap = "icon_zap.gif|16|16"

Below it, insert these:
' ## Track Views Below
Const strIconUnread = "icon_unread.png|21|15"
' ## Track Views Above

Finally, insert this icon (or some icon of your choice) into your images folder. It should be called "icon_unread.png" and dimensions should be 21x15 (or some multiple thereof). If dimensions do not match, you'll have to change the dimensions in "inc_iconfiles.asp".
Webbo
19 September 2015, 05:17


Thanks Carefree, I'll add it and give it a try later today
HuwR
19 September 2015, 05:52


@Carefree

This logic from topic.asp doesn't look right

Code:

If Len(strViewed) > 0 Then
intLSV = Len(strViewed)
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
intFound = 1
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
Shouldn't it be
Code:

If Len(strViewed) > 0 Then
intLSV = Len(strViewed)
If InStr(strViewed, "|" & strMid & "|") = 0 Then
'we didn't find it, so append to strViewed and set intViewed=0 strViewed = strViewed & strMid & "|"
intFound = 0 Else
we did find it, so set intFound = 1 strViewed = "|" & strMid & "|"We don't need to change strViewed here intFound = 1
End If
Else
strViewed = "|" & strMid & "|"
End If
HuwR
19 September 2015, 06:04


I'm also not certain that having an R_VIEWLIST has much meaning, since there is no concept of having read a reply.

You could track topic pagenum maybe, but don't see how you decide if a reply has been read


Carefree
19 September 2015, 15:35


R_Viewlist has a meaning. If a member reads a topic on X date, but later a reply is added that he/she has not seen, it will trigger new content notification.
@HuwR

Yes, just about correct on that change: We don't need the line crossed out since intFound was already set to 0.
Shouldn't it be

Code:

If Len(strViewed) > 0 Then
intLSV = Len(strViewed)
If InStr(strViewed, "|" & strMid & "|") = 0 Then
'we didn't find it, so append to strViewed and set intViewed=0
strViewed = strViewed & strMid & "|"
intFound = 0 Else
we did find it, so set intFound = 1
strViewed = "|" & strMid & "|"We don't need to change strViewed here
intFound = 1
End If
golfmann
19 September 2015, 16:52


I'm jumping in here again to offer an idea (again). I would do this but don't have the skills or patience to learn.
How about:
some sort of "Posts To You" and "REPLIES To you" on a per member basis alert in the header (sort of like the avatar approval mod)
The jump to last post thing works well enough for me to keep up on others posts (using the active.asp). Wouldn't this do for most?
BUT... a posts or replies to posts (or other replies) of a member has always been sorely missing, IMO
Any member would understand this pretty fast and most are self interested by nature anyway.
Plus a per member basis could be easier to track and smaller AND accessible across any device, would it not?
OK free 2 cents has been offered smile
Carefree
19 September 2015, 18:06


Already have this capability in Subscriptions....
golfmann
19 September 2015, 20:59


I thought subscriptions were emailed...
Carefree
20 September 2015, 03:39


They are. Not sure exactly what you want here. An indicator of topics with new replies BUT only those which you either created the topic or had previously replied to?
HuwR
20 September 2015, 04:03


Originally posted by Carefree
R_Viewlist has a meaning. If a member reads a topic on X date, but later a reply is added that he/she has not seen, it will trigger new content notification.

Ok, got ya, however it may be better to populate r_viewlist on a page basis, so if I open a topic with say 3 pages and only read the first page, the other replies in the topic does not get flagged as read, slightly more work, but a more accurate reflection of what you have read maybe.
Carefree
21 September 2015, 00:33


OK. This is untested, but should do it.
"topic.asp" code

Code:

'	##	Track Views Below
Dim strViewed, intLSV, intFound
strViewed="":intLSV=0 : intFound = 0
If MemberID > 0 Then strMID = CStr(MemberID) Else strMID=""
strSqlVL = "SELECT TOPIC_ID, T_VIEWLIST FROM " & strTablePrefix & "TOPICS WHERE TOPIC_ID=" & TOPIC_ID
Set rsViewed = my_Conn.Execute(strSqlVL)
If Not (rsViewed.BOF Or rsViewed.EOF) Then
strViewed = Trim(rsViewed("T_VIEWLIST"))
If Len(strViewed) > 0 Then
intLSV = Len(strViewed)
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
intFound = 1
End If
Else
strViewed = "|" & strMid & "|"
End If
rsViewed.Close
End If
Set rsViewed = Nothing
If strMid > "" Then
If intFound = 0 Then
strSqlTV = "UPDATE " & strTablePrefix & "TOPICS SET T_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID
my_conn.Execute (strSqlTV),,adCmdText + adExecuteNoRecords
strSqlRL = "SELECT TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE TOPIC_ID=" & TOPIC_ID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsViewed = my_Conn.Execute(strSqlRL)
If Not rsViewed.EOF Then
If Request("whichpage") > "" Then
reViewed.Move(25 * whichpage)
Else
rsViewed.MoveFirst
End If
strViewed = "" : intI = 0
Do While Not rsViewed.EOF
intI = intI + 1
If intI = 26 Then Exit Do
strViewed = Trim(rsViewed("R_VIEWLIST"))
If Len(strViewed) > 0 Then
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
strSqlRV = "UPDATE " & strTablePrefix & "REPLY SET R_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID & " AND REPLY_ID=" & rsViewed("REPLY_ID")
my_conn.Execute (strSqlRV),,adCmdText + adExecuteNoRecords
rsViewed.MoveNext
Loop
rsViewed.Close
End If
Set rsViewed = Nothing
Else
strSqlRL = "SELECT TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE TOPIC_ID=" & TOPIC_ID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsViewed = my_Conn.Execute(strSqlRL)
If Not rsViewed.EOF Then
If Request("whichpage") > "" Then
reViewed.Move(25 * whichpage)
Else
rsViewed.MoveFirst
End If
strViewed = "" : intI = 0
Do While Not rsViewed.EOF
intI = intI + 1
If intI = 26 Then Exit Do
strViewed = Trim(rsViewed("R_VIEWLIST"))
If Len(strViewed) > 0 Then
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
strSqlRV = "UPDATE " & strTablePrefix & "REPLY SET R_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID & " AND REPLY_ID=" & rsViewed("REPLY_ID")
my_conn.Execute (strSqlRV),,adCmdText + adExecuteNoRecords
rsViewed.MoveNext
Loop
rsViewed.Close
End If
Set rsViewed = Nothing
End If
ElseIf intLSV = 0 And strMid > "" Then
strViewed = "|" & strMid & "|"
strSqlTV = "UPDATE " & strTablePrefix & "TOPICS SET T_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID
my_conn.Execute (strSqlTV),,adCmdText + adExecuteNoRecords
strSqlRL = "SELECT TOPIC_ID, REPLY_ID, R_VIEWLIST FROM " & strTablePrefix & "REPLY WHERE TOPIC_ID=" & TOPIC_ID & " ORDER BY TOPIC_ID DESC, REPLY_ID DESC"
Set rsViewed = my_Conn.Execute(strSqlRL)
If Not rsViewed.EOF Then
If Request("whichpage") > "" Then
reViewed.Move(25 * whichpage)
Else
rsViewed.MoveFirst
End If
strViewed = "" : intI = 0
Do While Not rsViewed.EOF
intI = intI + 1
If intI = 26 Then Exit Do
strViewed = Trim(rsViewed("R_VIEWLIST"))
If Len(strViewed) > 0 Then
If InStr(strViewed, "|" & strMid & "|") = 0 Then
strViewed = strViewed & strMid & "|"
Else
strViewed = "|" & strMid & "|"
End If
Else
strViewed = "|" & strMid & "|"
End If
strSqlRV = "UPDATE " & strTablePrefix & "REPLY SET R_VIEWLIST='" & strViewed & "' WHERE TOPIC_ID = " & Topic_ID & " AND REPLY_ID=" & rsViewed("REPLY_ID")
my_conn.Execute (strSqlRV),,adCmdText + adExecuteNoRecords
rsViewed.MoveNext
Loop
rsViewed.Close
End If
Set rsViewed = Nothing
End If
' ## Track Views Above
Webbo
26 September 2015, 02:15


Just letting you all know I'm not ignoring you smile Had a busy week with one thing and another so not had any time to implement this
golfmann
26 September 2015, 15:11


Originally posted by Carefree
They are. Not sure exactly what you want here. An indicator of topics with new replies BUT only those which you either created the topic or had previously replied to?
I'd like to personalize some kind of alert to a given member so they can keep track better if someone replies to their post OR a reply they made... Same thing's I've been wanting for oh.... about 10 years give or take smile
Active topics, seems to me, to take care of the rest.
Then No other forum software would have anything over on Snitz as far as I'm concerned.
Carefree
26 September 2015, 18:00


I'd like to personalize some kind of alert to a given member so they can keep track better if someone replies to their post OR a reply they made...
There's no way to know (with the current configuration) which reply someone responds to. Replies are all associated strictly with the topic, even if the content refers to a specific earlier reply.
Subscriptions already fulfills the topic alerts. Members need only subscribe to their own topics. If you make alerts/emails automatic for all topics, you'll probably end up on a spam list and have your server blocked.
golfmann
27 September 2015, 01:43


I never said anything about wanting emails. and I am aware of all the rest. I ws just voicing an opinion of a major shortcoming IMO. Have a good week
Webbo
04 October 2015, 12:57


Sorry for the delay Carefree, I've now tried implementing this and get the following error on Default.asp

Microsoft VBScript runtime error '800a0006'

Overflow: 'cint'

/forum/default.asp, line 1072


That line is the second one here:

Set rsUR = Nothing
If Topic_UnreadID > 0 Then intTUI = CInt(Topic_UnreadID) Else intTUI = 0


HuwR
04 October 2015, 13:03


try changing CInt to CLng
Webbo
04 October 2015, 13:04


Changing CInt() to CLng() fixed the error however when jumping to last unread post from default it takes me back to a post way back in 2005 instead of the last unread post in that forum
Carefree
04 October 2015, 16:03


when jumping to last unread post from default it takes me back to a post way back in 2005 instead of the last unread post in that forum

It shouldn't. It is sorted by Topic_ID in descending order.
© 2000-2021 Snitz™ Communications