%
' ********** INSTRUCTIONS FOR QUICK CUSTOMIZATION **********
'
' This form is set up for easy customization. It allows you to modify the
' page logo, the page background, the page title and simple query
' parameters by modifying a few files and form variables. The procedures
' to do this are explained below.
'
'
' *** Modifying the Form Logo:
' The logo for the form is named is2logo.gif. To change the page logo, simply
' name your logo is2logo.gif and place in the same directory as this form. If
' your logo is not a GIF file, or you don't want to copy it, change the following
' line so that the logo variable contains the URL to your logo.
FormLogo = "is2logo.gif"
'
' *** Modifying the Form's background pattern.
' You can use either a background pattern or a background color for your
' form. If you want to use a background pattern, store the file with the name
' is2bkgnd.gif in the same directory as this file and remove the remark character
' the single quote character) from the line below. Then put the remark character on
' the second line below.
'
' If you want to use a different background color than white, simply edit the
' bgcolor line below, replacing white with your color choice.
' FormBG = "background = " & chr(34) & "is2bkgnd.gif" & chr(34)
FormBG = "bgcolor = " & chr(34) & "#FFFFFF" & chr(34)
' *** Modifying the Form's Title Text.
' The Form's title text is set on the following line.
%>
Sample ASP Search Form
<%
'
' *** Modifying the Form's Search Scope.
'
' The form will search from the root of your web server's namespace and below
' (deep from "/" ). To search a subset of your server, for example, maybe just
' a PressReleases directory, modify the scope variable below to list the
' virtual path to search. The search will start at the directory you specify
' and include all sub-directories.
FormScope = "/"
'
' *** Modifying the Number of Returned Query Results.
'
' You can set the number of query results returned on a single page
' using the variable below.
PageSize = 10
'
' You can set the total number of query results returned using the
' variable below.
MaxResults = 300
'
' *** Setting the Locale.
'
' The following line sets the locale used for queries. In most cases, this
' should match the locale of the server. You can set the locale below.
SiteLocale = "EN-US"
'
' *** Enable saving active searches in session variables
'
' The following line enables using session state to save multi-page queries
' and avoid re-executing them when the user presses the Next Page button.
' This should be set FALSE if sessions are disabled using AspAllowSessionState.
UseSessions = TRUE
' ********** END QUICK CUSTOMIZATION SECTIONS ***********
%>
<%
' Set Initial Conditions
NewQuery = FALSE
UseSavedQuery = FALSE
SearchString = ""
QueryForm = Request.ServerVariables("PATH_INFO")
' Did the user press a SUBMIT button to execute the form? If so get the form variables.
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
SearchString = Request.Form("SearchString")
Advanced = Request.Form("Advanced")
' NOTE: this will be true only if the button is actually pushed.
if Request.Form("Action") = "Go" then
NewQuery = TRUE
RankBase=1000
NextPageNumber = -1
end if
end if
if Request.ServerVariables("REQUEST_METHOD") = "GET" then
SearchString = Request.QueryString("qu")
Advanced = Request.QueryString("Advanced")
FormScope = Request.QueryString("sc")
RankBase = Request.QueryString("RankBase")
if Request.QueryString("pg") <> "" then
NextPageNumber = Request.QueryString("pg")
UseSavedQuery = UseSessions
NewQuery = not UseSessions
else
NewQuery = SearchString <> ""
NextPageNumber = -1
end if
end if
%>
>
Sample ASP Search Form
<%
if NewQuery then
if UseSessions then
set Session("Query") = nothing
set Session("Recordset") = nothing
end if
NextRecordNumber = 1
' Remove any leading and ending quotes from SearchString
SrchStrLen = len(SearchString)
if left(SearchString, 1) = chr(34) then
SrchStrLen = SrchStrLen-1
SearchString = right(SearchString, SrchStrLen)
end if
if right(SearchString, 1) = chr(34) then
SrchStrLen = SrchStrLen-1
SearchString = left(SearchString, SrchStrLen)
end if
if Advanced<> "on" then
CompSearch = "{freetext} " & SearchString & "{/freetext}"
else
CompSearch = SearchString
end if
set Q = Server.CreateObject("ixsso.Query")
set Util = Server.CreateObject("ixsso.Util")
Q.Catalog = "web"
Q.Query = CompSearch
Q.SortBy = "rank[d]"
Q.Columns = "DocTitle, vpath, filename, size, write, characterization, rank"
if MaxResults <> -1 then
Q.MaxRecords = MaxResults
end if
if FormScope <> "\" then
Util.AddScopeToQuery Q, FormScope, "deep"
end if
if SiteLocale<>"" then
Q.LocaleID = Util.ISOToLocaleID(SiteLocale)
end if
set Util = nothing
set RS = Q.CreateRecordSet("nonsequential")
RS.PageSize = PageSize
RS.CacheSize = PageSize
ActiveQuery = TRUE
elseif UseSavedQuery then
if IsObject( Session("Query") ) And IsObject( Session("RecordSet") ) then
set Q = Session("Query")
set RS = Session("RecordSet")
ActiveQuery = TRUE
else
Response.Write "ERROR - No saved query"
end if
end if
if ActiveQuery then
if RS.RecordCount <> -1 and NextPageNumber <> -1 then
RS.AbsolutePage = NextPageNumber
NextRecordNumber = RS.AbsolutePosition
end if
if not RS.EOF then
%>
<%
LastRecordOnPage = NextRecordNumber + RS.PageSize - 1
CurrentPage = RS.AbsolutePage
if RS.RecordCount <> -1 AND RS.RecordCount < LastRecordOnPage then
LastRecordOnPage = RS.RecordCount
end if
Response.Write "Documents " & NextRecordNumber & " to " & LastRecordOnPage
if RS.RecordCount <> -1 then
Response.Write " of " & RS.RecordCount
end if
Response.Write " matching the query " & chr(34) & ""
Response.Write SearchString & "" & chr(34) & ".
"
%>
<% if Not RS.EOF and NextRecordNumber <= LastRecordOnPage then%>
<% end if %>
<% Do While Not RS.EOF and NextRecordNumber <= LastRecordOnPage
' This is the detail portion for Title, Abstract, URL, Size, and
' Modification Date.
' If there is a title, display it, otherwise display the filename.
%>
<%
' Graphically indicate rank of document with list of stars (*'s).
if NextRecordNumber = 1 then
RankBase=RS("rank")
end if
if RankBase>1000 then
RankBase=1000
elseif RankBase<1 then
RankBase=1
end if
NormRank = RS("rank")/RankBase
if NormRank > 0.80 then
stars = "rankbtn5.gif"
elseif NormRank > 0.60 then
stars = "rankbtn4.gif"
elseif NormRank > 0.40 then
stars = "rankbtn3.gif"
elseif NormRank >.20 then
stars = "rankbtn2.gif"
else
stars = "rankbtn1.gif"
end if
%>
<%
else ' NOT RS.EOF
if NextRecordNumber = 1 then
Response.Write "No documents matched the query
"
else
Response.Write "No more documents in the query
"
end if
end if ' NOT RS.EOF
if NOT Q.OutOfDate then
' If the index is current, display the fact %>
The index is up to date.
<%end if
if Q.QueryIncomplete then
' If the query was not executed because it needed to enumerate to
' resolve the query instead of using the index, but AllowEnumeration
' was FALSE, let the user know
%>
The query is too expensive to complete.
<%end if
if Q.QueryTimedOut then
' If the query took too long to execute (for example, if too much work
' was required to resolve the query), let the user know %>
The query took too long to complete.
<%end if%>
<%
' This is the "previous" button.
' This retrieves the previous page of documents for the query.
SaveQuery = FALSE
if CurrentPage > 1 and RS.RecordCount <> -1 then %>
<%SaveQuery = UseSessions%>
<%end if%>
<%
' This is the "next" button for unsorted queries.
' This retrieves the next page of documents for the query.
if Not RS.EOF then%>
<%SaveQuery = UseSessions%>
<%end if%>
<% ' Display the page number
if RS.PageCount <> 0 then
Response.Write "Page " & CurrentPage
if RS.PageCount <> -1 then
Response.Write " of " & RS.PageCount
end if
end if
%>
<%
' If either of the previous or back buttons were displayed, save the query
' and the recordset in session variables.
if SaveQuery then
set Session("Query") = Q
set Session("RecordSet") = RS
else
RS.close
Set RS = Nothing
Set Q = Nothing
if UseSessions then
set Session("Query") = Nothing
set Session("RecordSet") = Nothing
end if
end if
%>
<% end if %>