codice:
<% Sub ricerca(testo,page)
if page=0 then page=1
set result_table=create_result_table(testo)
if not result_table.eof then
result_table.pagesize=10
result_table.AbsolutePage=page
response.write "<h2> <a name=""Risultati"" title=""Risultati""></a>RISULTATI RICERCA</h2>"
for lcount=1 to result_table.pagesize
response.write "<div class=""riga" & iif(lcount mod 2=0,2,1) &""">" & vbcrlf
response.write "<h4>" & result_table("title") & "
</h4>" & vbcrlf
response.write "
" & result_table("content") & "</p>" & vbcrlf & "</div>" & vbcrlf
response.write "<div class=""nofloat""></div>"
result_table.movenext
if result_table.eof then exit for
next
response.write ("</div><div id=""navPagine"">")
if result_table.pagecount>1 then
response.write "["
if page>2 then response.write "[img][/img] |"
if page>1 then response.write "[img][/img] |"
if result_table.PageCount > 2 then
if page-2 < 1 then da_pag = 1 else da_pag = page-2
if page+2 > result_table.pagecount then fino_a_pag = result_table.pagecount else fino_a_pag = page+2
else
da_pag = 1
fino_a_pag = result_table.PageCount
end if
for i = da_pag to fino_a_pag
if i = page then
response.write i & " "
else
response.write "|" & i & " |"
end if
next
if page+1<result_table.pagecount then response.write "[img][/img] |"
if page+1<result_table.pagecount then response.write "[img][/img]"
response.write"] Pagina " & page & " di " & result_table.pagecount & ""
end if
else
response.write "<h2>Nessun Risultato</h2>" & vbcrlf
end if
end sub
%>
<%
function create_result_table(byval testo)
set rsMenu = server.CreateObject("ADODB.recordset")
set rsResult = server.CreateObject("ADODB.recordset")
set rsSearch = server.CreateObject("ADODB.recordset")
rsResult.fields.append "title",203,65536
rsResult.fields.append "content",203,65536
rsResult.fields.append "order",19,4
rsResult.fields.append "link",203,65536
rsResult.open
rsMenu.activeConnection= strConn
rsMenu.source ="SELECT * FROM configuration WHERE use_in_search=-1"
RsMenu.CursorType = 3
RsMenu.CursorLocation = 2
RsMenu.LockType = 1
rsMenu.open
testo=generate_pattern(testo)
do until rsMenu.eof
field_id=Primarykey_name(rsMenu("tabella"))
rsSearch.activeConnection= strConn
rsSearch.source="SELECT * FROM " & rsMenu("tabella") & iif(rsMenu("search_exclude")<>"", " WHERE " & rsMenu("search_exclude"),"")
RsSearch.CursorType = 3
RsSearch.CursorLocation = 2
RsSearch.LockType = 1
rsSearch.open
field_search testo,rsSearch,rsResult,rsMenu("search_fields"),rsMenu("idTable"),Field_id,rsMenu("search_format_title"),rsMenu("format_link")
rsSearch.close
rsMenu.movenext
loop
rsMenu.close
set rsMenu=nothing
rsResult.sort="order DESC"
set create_result_table=rsResult
end function
function generate_pattern(byval formatString)
init = InStr(1, formatString, """")
insert=""
Do until init=0
insert="|"
fine = InStr(init+1, formatString, """")
if generate_pattern<>"" then generate_pattern=generate_pattern & "|"
generate_pattern = generate_pattern & "("& Replace(Trim(Mid(formatString, init + 1, fine - init -1)), " ", "\s") & ")"
formatString = rtrim(Left(formatString, init - 1)) & " " & ltrim(Mid(formatString, fine + 1))
init = InStr(1, formatString, """")
Loop
formatstring=trim(formatstring)
if formatString<>"" then generate_pattern=generate_pattern & insert & "("& Replace(formatString, " ", ")|(") & ")"
end function
Sub field_search(testo,rsSearch,rsResult,fields_list,idtable,field_id,format_title,format_link)
Set RegEx = New RegExp
do until rsSearch.eof
for each ccampo in rsSearch.fields
if instr(1,fields_list,ccampo.name,1)<>0 then
temp_text=HTMLtoPlain(ccampo.value)
RegEx.Pattern = testo
RegEx.IgnoreCase = True
RegEx.Global = True
if regEx.test(temp_text)=true then
Set matches = RegEx.Execute(temp_text)
RetStr = matches(0).FirstIndex
If RetStr < 51 Then
lengh = InStr(200, temp_text, " ")-1
If lengh <= 0 Then lengh = len(temp_text)
text2use = Mid(temp_text, 1, lengh)
Else
start = InStr(RetStr-50, temp_text, " ")+1
lengh=instr(RetStr+150,temp_text," ")-start
If lengh<=0 Then lengh = len(temp_text)-start+1
text2use ="..." & Mid(temp_text, start, lengh)
End If
if len(text2use)<> len(temp_text) then text2use=text2use &"..."
Lastkey=""
For Each Key in matches
If lcase(lastkey) <> lcase(key.value) Then
lastkey=key.value
RegEx.Pattern = Key.Value
text2use = RegEx.Replace(text2use, "" & Key.Value & "")
End If
Next
rsResult.addnew
rsResult("title")=formatcontent(rsSearch,format_title)
rsResult("link")=formatcontent(rsSearch,format_link)
rsResult("content")=text2use
rsResult("order")=rsSearch("visited")
rsResult.update
set matches=nothing
exit for
end if
end if
next
rsSearch.movenext
loop
set RegEx= nothing
end sub
%>
Mentre nella pagina che genera i risultati c'è questa: