Print Page | Close Window

Change RSS topic feed to show unique topics only

Printed From: Web Wiz Forums
Category: Web Wiz Web App Support Forums
Forum Name: Web Wiz Forums
Forum Description: Support forum for Web Wiz Forums application.
URL: https://forums.webwiz.net/forum_posts.asp?TID=25457
Printed Date: 03 April 2026 at 6:32am
Software Version: Web Wiz Forums 12.08 - https://www.webwizforums.com


Topic: Change RSS topic feed to show unique topics only
Posted By: dan74
Subject: Change RSS topic feed to show unique topics only
Date Posted: 17 March 2008 at 4:36pm
Hi,

We just made the following change to our forums (using version 9.06). By default, RSS_topic_feed.asp shows the most recent posts (or threads), but if you had one very popular topic, you see multiple items on this subject. We wanted to show the 10 distinct most recent updated topics.

In RSS_topic_feed.asp, where the SQL query between lines 129 and 158 is put together  you want to change the query so that instead of referencing tblthread.thread_id you use tbltopic.last_thread_id instead:

Around line 139:
"AND " & strDbTable & "Topic.Topic_ID = " & strDbTable & "Thread.Topic_ID " &_
And line 156:
"ORDER BY " & strDbTable & "Thread.Thread_ID DESC"
You can't simply insert DISTINCT into the query because in the original code the message field is a TEXT object, and the message_date and thread_ID would always be distinct anyway. Below is the revised query:
SELECT TOP 100 tblForum.Forum_name, tblTopic.Topic_ID, tblTopic.Subject, tbltopic.last_thread_id,
tblthread.message_date, tblthread.message, tblAuthor.Author_ID, tblAuthor.Username
FROM tblForum, tblTopic, tblthread, tblAuthor
WHERE tblForum.Forum_ID = tblTopic.Forum_ID AND
    tbltopic.last_thread_id = tblthread.thread_id AND
    tblauthor.Author_id = tblthread.author_id AND
    --permissions stuff edited out for clarity
ORDER BY tblTopic.last_thread_ID DESC;

Hope this helps anyone else.

Dan


-------------
---
Danny



Replies:
Posted By: Jeppe
Date Posted: 13 September 2008 at 8:26pm
Hi Dan,
 
It works perfectly. Thank you very much. Web Wiz really ought to include it as a standard in the forum package since we all seem to be asking for this feature.
 
I did have a few problems finding out exactly where to change the code, so now that it is working as intended I am posting the entire altered code here so that getting it to work is just a matter of copying it:
 
<% @ Language=VBScript %>
<% Option Explicit %>
<!-- #include file="includes/global_variables_inc.asp" -->
<!-- #include file="includes/setup_options_inc.asp" -->
<!-- #include file="includes/version_inc.asp" -->
<!-- #include file="database/database_connection.asp" -->
<!-- #include file="functions/functions_common.asp" -->
<!-- #include file="functions/functions_filters.asp" -->
<!-- #include file="functions/functions_format_post.asp" -->
<!-- #include file="language_files/language_file_inc.asp" -->
<!-- #include file="language_files/RTE_language_file_inc.asp" -->
<%
'****************************************************************************************
'** Copyright Notice   
'**
'**  Web Wiz Forums(TM)
'** 
http://www.webwizforums.com/ - http://www.webwizforums.com
'**                           
'**  Copyright (C)2001-2008 Web Wiz(TM). All Rights Reserved.
'** 
'**  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'.
'** 
'**  IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE
'**  THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE
'**  AND DERIVATIVE WORKS IMMEDIATELY.
'** 
'**  If you have not received a copy of the license with this work then a copy of the latest
'**  license contract can be found at:-
'**
'** 
http://www.webwiz.net/license - http://www.webwiz.net/license
'**
'**  For more information about this software and for licensing information please contact
'**  'Web Wiz' at the address and website below:-
'**
'**  Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England
'** 
http://www.webwiz.net/ - http://www.webwiz.net
'**
'**  Removal or modification of this copyright notice will violate the license contract.
'**
'****************************************************************************************
 
'*************************** SOFTWARE AND CODE MODIFICATIONS ****************************
'**
'** MODIFICATION OF THE FREE EDITIONS OF THIS SOFTWARE IS A VIOLATION OF THE LICENSE 
'** AGREEMENT AND IS STRICTLY PROHIBITED
'**
'** If you wish to modify any part of this software a license must be purchased
'**
'****************************************************************************************
 
 
'Set the response buffer to true as we maybe redirecting
Response.Buffer = True
'Open database connection
Call openDatabase(strCon)
'Load in configuration data
Call getForumConfigurationData()
'If RSS is not enabled send the user away
If blnRSS = False Then
 'Clear server objects
 Call closeDatabase()
 'Redirect
 Response.Redirect("default.asp")
End If
'Include the date time format hear, incase a database hit is required if the date and time data is not in the web servers memory
%><!-- #include file="functions/functions_date_time_format.asp" --><%

'Declare variables
Dim sarryRssTopics 'Holds the RSS Feed recordset
Dim intCurrentRecord 'Holds the current record in the array
Dim strForumName 'Holds the forum name
Dim lngTopicID  'Holds the topic ID
Dim strSubject  'Holds the subject
Dim lngMessageID 'Holds the message ID
Dim dtmMessageDate 'Holds the message date
Dim lngAuthorID  'Holds the author ID
Dim strUsername  'Holds sthe authros user name
Dim strMessage  'Holds the post
Dim strRssChannelTitle 'Holds the channel name
Dim strTimeZone  'Holds the time zone for the feed
Dim dtmLastEntryDate 'Holds the date of the last message
Dim intRSSLoopCounter 'Loop counter

'This is the number of posts to include in the feed
Const intMaxResults = 10
'This is the Time to Live value so that RSS News Readers know how often to update their feed,
'if this is set to low you may consume to much bandwidth, to high and the RSS News Reader may not be updated fast enough
Const intTimeToLive = 30
'Set this to the time zone you require
strTimeZone = "+0000" 'See
http://www.sendmail.org/rfc/0822.html#5 - http://www.sendmail.org/rfc/0822.html#5 for list of time zones
'Initliase variables
intForumID = 0
strRssChannelTitle = strMainForumName

'Set the content type for feed
Response.ContentType = "application/xml"
 

'Read in the forum ID
If isNumeric(Request.QueryString("FID")) Then intForumID = CInt(Request.QueryString("FID"))
 
'Get the last x posts from the database
strSQL = "" & _
"SELECT "
If strDatabaseType = "SQLServer" OR strDatabaseType = "Access" Then
 strSQL = strSQL & " TOP " & intMaxResults & " "
End If
strSQL = strSQL & _
"" & strDbTable & "Forum.Forum_name, " & strDbTable & "Topic.Topic_ID, " & strDbTable & "Topic.Subject, " & strDbTable & "Topic.Last_Thread_ID, " & strDbTable & "Thread.Message_date, " & strDbTable & "Author.Author_ID, " & strDbTable & "Author.Username, " & strDbTable & "Thread.Message  " & _
"FROM " & strDbTable & "Forum, " & strDbTable & "Topic, " & strDbTable & "Author, " & strDbTable & "Thread " & _
"WHERE " & strDbTable & "Forum.Forum_ID = " & strDbTable & "Topic.Forum_ID " & _
 "AND " & strDbTable & "Topic.Last_Thread_ID = " & strDbTable & "Thread.Thread_ID " & _
 "AND " & strDbTable & "Author.Author_ID = " & strDbTable & "Thread.Author_ID "
'If looking at a forum only, only get posts from tha forum
If intForumID <> 0 Then strSQL = strSQL & "AND " & strDbTable & "Topic.Forum_ID = " & intForumID & " "



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.08 - https://www.webwizforums.com
Copyright ©2001-2026 Web Wiz Ltd. - https://www.webwiz.net