| HiLiteR 1.1 » "search.asp" | Report a Bug | Recommend a feature | Ask a question | Submit a site |
<%
bDontCount = False
sPageTitle = "2eNetWorX - Search"
bAdminOnly = False
lSubjectID = 0
sTitleBar = "/dev :: <a href=""/dev/index.asp"">home</a> :: search"
%>
<!--#include virtual="/dev/_header.asp"-->
<br>
<p class="smallheader">
2eNetWorX/dev :: Search
</p>
<%
sub ShowSearchForm
%>
<form action="search.asp?cmdSearch=1" method="post">
<table border=0 cellpadding=2 cellspacing=2>
<tr><td>
Enter your search words seperated by spaces.
</td></tr>
<tr><td>
<input type="text" name="txtSearch" value="<%=sSearch%>" size="50" maxlength="250" class="tbflat">
<input type="submit" name="cmdSearch" value="Search" class="cmdflat">
</td></tr>
</tr><td>
<table border=0>
<tr><td>
Search type:
</td><td>
<%
dim aTypes(3)
aTypes(1) = "All Words"
aTypes(2) = "Any Words"
aTypes(3) = "Exact Phrase"
response.write "<select name=""cboType"" class=""tbflat"">"
for iType = 1 to 3
response.write "<option value=""" & iType & """"
if iSearchType = iType then
response.write " selected"
end if
response.write ">" & aTypes(iType) & "</option>"
next
%>
</select>
</td></tr>
<tr><td>
Search in
</td><td>
<select name="cboProject" class="tbflat">
<%
dim aProjects(11)
aProjects(0) = "All Projects"
aProjects(1) = "2eNetWorX/dev Site"
aProjects(2) = "TableEditoR"
aProjects(3) = "MiniSurvey"
aProjects(4) = "StatCounteX"
aProjects(5) = "PowerTool"
aProjects(6) = "TransWindow"
aProjects(7) = "Trans-It!"
aProjects(8) = "Simple Chat Server/Client"
aProjects(9) = "Flash LCD Scroller"
aProjects(10) = "GetFile and GetFolder"
aProjects(11) = "HiLiteR"
for iType = 0 to 11
response.write "<option value=""" & iType & """"
if iProject = iType then
response.write " selected"
end if
response.write ">" & aProjects(iType) & "</option>"
next
%>
</select>
</td><tr>
<tr><td>
<a href="/dev/live/hiliter/search.asp" target="_blank">Sneak the source code</a>
</td></tr>
</table>
</td></tr>
</table>
</form>
<%
end sub
sub ShowResults
ShowProjects
ShowDocuments
ShowSamples
ShowFeedbacks
end sub
sub ShowHeader(sHeaderText)
response.write "<br>"
response.write "<table border=""0"" cellpadding=""0"" cellspacing=""2"" width=""100%"">"
response.write "<tr><td class=""smallerheader"" bgcolor=""#fdf5e6"">" & sHeaderText & "</td></tr>"
end sub
sub ShowFooter
response.write "</table>"
end sub
sub ShowItem(sURL, sTitle, sDescription)
response.write "<tr><td class=""smallertext"">» <a href=""" & sURL & """>" & sTitle & "</a></td></tr>"
end sub
function ConstructWhere(sFields)
select case iSearchType
case 1 'All words
sWhere = ConstructWhereByFields (sFields, " AND ")
case 2 'Any words
sWhere = ConstructWhereByFields (sFields, " OR ")
case 3 'Exact Phrase
aFields = split(sFields, ",")
for iField = 0 to ubound(aFields)
if bFieldBegin = true then
sExpr = " OR "
end if
sWhere = sWhere & sExpr & aFields(iField) & " LIKE '%" & sSearch & "%'"
bFieldBegin = True
next
end select
sWhere = "(" & sWhere & ")"
if (iProject > 0 and bNoProjectID = false) then
if sTableDotField <> "" then
sWhere = sWhere & " AND (" & sTableDotField & " = " & iProject & ")"
else
sWhere = sWhere & " AND (ProjectID = " & iProject & ")"
end if
end if
ConstructWhere = sWhere
end function
function ConstructWhereByFields(sFields, sWordExpr)
aFields = split(sFields, ",")
aWords = split(sSearch, " ")
bFieldBegin = false
for iField = 0 to ubound(aFields)
if bFieldBegin = true then
sExpr = " OR "
end if
bWordBegin = false
for iWord = 0 to ubound(aWords)
if bWordBegin = false then
sWhere = sWhere & sExpr & "(" & aFields(iField) & " LIKE '%" & aWords(iWord) & "%'"
else
sWhere = sWhere & sWordExpr & aFields(iField) & " LIKE '%" & aWords(iWord) & "%'"
end if
bWordBegin = True
next
bFieldBegin = True
sWhere = sWhere & ")"
next
ConstructWhereByFields = sWhere
end function
sub ShowProjects
OpenDB sConnProjects
sFields = "Name,Description"
sWhere = ConstructWhere (sFields)
sSQL = "SELECT * FROM Projects WHERE " & sWhere
rs.Open sSQL,,,adCmdTable
if not (rs.eof or rs.bof) then
ShowHeader " :: project descriptives"
response.write "<tr><td class=""smallertext"">"
do while not rs.eof
sURL = "/dev/projects/" & rs("filename")
sTitle = rs("name")
response.write "» <a href=""" & sURL & """>" & sTitle & "</a> "
rs.movenext
iResultCount = iResultCount + 1
loop
response.write "</td><tr>"
ShowFooter
end if
rs.close
conn.close
end sub
sub ShowDocuments
OpenDB sConnProjects
sFields = "Documents.Name, Body"
sTableDotField = "Projects.ProjectID"
sWhere = ConstructWhere (sFields)
sTableDotField = ""
sSQL = "SELECT * FROM Documents LEFT JOIN Projects ON (Documents.ProjectID = Projects.ProjectID) WHERE " & sWhere
rs.Open sSQL,,,adCmdTable
if not (rs.eof or rs.bof) then
ShowHeader " :: official documentory"
response.write "<tr><td class=""smallertext"">"
do while not rs.eof
sURL = "/dev/projects/read.asp?pid=" & rs("Documents.ProjectID") & "&docid=" & rs("DocumentID")
sTitle = rs("Projects.Name") & " :: " & rs("Documents.Name")
ShowItem sURL, sTitle, sDescription
iResultCount = iResultCount + 1
rs.movenext
loop
response.write "</td><tr>"
ShowFooter
end if
rs.close
conn.close
end sub
sub ShowSamples
OpenDB sConnSamples
sFields = "Title,Description"
bNoProjectID = True
sWhere = ConstructWhere (sFields)
bNoProjectID = False
sSQL = "SELECT * FROM Samples WHERE " & sWhere & " AND Active=True"
rs.Open sSQL,,,adCmdTable
if not (rs.eof or rs.bof) then
ShowHeader " :: samples"
response.write "<tr><td class=""smallertext"">"
do while not rs.eof
sURL = "/dev/samples/" & rs("filename")
sTitle = rs("Title")
response.write "» <a href=""" & sURL & """>" & sTitle & "</a> "
iResultCount = iResultCount + 1
rs.movenext
loop
response.write "</td><tr>"
ShowFooter
end if
rs.close
conn.close
end sub
sub ShowFeedbacks
ShowBugs
ShowRecommends
ShowQuestions
end sub
sub ShowBugs
OpenDB sConnFeedback
sFields = "Title,Description"
sWhere = ConstructWhere (sFields)
sSQL = "SELECT * FROM Bugs WHERE " & sWhere & " ORDER BY SubmitDate DESC"
rs.Open sSQL,,,adCmdTable
if not (rs.eof or rs.bof) then
ShowHeader " :: bugs"
response.write "<tr><td class=""smallertext"">"
do while not rs.eof
sURL = "/dev/projects/bugs.asp?pid=" & rs("ProjectID") & "#" & rs("BugID")
sTitle = rs("Title")
ShowItem sURL, sTitle, sDescription
iResultCount = iResultCount + 1
rs.movenext
loop
response.write "</td><tr>"
ShowFooter
end if
rs.close
conn.close
end sub
sub ShowRecommends
OpenDB sConnFeedback
sFields = "Title,Description"
sWhere = ConstructWhere (sFields)
sSQL = "SELECT * FROM Recommends WHERE " & sWhere & " ORDER BY RecDate DESC"
rs.Open sSQL,,,adCmdTable
if not (rs.eof or rs.bof) then
ShowHeader " :: recommended features"
response.write "<tr><td class=""smallertext"">"
do while not rs.eof
sURL = "/dev/projects/recommends.asp?pid=" & rs("ProjectID") & "#" & rs("RecID")
sTitle = rs("Title")
ShowItem sURL, sTitle, sDescription
iResultCount = iResultCount + 1
rs.movenext
loop
response.write "</td><tr>"
ShowFooter
end if
rs.close
conn.close
end sub
sub ShowQuestions
OpenDB sConnFeedback
sFields = "Title,Description"
sWhere = ConstructWhere (sFields)
sSQL = "SELECT * FROM Questions WHERE " & sWhere & " ORDER BY AskedDate DESC"
rs.Open sSQL,,,adCmdTable
if not (rs.eof or rs.bof) then
ShowHeader " :: questions & answers"
response.write "<tr><td class=""smallertext"">"
do while not rs.eof
sURL = "/dev/projects/answers.asp?pid=" & rs("ProjectID") & "&qid=" & rs("QuestionID")
sTitle = rs("Title")
ShowItem sURL, sTitle, sDescription
iResultCount = iResultCount + 1
rs.movenext
loop
response.write "</td><tr>"
ShowFooter
end if
rs.close
conn.close
end sub
sub ShowSummary
if iResultCount > 0 then
response.write "<table border=""0"" width=""100%""><tr><td bgcolor=""#fdf5e6"">" & _
"Total <strong>" & iResultCount & "</strong> results found." & _
"</td></tr></table>"
else
response.write "<table border=""0"" width=""100%""><tr><td bgcolor=""#fdf5e6"">" & _
"Nothing found ;)" & _
"</td></tr></table>"
end if
end sub
sub LogSearch
OpenDB sConnSearch
sSQL = "SELECT * FROM Searches WHERE SearchID = -1"
rs.Open sSQL,,, adCmdTable
rs.AddNew
rs("SearchQuery") = sSearch
rs("Type") = iSearchType
rs("ProjectID") = iProject
rs("Date") = Date
rs("Time") = Time
rs("ResultCount") = iResultCount
rs("UserName") = session("devUserName")
rs.Update
rs.close
conn.close
end sub
function CheckString(sText)
sText = replace(sText, "'", "")
sText = replace(sText, """", "")
sText = replace(sText, "[", "")
sText = replace(sText, "]", "")
sText = replace(sText, "%", "")
CheckString = sText
end function
sub InitSearch
sSearch = CheckString(request("txtSearch"))
iSearchType = CLng(request("cboType"))
iProject = CLng(request("cboProject"))
if iSearchType = 0 then iSearchType = 1
end sub
dim sSearch
dim iSearchType
dim iProject
dim iResultCount
dim sTableDotField
dim bNoProjectID
InitSearch
if request("cmdSearch") = "" OR len(sSearch) = 0 then
ShowSearchForm
else
ShowResults
ShowSummary
ShowSearchForm
LogSearch
end if
set rs = nothing
set conn = nothing
%>
<br><br>
<!--#include virtual="/dev/_footer.asp"-->
Processing time: 6.88 seconds.
Visit 2eNetWorX for more OpenSource VB and ASP Projects.