karen987
03-06-2008, 08:30 AM
This is the code i have for an RSS feed which shows all the latest articles from a news weblog. The problem is one of the search engines that index's news is saying that i should add a time stamp, because the code below only shows the date, not the timestamp. This is probably the reason some of the articles get rejected with "date too old" or "date not found".
Can someone show me what to put where? There is more code in the 2 include files if you need to see it. I'm not html literate, so i'd appreciate some help. Thanks in advance.
<!--#include file="config.asp"-->
<!--#include file="inc_api.asp"-->
<% Dim SQL, RS, NID, TITLE, POSTED, NEWS_LISTING, I_RSS, SUMMARY, RSS_BUILD, TOP_X, X, MODEX, CID
MODEX = APO(Request.QueryString("mode"))
CID = APO(Request.QueryString("cid"))
TOP_X = Trim(Request.QueryString("top"))
IF IS_VALID_ID(CID) = False AND MODEX = "cate" THEN MODEX = ""
IF IS_VALID_ID(TOP_X) = False THEN
TOP_X = 25
ELSE
TOP_X = Cint(TOP_X)
END IF
RSS_BUILD = RSS_BUILD & "<?xml version=""1.0"" encoding=""iso-8859-1"" ?>" & vbcrlf
RSS_BUILD = RSS_BUILD & "<rss version=""2.0"">" & vbcrlf
RSS_BUILD = RSS_BUILD & " <channel>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <title>latest headlines</title>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <link>" & APPLICATION_URL & "</link>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <description>latest section news</description>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <generator>mag RSS</generator>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <language>en-us</language>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <lastBuildDate>" & RFC822(Now(),0) & "</lastBuildDate>" & vbcrlf
IF DB_TO_USE = 1 OR DB_TO_USE = 3 THEN ' MS Access
SELECT CASE Lcase(MODEX)
CASE "recent" ' Most recent
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "pop" ' Most accessed
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY fldVIEWS DESC"
CASE "all" ' All articles
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "highlighted"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) AND (fldHIGHLIGHT = 1) ORDER BY nm_tbl_news.ID DESC"
CASE "cate"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) AND (nm_tbl_news.ID IN (SELECT fldNEWS_ID FROM nm_tbl_news_cate WHERE fldCATE_ID = " & CID & ")) ORDER BY nm_tbl_news.ID DESC"
CASE ELSE ' Any other mode not listed above
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
END SELECT
ELSE
SELECT CASE Lcase(MODEX)
CASE "recent" ' Most recent
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "pop" ' Most accessed
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY fldVIEWS DESC"
CASE "all" ' All articles
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "highlighted"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) AND (fldHIGHLIGHT = 1) ORDER BY nm_tbl_news.ID DESC"
CASE "cate"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) AND (nm_tbl_news.ID IN (SELECT fldNEWS_ID FROM nm_tbl_news_cate WHERE fldCATE_ID = " & CID & ")) ORDER BY nm_tbl_news.ID DESC"
CASE ELSE ' Any other mode not listed above
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
END SELECT
END IF
X = 0
Call OPEN_DB()
Set RS = Server.CreateObject("ADODB.Recordset")
RS.LockType = 1
RS.CursorType = 0
RS.Open SQL, MyConn
WHILE NOT RS.EOF
X = X + 1
IF Cint(X) =< TOP_X THEN
NID = PREPARE_XML(RS("NID"))
TITLE = PREPARE_XML(RS("TITLE"))
POSTED = PREPARE_XML(RS("POSTED"))
SUMMARY = PREPARE_XML(RS("fldSUMMARY"))
RSS_BUILD = RSS_BUILD & "<item>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <title>" & PROCESS_SHORTCUTS_RSS(False, TITLE) & "</title>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <link>" & PREPARE_XML(APPLICATION_URL) & "mainpage.asp?ID=" & NID & "</link>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <pubDate>" & RFC822(POSTED,0) & "</pubDate>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <description>" & PROCESS_SHORTCUTS_RSS(False, SUMMARY) & "</description>" & vbcrlf
RSS_BUILD = RSS_BUILD & "</item>" & vbcrlf
END IF
RS.MoveNext
WEND
RS.Close
Set RS = Nothing
MyConn.Close
Set MyConn = Nothing
RSS_BUILD = RSS_BUILD & " </channel>" & vbcrlf
RSS_BUILD = RSS_BUILD & "</rss>" & vbcrlf
RSS_BUILD = RSS_BUILD & "<!-- Generated by mage -->" & vbcrlf
FUNCTION PROCESS_SHORTCUTS_RSS(blOPEN, TEXT)
Dim SQL, RS, strRETURNED_DATA, EOF_VAL, intNUM_COL, intNUM_ROW, intROW_COUNTER, strSIGN, strIMAGE
SQL = "SELECT fldSIGN, fldIMAGE FROM nm_tbl_library WHERE fldACTIVE = 1"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.LockType = 1
RS.CursorType = 0
RS.Open SQL, MyConn
IF NOT RS.EOF THEN
strRETURNED_DATA = RS.getrows
ELSE
EOF_VAL = True
END IF
RS.close
Set RS = Nothing
IF Not EOF_VAL = True Then
intNUM_COL=ubound(strRETURNED_DATA,1)
intNUM_ROW=ubound(strRETURNED_DATA,2)
FOR intROW_COUNTER = 0 TO intNUM_ROW
strSIGN = Trim(strRETURNED_DATA(0,intROW_COUNTER))
strIMAGE = Trim(strRETURNED_DATA(1,intROW_COUNTER))
TEXT = Replace(TEXT, strSIGN, "")
NEXT
END IF
PROCESS_SHORTCUTS_RSS = TEXT
END FUNCTION
With Response
.Buffer = True
.ContentType = "text/xml"
.write(RSS_BUILD)
End With
%>
Can someone show me what to put where? There is more code in the 2 include files if you need to see it. I'm not html literate, so i'd appreciate some help. Thanks in advance.
<!--#include file="config.asp"-->
<!--#include file="inc_api.asp"-->
<% Dim SQL, RS, NID, TITLE, POSTED, NEWS_LISTING, I_RSS, SUMMARY, RSS_BUILD, TOP_X, X, MODEX, CID
MODEX = APO(Request.QueryString("mode"))
CID = APO(Request.QueryString("cid"))
TOP_X = Trim(Request.QueryString("top"))
IF IS_VALID_ID(CID) = False AND MODEX = "cate" THEN MODEX = ""
IF IS_VALID_ID(TOP_X) = False THEN
TOP_X = 25
ELSE
TOP_X = Cint(TOP_X)
END IF
RSS_BUILD = RSS_BUILD & "<?xml version=""1.0"" encoding=""iso-8859-1"" ?>" & vbcrlf
RSS_BUILD = RSS_BUILD & "<rss version=""2.0"">" & vbcrlf
RSS_BUILD = RSS_BUILD & " <channel>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <title>latest headlines</title>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <link>" & APPLICATION_URL & "</link>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <description>latest section news</description>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <generator>mag RSS</generator>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <language>en-us</language>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <lastBuildDate>" & RFC822(Now(),0) & "</lastBuildDate>" & vbcrlf
IF DB_TO_USE = 1 OR DB_TO_USE = 3 THEN ' MS Access
SELECT CASE Lcase(MODEX)
CASE "recent" ' Most recent
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "pop" ' Most accessed
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY fldVIEWS DESC"
CASE "all" ' All articles
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "highlighted"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) AND (fldHIGHLIGHT = 1) ORDER BY nm_tbl_news.ID DESC"
CASE "cate"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) AND (nm_tbl_news.ID IN (SELECT fldNEWS_ID FROM nm_tbl_news_cate WHERE fldCATE_ID = " & CID & ")) ORDER BY nm_tbl_news.ID DESC"
CASE ELSE ' Any other mode not listed above
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (Now() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
END SELECT
ELSE
SELECT CASE Lcase(MODEX)
CASE "recent" ' Most recent
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "pop" ' Most accessed
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY fldVIEWS DESC"
CASE "all" ' All articles
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
CASE "highlighted"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) AND (fldHIGHLIGHT = 1) ORDER BY nm_tbl_news.ID DESC"
CASE "cate"
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) AND (nm_tbl_news.ID IN (SELECT fldNEWS_ID FROM nm_tbl_news_cate WHERE fldCATE_ID = " & CID & ")) ORDER BY nm_tbl_news.ID DESC"
CASE ELSE ' Any other mode not listed above
SQL = "SELECT nm_tbl_news.ID AS NID, nm_tbl_news.fldTITLE AS TITLE, nm_tbl_news.fldPOSTED AS POSTED, fldSUMMARY FROM nm_tbl_news, nm_tbl_agent WHERE (nm_tbl_agent.ID = nm_tbl_news.fldAID) AND (nm_tbl_news.fldACTIVE=1) AND (GetDate() BETWEEN fldPOSTED AND fldEXPIRES) ORDER BY nm_tbl_news.ID DESC"
END SELECT
END IF
X = 0
Call OPEN_DB()
Set RS = Server.CreateObject("ADODB.Recordset")
RS.LockType = 1
RS.CursorType = 0
RS.Open SQL, MyConn
WHILE NOT RS.EOF
X = X + 1
IF Cint(X) =< TOP_X THEN
NID = PREPARE_XML(RS("NID"))
TITLE = PREPARE_XML(RS("TITLE"))
POSTED = PREPARE_XML(RS("POSTED"))
SUMMARY = PREPARE_XML(RS("fldSUMMARY"))
RSS_BUILD = RSS_BUILD & "<item>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <title>" & PROCESS_SHORTCUTS_RSS(False, TITLE) & "</title>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <link>" & PREPARE_XML(APPLICATION_URL) & "mainpage.asp?ID=" & NID & "</link>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <pubDate>" & RFC822(POSTED,0) & "</pubDate>" & vbcrlf
RSS_BUILD = RSS_BUILD & " <description>" & PROCESS_SHORTCUTS_RSS(False, SUMMARY) & "</description>" & vbcrlf
RSS_BUILD = RSS_BUILD & "</item>" & vbcrlf
END IF
RS.MoveNext
WEND
RS.Close
Set RS = Nothing
MyConn.Close
Set MyConn = Nothing
RSS_BUILD = RSS_BUILD & " </channel>" & vbcrlf
RSS_BUILD = RSS_BUILD & "</rss>" & vbcrlf
RSS_BUILD = RSS_BUILD & "<!-- Generated by mage -->" & vbcrlf
FUNCTION PROCESS_SHORTCUTS_RSS(blOPEN, TEXT)
Dim SQL, RS, strRETURNED_DATA, EOF_VAL, intNUM_COL, intNUM_ROW, intROW_COUNTER, strSIGN, strIMAGE
SQL = "SELECT fldSIGN, fldIMAGE FROM nm_tbl_library WHERE fldACTIVE = 1"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.LockType = 1
RS.CursorType = 0
RS.Open SQL, MyConn
IF NOT RS.EOF THEN
strRETURNED_DATA = RS.getrows
ELSE
EOF_VAL = True
END IF
RS.close
Set RS = Nothing
IF Not EOF_VAL = True Then
intNUM_COL=ubound(strRETURNED_DATA,1)
intNUM_ROW=ubound(strRETURNED_DATA,2)
FOR intROW_COUNTER = 0 TO intNUM_ROW
strSIGN = Trim(strRETURNED_DATA(0,intROW_COUNTER))
strIMAGE = Trim(strRETURNED_DATA(1,intROW_COUNTER))
TEXT = Replace(TEXT, strSIGN, "")
NEXT
END IF
PROCESS_SHORTCUTS_RSS = TEXT
END FUNCTION
With Response
.Buffer = True
.ContentType = "text/xml"
.write(RSS_BUILD)
End With
%>