MOD (small): Limit length of TOPIC REVIEW - Postet den (7713 Views)
Junior Member
Rigger82
Innlegg: 311
311
Can anyone tell me where the code lies so I can turn off the display of the entire topic when you post a reply?
I have a hot issue that has been broken out now 5 times and is going on 6 times (I break the topic off at 15 pages or so).
Some users say that they cannot reply since the browser times out displaying all the posts below the reply form... All agree that if they are replying, they really dont need to see the ENTIRE post or really ANY of them so I would like to disable that function.
I was thinking I might modify it so it only shows the last few posts from the topic.
Any help?
---------------------
Mark Christianson
Gulf War Veteran (82nd Airborne Division)
Owner/Operator of www.paratrooper.net
Rigger@paratrooper.net<
   
 Sidestørrelse 
Postet den
Retired Admin
gor
Innlegg: 5511
5511
The sql-statement that selects the previous replies can be found at line 1012 in post.asp:


	'## Forum_SQL - Get all replies to Topic from the DB
strSql ="SELECT " & strMemberTablePrefix & "MEMBERS.M_NAME, " & strTablePrefix & "REPLY.R_MESSAGE "
strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS, " & strTablePrefix & "REPLY "
strSql = strSql & " WHERE " & strMemberTablePrefix & "MEMBERS.MEMBER_ID = " & strTablePrefix & "REPLY.R_AUTHOR "
strSql = strSql & " AND TOPIC_ID = " & Request.QueryString("TOPIC_ID") & " "
strSql = strSql & " ORDER BY " & strTablePrefix & "REPLY.R_DATE"

Pierre<
Postet den
Junior Member
Rigger82
Innlegg: 311
311
Thanks Gor... above that I just added _disabled for each item in the If Then statement so it never runs...

Later I will look at modifying that code so it shows the last few posts only.
Thanks again from all the grateful paratroopers at paratrooper.net


HEY ALL, 2 RANGERS ARE MARCHING 750 MILES FROM GA TO DC TO SHOW OUR RESOLVE AGAINST THE ISSUING OF THE BLACK BERET TO ALL MEMBERS OF THE US ARMY! COME TO PARATROOPER.NET FOR MORE INFORMATION AND HELP SPREAD THE WORD!
---------------------
Mark Christianson
Gulf War Veteran (82nd Airborne Division)
Owner/Operator of www.paratrooper.net
Rigger@paratrooper.net<
Postet den
Retired Admin
gor
Innlegg: 5511
5511
Mark,

When I posted my previous reply I had to post and run (was time for dinner). After a nice dinner I looked a bit longer at the code in post.asp
If you make the blue code changes in post.asp it will only show the newest X replies (sorted descending, meaning newest first). The number of replies shown is the same as the number of posts normally shown on one page (set in the Admin Options).
The code shown below starts at about line 1012 in post.asp:

	'## Forum_SQL - Get all replies to Topic from the DB
strSql ="SELECT " & strMemberTablePrefix & "MEMBERS.M_NAME, " & strTablePrefix & "REPLY.R_MESSAGE "
strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS, " & strTablePrefix & "REPLY "
strSql = strSql & " WHERE " & strMemberTablePrefix & "MEMBERS.MEMBER_ID = " & strTablePrefix & "REPLY.R_AUTHOR "
strSql = strSql & " AND TOPIC_ID = " & Request.QueryString("TOPIC_ID") & " "
strSql = strSql & " ORDER BY " & strTablePrefix & "REPLY.R_DATE DESC"

set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSql, my_Conn, 3

strI = 0
intRecordcount = 1 if rs.EOF or rs.BOF then
Response.Write ""
else Response.Write("<tr>")
Response.Write("<td bgcolor=""" & strHeadCellColor & """ colspan=""2"" align=""center""><b><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHeadFontColor & """>")
Response.Write("L A T E S T  R E P L I E S  (Newest First)</font></b></td></tr>")
rs.movefirst
do until (rs.EOF or (intRecordCount > strPageSize)) if strI = 0 then
CColor = strAltForumCellColor
else
CColor = strForumCellColor
end if
Response.Write " <TR>" & vbCrLf & _
" <TD bgcolor='" & CColor & "' valign='top'"
if lcase(strTopicNoWrapLeft) = "1" then
Response.Write " nowrap"
end if
Response.Write "><b><font color='" & strForumFontColor & "' face='" & strDefaultFontFace & "' size='2'>" & ChkString(rs("M_NAME"),"display") & "</font></b></td>" & vbCrLf & _
" <TD bgcolor='" & CColor & "' valign='top'"
if lcase(strTopicNoWrapRight) = "1" then
Response.Write " nowrap"
end if
Response.Write "><font color='" & strForumFontColor & "' face='" & strDefaultFontFace & "' size='2'>" & formatStr(rs("R_MESSAGE")) & "</font></td>" & vbCrLf & _
" </tr>" & vbCrLf
rs.MoveNext
intRecordcount = intRecordcount + 1 strI = strI + 1
if strI = 2 then
strI = 0
end if
loop
end if

Seeing the large number of replies on some of the Mod-topics this might be something to add to the source code..... (Mike ?)

Pierre<
Postet den
Junior Member
Rigger82
Innlegg: 311
311
Wow.. and tied into the posts per page.. Im impressed. This might be a good addition to the full forum code.
Keep up the great work!
---------------------
Mark Christianson
Gulf War Veteran (82nd Airborne Division)
Owner/Operator of www.paratrooper.net
Rigger@paratrooper.net<
Postet den
Retired Admin
gor
Innlegg: 5511
5511
Thank you smile, I'm going to rename and move this into the finished MODs forum for now. We'll see if it ends up in the source.
Pierre<
Postet den
Retired Admin
gor
Innlegg: 5511
5511
Other than that the shown code starts at about 1236 in Version 3.3.x this MOD still works in the new versions

Pierre Join a Snitz Mailinglist<
Postet den
Retired Admin
gor
Innlegg: 5511
5511
Oops, sorry missed one change,
Because we're using 3.3.02 here at the site, strPageSize now is a string. The RED code is needed to convert it to an integer for it to work.
Pierre Join a Snitz Mailinglist<