<% %> <% ' on error resume next dbConnection="" db_connect() call ReportError Set rs = server.CreateObject("ADODB.Recordset") Set rss = server.CreateObject("ADODB.Recordset") ' process reqest data, fill session variables if (Request.Form="" and Request.QueryString="") then For Each key in Session.Contents if left(key, len(strTableName)+1 ) = strTableName & "_" and _ InStr(Mid(key, len(strTableName)+2), "_" )<1 then Session.Contents.Remove(key) end if Next set strTableName_asearchnot = CreateObject("Scripting.Dictionary") set strTableName_asearchopt = CreateObject("Scripting.Dictionary") set strTableName_asearchfor = CreateObject("Scripting.Dictionary") set strTableName_asearchfortype = CreateObject("Scripting.Dictionary") set strTableName_asearchfor2 = CreateObject("Scripting.Dictionary") set session(strTableName & "_asearchnot")= strTableName_asearchnot set session(strTableName & "_asearchopt") = strTableName_asearchopt set session(strTableName & "_asearchfor") = strTableName_asearchfor set session(strTableName & "_asearchfor2") = strTableName_asearchfor2 set session(strTableName & "_asearchfortype") = strTableName_asearchfortype end if ' before process list event DoEvent "BeforeProcessList dbConnection" if REQUEST("a")="showall" then SESSION(strTableName & "_search")=0 elseif REQUEST("a")="search" then SESSION(strTableName & "_searchfield")=postvalue("SearchField") SESSION(strTableName & "_searchoption")=postvalue("SearchOption") SESSION(strTableName & "_searchfor")=postvalue("SearchFor") if postvalue("SearchFor")<>"" or postvalue("SearchOption")="Empty" then SESSION(strTableName & "_search")=1 else SESSION(strTableName & "_search")=0 end if SESSION(strTableName & "_pagenumber")=1 elseif REQUEST("a")="advsearch" then set strTableName_asearchnot = CreateObject("Scripting.Dictionary") set strTableName_asearchopt = CreateObject("Scripting.Dictionary") set strTableName_asearchfor = CreateObject("Scripting.Dictionary") set strTableName_asearchfor2 = CreateObject("Scripting.Dictionary") set strTableName_asearchfortype = CreateObject("Scripting.Dictionary") tosearch=0 asearchfield = postvalue("asearchfield[]") if not isarray(asearchfield) then dim t t=asearchfield redim asearchfield(1) asearchfield(0)=t end if SESSION(strTableName & "_asearchtype") = postvalue("type") if SESSION(strTableName & "_asearchtype")="" then SESSION(strTableName & "_asearchtype")="and" for field=0 to ubound(asearchfield) gfield=asearchfield(field) asopt=postvalue("asearchopt_" & GoodFieldName(asearchfield(field))) value1=postvalue("value_" & GoodFieldName(asearchfield(field))) if value1="" then value1=postvalue("value_" & GoodFieldName(asearchfield(field)) & "[]") ttype=postvalue("type_" & GoodFieldName(asearchfield(field))) value2=postvalue("value1_" & GoodFieldName(asearchfield(field))) if value2="" then value2=postvalue("value_1" & GoodFieldName(asearchfield(field)) & "[]") nnot=postvalue("not_" & GoodFieldName(asearchfield(field))) if not SafeIsEmpty(value1) or asopt="Empty" then tosearch=1 strTableName_asearchopt.Add gfield,asopt if not isArray(value1) then strTableName_asearchfor.Add gfield,value1 else strTableName_asearchfor.Add gfield,combinevalues(value1) end if strTableName_asearchfortype.Add gfield,ttype if not SafeIsEmpty(value2) then strTableName_asearchfor2.Add gfield,value2 strTableName_asearchnot.Add gfield,nnot end if next set SESSION(strTableName & "_asearchnot")= strTableName_asearchnot set SESSION(strTableName & "_asearchfortype")= strTableName_asearchfortype set SESSION(strTableName & "_asearchopt") = strTableName_asearchopt set SESSION(strTableName & "_asearchfor") = strTableName_asearchfor set SESSION(strTableName & "_asearchfor2") = strTableName_asearchfor2 if tosearch<>0 then SESSION(strTableName & "_search")=2 else SESSION(strTableName & "_search")=0 end if SESSION(strTableName & "_pagenumber")=1 end if if REQUEST("orderby")<> "" then SESSION(strTableName & "_orderby")=REQUEST("orderby") if REQUEST("pagesize")<>"" then SESSION(strTableName & "_pagesize")=REQUEST("pagesize") SESSION(strTableName & "_pagenumber")=1 end if if REQUEST("goto")<>"" then SESSION(strTableName & "_pagenumber")=REQUEST("goto") ' process reqest data - end includes="" if useAJAX then includes = includes & "" & vbCrLf includes = includes & "" & vbCrLf end if includes = includes & "" & vbCrLf includes = includes & "" & vbCrLf if useAJAX then includes = includes & "
" & vbCrLf includes = includes & "
" & vbCrLf end if smarty.Add "includes",includes smarty.Add "useAJAX",useAJAX ' process session variables ' order by strOrderBy="" order_ind=-1 smarty.Add "order_dir_AUTORE","a" smarty.Add "order_dir_ANNO","a" smarty.Add "order_dir_TITOLO","a" smarty.Add "order_dir_EDITORE","a" smarty.Add "order_dir_CITTA","a" smarty.Add "order_dir_NAZIONE","a" smarty.Add "order_dir_LINGUA","a" smarty.Add "order_dir_FOTOC","a" smarty.Add "order_dir_IMMAGINE","a" smarty.Add "order_dir_Keywords","a" if SESSION(strTableName & "_orderby")<> "" then order_field=mid(SESSION(strTableName & "_orderby"),2) order_dir=mid(SESSION(strTableName & "_orderby"),1,1) order_ind=GetFieldIndex(order_field,"") AddDict smarty,"order_dir_AUTORE","a" if order_field="AUTORE" then if order_dir="a" then AddDict smarty,"order_dir_AUTORE","d" img="up" else img="down" end if AddDict smarty,"order_image_AUTORE","" end if AddDict smarty,"order_dir_ANNO","a" if order_field="ANNO" then if order_dir="a" then AddDict smarty,"order_dir_ANNO","d" img="up" else img="down" end if AddDict smarty,"order_image_ANNO","" end if AddDict smarty,"order_dir_TITOLO","a" if order_field="TITOLO" then if order_dir="a" then AddDict smarty,"order_dir_TITOLO","d" img="up" else img="down" end if AddDict smarty,"order_image_TITOLO","" end if AddDict smarty,"order_dir_EDITORE","a" if order_field="EDITORE" then if order_dir="a" then AddDict smarty,"order_dir_EDITORE","d" img="up" else img="down" end if AddDict smarty,"order_image_EDITORE","" end if AddDict smarty,"order_dir_CITTA","a" if order_field="CITTA" then if order_dir="a" then AddDict smarty,"order_dir_CITTA","d" img="up" else img="down" end if AddDict smarty,"order_image_CITTA","" end if AddDict smarty,"order_dir_NAZIONE","a" if order_field="NAZIONE" then if order_dir="a" then AddDict smarty,"order_dir_NAZIONE","d" img="up" else img="down" end if AddDict smarty,"order_image_NAZIONE","" end if AddDict smarty,"order_dir_LINGUA","a" if order_field="LINGUA" then if order_dir="a" then AddDict smarty,"order_dir_LINGUA","d" img="up" else img="down" end if AddDict smarty,"order_image_LINGUA","" end if AddDict smarty,"order_dir_FOTOC","a" if order_field="FOTOC" then if order_dir="a" then AddDict smarty,"order_dir_FOTOC","d" img="up" else img="down" end if AddDict smarty,"order_image_FOTOC","" end if AddDict smarty,"order_dir_IMMAGINE","a" if order_field="IMMAGINE" then if order_dir="a" then AddDict smarty,"order_dir_IMMAGINE","d" img="up" else img="down" end if AddDict smarty,"order_image_IMMAGINE","" end if AddDict smarty,"order_dir_Keywords","a" if order_field="Keywords" then if order_dir="a" then AddDict smarty,"order_dir_Keywords","d" img="up" else img="down" end if AddDict smarty,"order_image_Keywords","" end if if order_ind<>"" then if order_dir="a" then strOrderBy="order by " & (order_ind) & " asc" else strOrderBy="order by " & (order_ind) & " desc" end if end if end if if strOrderBy="" then strOrderBy=gstrOrderBy ' page number mypage=cint(SESSION(strTableName & "_pagenumber")) if mypage=0 then mypage=1 ' page size PageSize=cint(SESSION(strTableName & "_pagesize")) if PageSize=0 then PageSize=gPageSize s="" if PageSize=10 then s="selected" smarty.Add "rpp10_selected",s s="" if PageSize=20 then s="selected" smarty.Add "rpp20_selected",s s="" if PageSize=30 then s="selected" smarty.Add "rpp30_selected",s s="" if PageSize=50 then s="selected" smarty.Add "rpp50_selected",s s="" if PageSize=100 then s="selected" smarty.Add "rpp100_selected",s s="" if PageSize=500 then s="selected" smarty.Add "rpp500_selected",s ' delete record set selected_recs = CreateObject("Scripting.Dictionary") if request("mdelete[]").Count>0 then for ind=1 to request("mdelete[]").Count set keys = CreateObject("Scripting.Dictionary") AddDict selected_recs, ind, keys next else if request("selection[]").Count>0 then for ind=1 to request("selection[]").Count set keys = CreateObject("Scripting.Dictionary") arr = split(request("selection[]").Item(ind) ,"&") if UBound(arr)-LBound(arr) = 0 - 1 then AddDict selected_recs, ind, keys end if next end if records_deleted=0 sr = selected_recs.Items for ind=1 to selected_recs.Count set keys = sr(ind-1) where = KeyWhere(keys,"") strSQL="delete from " & AddTableWrappers(strOriginalTableName) & " where " & where retval=true if retval then LogInfo(strSQL) dbConnection.Execute strSQL records_deleted = records_deleted + 1 DoEvent "AfterDelete """ & replace(where,"""","""""") & """, avalues" end if next if records_deleted>0 then DoEvent "AfterMassDelete(records_deleted)" end if end if ' make sql "select" string 'strSQL = gstrSQL strWhereClause="" ' add search params if SESSION(strTableName & "_search")=1 then ' regular search strSearchFor=trim(SESSION(strTableName & "_searchfor")) strSearchOption=trim(SESSION(strTableName & "_searchoption")) if SESSION(strTableName & "_searchfield")<> "" then strSearchField = SESSION(strTableName & "_searchfield") where = StrWhere(strSearchField, strSearchFor, strSearchOption, "") if where <>"" then strWhereClause = whereAdd(strWhereClause,where) else strWhereClause = whereAdd(strWhereClause,"1=0") end if else sstrWhere = "1=0" where=StrWhere("AUTORE", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("ANNO", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("TITOLO", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("EDITORE", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("CITTA", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("NAZIONE", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("LINGUA", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("FOTOC", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("IMMAGINE", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where where=StrWhere("Keywords", strSearchFor, strSearchOption, "") if where<>"" then sstrWhere=sstrWhere & " or " & where strWhereClause = whereAdd(strWhereClause,sstrWhere) end if else if SESSION(strTableName & "_search")=2 then ' advanced search set strTableName_asearchfortype = SESSION(strTableName & "_asearchfortype") set strTableName_asearchnot = SESSION(strTableName & "_asearchnot") set strTableName_asearchopt = SESSION(strTableName & "_asearchopt") set strTableName_asearchfor = SESSION(strTableName & "_asearchfor") set strTableName_asearchfor2 = SESSION(strTableName & "_asearchfor2") sWhere="" for each f in strTableName_asearchfor strSearchFor=trim(strTableName_asearchfor.item(f)) strSearchFor2="" ttype=strTableName_asearchfortype.item(f) for each i in strTableName_asearchfor2 if f=i then strSearchFor2=trim(strTableName_asearchfor2.item(i)) next if strSearchFor<>"" or true then if sWhere="" then if session(strTableName & "_asearchtype")="and" then sWhere="1=1" else sWhere="1=0" end if end if snot=strTableName_asearchnot.item(f) strSearchOption=trim(strTableName_asearchopt.Item(f)) where="" where=StrWhereAdv(f, strSearchFor, strSearchOption, strSearchFor2,ttype) if where<>"" then if snot<>"" then where="not (" & where & ")" if SESSION(strTableName & "_asearchtype")="and" then sWhere=sWhere & " and " & where else sWhere=sWhere & " or " & where end if end if end if next strWhereClause = whereAdd(strWhereClause,sWhere) end if end if strSQL = gSQLWhereAdd(strWhereClause) ' order by strSQL=strSQL & " " & trim(strOrderBy) ' save SQL for use in "Export" and "Printer-friendly" pages SESSION(strTableName & "_sql") = strSQL SESSION(strTableName & "_where") = strWhereClause SESSION(strTableName & "_order") = strOrderBy ' select and display records if CheckSecurity(SESSION("_" & strTableName & "_OwnerID"),"Search") then strSQLbak = strSQL DoEvent "BeforeQueryList strSQL,strWhereClause,strOrderBy" ' Rebuild SQL if needed if strSQL<> strSQLbak then ' changed strSQL - old style numrows=GetRowCount(strSQL) else strSQL = gSQLWhereAdd(strWhereClause) strSQL = strSQL & " " & trim(strOrderBy) numrows=gSQLRowCount(strWhereClause) end if LogInfo(strSQL) ' Pagination: if numrows=0 then smarty("rowsfound")=false dim message message="No records found" smarty("message")=message else smarty("rowsfound")=true smarty("records_found")=numrows maxRecords = numrows maxpages=int(maxRecords/PageSize) if maxRecords mod PageSize <> 0 then maxpages=maxpages+1 if mypage > maxpages then mypage = maxpages if mypage<1 then mypage=1 maxrecs=PageSize smarty.Add "page",mypage smarty.Add "maxpages",maxpages ' write pagination smarty.Add "pagination","" strSQL = AddTop(strSQL, mypage*PageSize) end if rs.Open strSQL, dbConnection,1,2 call ReportError if not rs.EOF then rs.Move(PageSize*(mypage-1)) ' hide colunm headers if needed recordsonpage=numrows-(mypage-1)*PageSize if recordsonpage>PageSize then _ recordsonpage=PageSize if recordsonpage>=1 then smarty.Add "column1show",true else smarty.Add "column1show",false end if Set rowinfo = CreateObject("Scripting.Dictionary") shade=false recno=1 editlink="" copylink="" ri=0 Set fso = CreateObject("Scripting.FileSystemObject") while not rs.eof and recno<=PageSize Set row = CreateObject("Scripting.Dictionary") if not shade then row.Add "shadeclass","class=""shade""" row.Add "shadeclassname","shade" shade=true else row.Add "shadeclass","" row.Add "shadeclassname","" shade=false end if col=0 do while not rs.eof retval=true DoEvent "retval=BeforeProcessRowList(rs)" if retval=false then rs.MoveNext else exit do end if loop while not rs.EOF and recno<=PageSize and col<1 col=col+1 ' key fields keyblock="" row.Add col & "keyblock", my_htmlspecialchars(keyblock) ' detail tables ' edit page link editlink="" row.Add col & "editlink",editlink copylink="" row.Add col & "copylink",copylink keylink="" ' AUTORE - value="" value = ProcessLargeText(GetData(rs,"AUTORE", ""),"field=AUTORE" & keylink,"",MODE_LIST) row.Add col & "AUTORE_value",value ' ANNO - value="" value = ProcessLargeText(GetData(rs,"ANNO", ""),"field=ANNO" & keylink,"",MODE_LIST) row.Add col & "ANNO_value",value ' TITOLO - value="" value = ProcessLargeText(GetData(rs,"TITOLO", ""),"field=TITOLO" & keylink,"",MODE_LIST) row.Add col & "TITOLO_value",value ' EDITORE - value="" value = ProcessLargeText(GetData(rs,"EDITORE", ""),"field=EDITORE" & keylink,"",MODE_LIST) row.Add col & "EDITORE_value",value ' CITTA - value="" value = ProcessLargeText(GetData(rs,"CITTA", ""),"field=CITTA" & keylink,"",MODE_LIST) row.Add col & "CITTA_value",value ' NAZIONE - value="" value = ProcessLargeText(GetData(rs,"NAZIONE", ""),"field=NAZIONE" & keylink,"",MODE_LIST) row.Add col & "NAZIONE_value",value ' LINGUA - value="" value = ProcessLargeText(GetData(rs,"LINGUA", ""),"field=LINGUA" & keylink,"",MODE_LIST) row.Add col & "LINGUA_value",value ' FOTOC - Checkbox value="" value = GetData(rs,"FOTOC", "Checkbox") row.Add col & "FOTOC_value",value ' IMMAGINE - value="" value = ProcessLargeText(GetData(rs,"IMMAGINE", ""),"field=IMMAGINE" & keylink,"",MODE_LIST) row.Add col & "IMMAGINE_value",value ' Keywords - value="" value = ProcessLargeText(GetData(rs,"Keywords", ""),"field=Keywords" & keylink,"",MODE_LIST) row.Add col & "Keywords_value",value row.Add col & "show",true DoEvent "BeforeMoveNextList rs,row,col" dim span rs.MoveNext do while not rs.eof retval=true DoEvent "retval=BeforeProcessRowList(rs)" if retval=false then rs.MoveNext else exit do end if loop recno=recno+1 wend rowinfo.add ri,row ri=ri+1 wend smarty.Add "rowinfo",rowinfo rs.Close end if if CheckSecurity(SESSION("_" & strTableName & "_OwnerID"),"Search") then if SESSION(strTableName & "_search")=1 then onload = "onLoad=""if(document.getElementById('SearchFor')) document.getElementById('ctlSearchFor').focus();""" smarty.Add "onload",onload ' fill in search variables ' // field selection if SESSION(strTableName& "_searchfield")="AUTORE" then smarty.Add "search_AUTORE","selected" if SESSION(strTableName& "_searchfield")="ANNO" then smarty.Add "search_ANNO","selected" if SESSION(strTableName& "_searchfield")="TITOLO" then smarty.Add "search_TITOLO","selected" if SESSION(strTableName& "_searchfield")="EDITORE" then smarty.Add "search_EDITORE","selected" if SESSION(strTableName& "_searchfield")="CITTA" then smarty.Add "search_CITTA","selected" if SESSION(strTableName& "_searchfield")="NAZIONE" then smarty.Add "search_NAZIONE","selected" if SESSION(strTableName& "_searchfield")="LINGUA" then smarty.Add "search_LINGUA","selected" if SESSION(strTableName& "_searchfield")="FOTOC" then smarty.Add "search_FOTOC","selected" if SESSION(strTableName& "_searchfield")="IMMAGINE" then smarty.Add "search_IMMAGINE","selected" if SESSION(strTableName& "_searchfield")="Keywords" then smarty.Add "search_Keywords","selected" ' // search type selection if SESSION(strTableName & "_searchoption")="Contains" then smarty.Add "search_contains_option_selected","selected" if SESSION(strTableName & "_searchoption")="Equals" then smarty.Add "search_equals_option_selected","selected" if SESSION(strTableName & "_searchoption")="Starts with ..." then smarty.Add "search_startswith_option_selected","selected" if SESSION(strTableName & "_searchoption")="More than ..." then smarty.Add "search_more_option_selected","selected" if SESSION(strTableName & "_searchoption")="Less than ..." then smarty.Add "search_less_option_selected","selected" if SESSION(strTableName & "_searchoption")="Equal or more than ..." then smarty.Add "search_equalormore_option_selected","selected" if SESSION(strTableName & "_searchoption")="Equal or less than ..." then smarty.Add "search_equalorless_option_selected","selected" if SESSION(strTableName & "_searchoption")="Empty" then smarty.Add "search_empty_option_selected","selected" smarty.Add "search_searchfor","value=""" & my_htmlspecialchars(SESSION(strTableName & "_searchfor")) & """" end if end if smarty.Add "displayheader","" linkdata= "" if (useAJAX) then linkdata = linkdata & "" & vbcrlf end if if (useAJAX) then linkdata = linkdata & "" & vbcrlf end if smarty.Add "linkdata",linkdata smarty.Add "guest",SESSION("AccessLevel") = ACCESS_LEVEL_GUEST strSQL=SESSION(strTableName & "_sql") templatefile = "librimau_list.htm" DoEvent "BeforeShowList smarty,templatefile" smarty_display(templatefile) %>