<% dim selectfield, sortfield, sortupdown, displayfields dim selectvalue, displayfield, displaycaptions, displayfieldcount dim sortfield2, sortupdown2 '*********************************************************** ' Filter product display VP-ASP 6.50 ' May 12, 2003 '************************************************************ GetInput ' see what user wants GenerateSQL ' generate SQL Setsess "SQL",SQL setsess "sqlquery",sql ResponseRedirect "shopdisplayproducts.asp?page=1&filter=yes" ' Sub GetInput 'VP-ASP 6.50 - precautionary security fix sortfield=cleanchars(request("sortfield")) sortfield2=cleanchars(request("sortfield2")) displayfield=cleanchars(request("displayfields")) selectfield=cleanchars(request("selectField")) sortupdown=cleanchars(request("sortupdown")) sortupdown2=cleanchars(request("sortupdown2")) selectvalue=cleanchars(request("Selectvalue")) Category=GetSess("Category") ' see what previous one was cat_id=getsess("Cat_id") DisplayFieldCount = Request("DisplayFields").Count If Displayfieldcount=0 then setsess "proddisplaycount",0 else DisplayFields= Split(DisplayField, ", ", -1, 1) If DisplayFields(0)="All" then Displayfieldcount=0 else Generatedisplaycaptions end if SetSessA "ProdDisplayFields",DisplayFields SetSess "prodDisplaycount",displayfieldcount end if If sortfield= getlang("langcommonselect") then sortfield="" end if If sortfield2= getlang("langcommonselect") then sortfield2="" end if if sortfield2=sortfield then sortfield2="" end if 'debugwrite "displayfields=" & displayfield & " count=" & Displayfieldcount setsess "Prodsortfield",sortfield setsess "Prodsortfield2",sortfield2 setsess "prodselectfield",selectfield setsess "prodsortupdown",sortupdown setsess "prodsortupdown2",sortupdown2 end sub Sub GenerateSQL SQL = GetSess("sqlnofilter") If sql="" then sql=getsess("Sql") end if SQL = Left(SQL, InStr(1,lcase(SQL),"order by")-1) AddFiltering AddSortToSelect If sortfield<>"" Then sql=sql & " order by " & sortfield & " " & sortupdown If sortfield2<>"" Then sql=sql & "," & sortfield2 & " " & sortupdown2 end if else sql = sql & " order by " & getconfig("xsortproducts") end if end sub Sub AddFiltering If SelectField= getlang("LangCommonselect") then selectvalue="" end if If selectvalue<>"" then sql=sql & " and " & selectfield & " like '%" & selectvalue & "%'" end if End Sub Sub GenerateDisplaycaptions Dim Prodfields, prodheader, capcount, i, caption redim displaycaptions(displayfieldcount-1) SetupProductFields ProdFields, ProdHeader capcount=0 for i = 0 to ubound(displayfields) locatecaption caption, displayFields(i), prodfields, prodheader displaycaptions(capcount)=caption capcount=capcount+1 'debugwrite "field=" & displayfields(i) & " caption=" & caption next setsessa "proddisplaycaptions",displaycaptions end sub sub locatecaption (caption, fieldname, prodfields, prodheader) dim i for i =0 to ubound(Prodfields) if ucase(fieldname)=ucase(prodfields(i)) then caption=prodheader(i) exit sub end if next caption="????" end sub Sub AddSorttoselect '**************************************************************** ' any sort fields must also be selected ' select DISTINCT p.catalogid,cname ' changes to ' select DISTINCT p.catalogid,cname,sortfield1,sortfield2 ' **************************************************************** dim fields, pos if sortfield="" and sortfield2="" then exit sub If ucase(xdatabasetype)<>"SQLSERVER" then exit sub fields=" p.catalogid" If sortfield<>"" then fields=fields & "," & sortfield end if If sortfield2<>"" then fields=fields & "," & sortfield2 end if 'VP-ASP 6.50.1 - fix error 'sql=replace(sql," p.catalogid",fields) If InStr(sql,fields) = 0 Then sql=replace(sql," p.catalogid",fields) End If end sub %>