

Use the quick search field below to find Catholic Answers radio programs or files on the topics of interest to you!
<%
'/////////////////////////////////////////////////////////////////////////////////
'// Initialisation
' Declare variables.
dim target, firstRow, rowCount
' set timeout
Server.ScriptTimeout = 360 ' 6 minutes ought to do it....
' Get the request parameters.
target = Request("target") ' The search request
firstRow = Request("fr") ' First row of results to display
rowCount = Request("rc") ' Record Count - number of rows to show
' Set default values if none found
if firstRow = "" or not IsNumeric(firstRow) Then
firstRow = 1
else
firstRow = CInt(firstRow)
End If
if rowCount = "" or not IsNumeric(rowCount) Then
rowCount = 10
else
rowCount = CInt(rowCount)
End If
Dim ScriptName, ServerName
ScriptName = Request.ServerVariables("SCRIPT_NAME")
ServerName = Request.ServerVariables("SERVER_NAME")
' Construct base URL for navigation buttons
dim URL
URL = ScriptName & "?searchType=file&target=" & Server.URLEncode(target)
URL = URL & "&rc=" & Server.URLEncode(rowCount)
'/////////////////////////////////////////////////////////////////////////////////
'// The search form
%>
<%
If Request("searchType") = "file" Then
DoSearch target
ElseIf Request("searchType") = "radio" Then
DoRadioSearch target
End If
Sub DoRadioSearch(target)
%>
<%
Dim WebBrowser
WebBrowser = Request.ServerVariables("HTTP_USER_AGENT")
If InStr(WebBrowser, "MSIE") Then
WebBrowser = 1
else
WebBrowser = 0
end if
Dim words
'words = split(Request("target"), " ")
Dim sql
sql = "SELECT showid, date, title, filename, show_type FROM CALive l " &_
" WHERE l.description LIKE '%" & request("target") & "%' OR l.title LIKE '%" & request("target") & "%' " &_
" AND active = 1 " & _
"ORDER BY date DESC "
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorType = adOpenStatic
Call objRS.Open( sql, objDB, , , adCmdTable )
Dim records
records = objRS.RecordCount ' for some reason this doesn't want to work...
%>
<%
If Not objRS.EOF Then
%>
| Date |
Title |
|
<%
while not objRS.EOF
Dim filepath, srver, path, shortname
If objRS("show_type") = 1 Then
shortname = "calive"
Else
shortname = "doctor"
End If
srver = "radio.catholic.com"
path = "/" & shortname & "/" & Year(objRS("date"))
filepath = path & "/" & objRS("filename")
Dim url
If WebBrowser = 1 Then
' Microsoft IE browser
url = "[Listen] - [Download]"
else
' Netscape or other browsers
url = "[Listen] - [Download]"
end if
Dim dte, mth, dy, yr
dte = objRS("date")
mth = month(dte)
dy = day(dte)
yr = year(dte)
If mth < 10 Then
mth = "0" & mth
End If
If dy < 10 Then
dy = "0" & dy
End If
dte = mth & "/" & dy & "/" & yr
%>
| <%=dte%> |
<%=objRS("title")%> |
<%=url%> |
<%
objRS.movenext
wend
Else
%>
| No matching results found |
<%
End If
%>
<%
End Sub
'/////////////////////////////////////////////////////////////////////////////////
'// Perform the search
sub DoSearch(target)
on error resume next
if target <> "" then
dim strQuery
' strQuery = "$contents " & target ' for free text search
strQuery = "(#filename *.*) AND " &_
"(NOT #vpath *\_vti*) AND (NOT #vpath *\cgi-bin*) AND " &_
"(NOT #vpath *\IISOrigBackup*) AND (NOT #vpath *\scripts*) AND " &_
"(NOT #vpath *\_private*) AND " &_
"(" & target & ")"
' Create the Index Server query object, setting the columns, the sort to
' descending, the max records to 300, and the query string to the given
' target. Note that the query string specifies, with NOT and the
' #vpath operators, that any files in the *\_vti path, should be excluded.
' (_vti* directories contain FrontPage Extension files, and we don't want
' users browsing them.)
dim ixQuery ' Index Server query object.
set ixQuery = Server.CreateObject("ixsso.Query")
if (Err.description <> "") Then
Response.Write ("Query object Error: " & Err.description & ". " & vbCRLF)
Exit sub
end if
ixQuery.Columns = "doctitle, vpath, filename, size, write, characterization, rank"
ixQuery.SortBy = "rank[d], doctitle"
ixQuery.MaxRecords = 300
ixQuery.Query = strQuery
ixQuery.Catalog = "Catholic" ' Specify you catalog here if it's not the default
' Create a search utility object to allow us to specify the search type as 'deep',
' meaning it will search recursively down through the directories
dim util
set util = Server.CreateObject("ixsso.Util")
util.AddScopeToQuery ixQuery, Server.MapPath("/"), "deep"
if (Err.description <> "") Then
Response.Write ("Search Utility Error: " & Err.description & ". " & vbCRLF)
Exit sub
end if
' Run the query (i.e. create the recordset).
dim queryRS ' Query recordset.
set queryRS = ixQuery.CreateRecordSet("nonsequential")
' Check the query result. If it timed out or return no records, then show
' an appropriate message. Otherwise, show the hits.
if (Err.description <> "") Then
Response.Write ("Search Recordset Error: " & Err.description & ". " & vbCRLF)
Exit sub
Else
if queryRS is Nothing Then
Response.Write ("Query returned no matches. " & vbCRLF)
elseif (ixQuery.QueryTimedOut) then
Response.Write ("Error: " & timedOut_Text & ". " & vbCRLF)
elseif (queryRS.EOF or queryRS.BOF or queryRS.RecordCount <= 0) then
Response.Write ("No matches found. " & vbCRLF)
else
queryRS.PageSize = rowCount
call showHits(queryRS)
if (Err.number <> 0) Then
Response.Write ("Record Display Error: " & Err.description & ". " & vbCRLF)
End If
end if
End If
' Clean up
queryRS.close
set queryRS = nothing
set ixQuery = nothing
set util = nothing
End if
end Sub
' showHits(): Displays the query hits from the query recordset.
'
sub showHits(queryRS)
dim recordNumber ' record number
dim docTitle ' document title
dim endRow ' last row being displayed
dim prevRow ' row to display for "prev" option
dim nextRow ' row to display for "next" option
dim lastRow ' row to display for "last" option
dim remainder ' remainder (used to determine if last page is short)
dim recordCount ' numner of records returned
recordCount = queryRS.RecordCount
if firstRow > recordCount Then firstRow = 1
endRow = firstRow + RowCount-1 ' Last row on page to show
if endRow > recordCount Then endRow = recordCount
prevRow = firstRow - RowCount ' Start of previous page's rows
if PrevRow < 1 Then PrevRow = 1
nextRow = endRow + 1 ' Start of next pages rows. May be > CommentCount
remainder = recordCount mod RowCount
if remainder = 0 Then
lastRow = recordCount - RowCount + 1
else
lastRow = recordCount - remainder + 1
End If
if lastRow < 1 Then lastRow = 1 ' Start of last pages rows
' Go to the top of the record set, then move forward to the record that
' corresponds to the first row.
queryRS.MoveFirst()
if (firstRow > 1) then
queryRS.Move(CInt(firstRow) - 1)
end if
' Show the summary info.: # of records found and range showing.
%>
| Found: <%=queryRS.RecordCount%> Showing: <%=firstRow%> - <%=endRow%> |
<% if firstRow <> "1" Then %>
">First |
<% Else %>
First |
<% End If %>
<% if firstRow <> "1" Then %>
">Prev |
<% Else %>
Prev |
<% End If %>
<% if firstRow + RowCount <= recordCount Then %>
">Next |
<% Else %>
Next |
<% End If %>
<% if firstRow + RowCount <= recordCount Then %>
">Last
<% Else %>
Last
<% End If %>
|
|
| |
<%
' Show the records.
recordNumber = firstRow
do while ((not queryRS.EOF) and (recordNumber <= endRow))
' Get the document title. If it's blank, set it to "Untitled".
docTitle = queryRS("doctitle")
if docTitle = "" then docTitle = "Untitled"
' Show the record #, link to the document, URL, and characterization.
Response.Write ""
Response.Write "| " & recordNumber & ". | "
Response.Write ""
Response.Write "" & docTitle & " "
Response.Write "URL: http://" & ServerName & queryRS("vpath") & " "
Response.Write Server.HTMLEncode(queryRS("characterization"))
Response.Write " | "
Response.Write " "
recordNumber = recordNumber + 1
queryRS.MoveNext()
loop
' Display the navigation links.
%>
| |
|
<% if firstRow <> "1" Then %>
">First |
<% Else %>
First |
<% End If %>
<% if firstRow <> "1" Then %>
">Prev |
<% Else %>
Prev |
<% End If %>
<% if firstRow + RowCount <= recordCount Then %>
">Next |
<% Else %>
Next |
<% End If %>
<% if firstRow + RowCount <= recordCount Then %>
">Last
<% Else %>
Last
<% End If %>
|
<% end sub %>
|