<% '****************************************************************** ' VP-ASP 6.50 ' Use to display header and trailers ' If using affiliate headers they are execute which requires ASP 3.0 ' Nov 12, 2005 Close recordset line 485,932, fix mysql test ' fix true, add headers full for admin ' xdecimalpoint and add datedelimitheader ' Dec 31, 2005 Fix time display for MYSQl and SQL Server ' Nov 22, 2006 HK add showrmaheader '*************************************************************** 'VP-ASP 6.50 - hide menu items that user doesn't have access to dim menuArray(50), list Sub ShopPageHeader If getconfig("xaffheaders")="Yes" then dim filename, affid, rc affid=getsess("affid") if affid<>"" then filename="aff" & affid &"_header.htm" Shopspecialheader filename, rc if rc=0 then exit sub end if end if %> <% end sub Sub ShopPageTrailer If getconfig("xaffheaders")="Yes" then dim filename, affid, rc affid=getsess("affid") if affid<>"" then filename="aff" & affid & "_trailer.htm" Shopspecialheader filename, rc if rc=0 then exit sub end if end if %> <% end sub Sub AdminPageTrailer %> <% end sub Sub AdminPageHeader %> <% end sub ' Sub ShopSpecialHeader (filename, rc) dim fso, newfile newfile=server.mappath(filename) Set fso = server.CreateObject("Scripting.FileSystemObject") If fso.FileExists(newfile) Then rc=0 else rc=4 end if set fso=nothing If rc=0 then 'VP-ASP 6.09 - server.execute doesn't allow for any ASP to be executed in header files 'server.execute (filename) dyninclude filename end if end sub '************************************************************************ ' allows dynamic titles ' Place this line in shoppage_header ' Setupdynamictitle '********************************************************************** Sub Shopdynamictitle(itype) ' title 'dim itype dim ltype, value , sessionfieldname, appfieldname 'itype="title" sessionfieldname="dynamic" & itype appfieldname="x" & itype value=Getsess(sessionfieldname) if (value="") OR isnull(value) then value=getconfig(appfieldname) end if response.write value setsess sessionfieldname,"" ' so it is not reused end sub '******************************************************************* ' called by shopdisplaycategories '****************************************************************** sub SetupdynamicCategory ( conn, categoryid) setsess "dynamictitle","" setsess "Dynamicdescription","" setsess "Dynamickeywords","" on error resume next dim sql, rs If getconfig("xdynamictitle")<>"Yes" then exit sub end if If categoryid=0 then setsess "Dynamictitle","" setsess "Dynamicdescription","" setsess "Dynamickeywords","" exit sub end if sql="select * from categories where categoryid=" & categoryid set rs=conn.execute(sql) if not rs.eof then 'VP-ASP 6.50 - show store title before dynamic title setsess "Dynamictitle",getconfig("xtitle") & " - " & Removehtmlheaders(rs("catdescription"), "
") setsess "Dynamicdescription",Removehtmlheaders(rs("catmemo"), "
") setsess "Dynamickeywords",Removehtmlheaders(rs("catdescription"), "
") end if closerecordset rs end sub sub SetupdynamicProduct ( conn, catalogid) setsess "dynamictitle","" setsess "Dynamicdescription","" setsess "Dynamickeywords","" dim tempname,tempdesc,tempkeywords on error resume next dim sql, rs If getconfig("xdynamictitle")<>"Yes" then exit sub end if sql="select * from products where catalogid=" & catalogid set rs=conn.execute(sql) ' translate logic if not rs.eof then tempname=rs("cname") tempname=translatelanguage(conn, "products", "cname","catalogid", catalogid, tempname) tempname= Removehtmlheaders(tempname, "
") tempdesc=rs("cdescription") 'VP-ASP 6.08a - Changed tempdescription to tempdesc to match variable names ' tempdesc=translatelanguage(conn, "products", "cdescription","catalogid", catalogid, tempdescription) tempdesc=translatelanguage(conn, "products", "cdescription","catalogid", catalogid, tempdesc) tempdesc= Removehtmlheaders(tempdesc, "
") tempkeywords=rs("keywords") tempkeywords=translatelanguage(conn, "products", "keywords","catalogid", catalogid, tempkeywords) tempkeywords= Removehtmlheaders(tempkeywords, "
") 'VP-ASP 6.50 - show store title before dynamic title setsess "Dynamictitle",getconfig("xtitle") & " - " & tempname setsess "Dynamicdescription",tempdesc setsess "Dynamickeywords",tempkeywords end if closerecordset rs end sub 'VP-ASP 6.08a - Generate Dynamic Content Meta Tags sub SetupdynamicContent ( conn, contentid, messagetype) setsess "dynamictitle","" setsess "Dynamicdescription","" setsess "Dynamickeywords","" dim tempname,tempdesc,tempkeywords on error resume next dim sql, rs If getconfig("xdynamictitle")<>"Yes" then exit sub end if if contentid > "" then sql="select * from content where contentid =" & contentid else sql="select * from content where messagetype ='" & messagetype & "'" end if set rs=conn.execute(sql) ' translate logic if not rs.eof then tempname=rs("message") tempname=translatelanguage(conn, "content", "message","contentid", rs("contentid"), tempname) tempname= Removehtmlheaders(tempname, "
") tempdesc=rs("message2") tempdesc=translatelanguage(conn, "content", "message2","contentid", rs("contentid"), tempdesc) tempdesc= left(Removehtmlheaders(tempdesc, "
"), 150) tempkeywords=rs("other1") if tempkeywords > "" then tempkeywords=translatelanguage(conn, "content", "other1","contentid", rs("contentid"), tempkeywords) tempkeywords= Removehtmlheaders(tempkeywords, "
") end if 'VP-ASP 6.50 - show store title before dynamic title setsess "Dynamictitle",getconfig("xtitle") & " - " & tempname setsess "Dynamicdescription",tempdesc setsess "Dynamickeywords",tempkeywords end if closerecordset rs end sub sub displayloggedinsummary %><% end sub sub numberoforders dim sql dim myconn, headerrecs openorderdb myconn 'get number of orders today sql = "select count(orderid) as ordernumber from orders where odate = " & datedelimit(now()) set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("ordernumber") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn end sub '****************************************************************************** ' get unprocessed orders '***************************************************************************** sub unprocessedorders dim sql dim myconn, headerrecs OpenOrderDB myconn 'get number of unprocessed orders if (ucase(xdatabasetype)="SQLSERVER") or (getconfig("xmysql")="Yes") OR (instr(ucase(xdatabasetype), "MYSQL") > 0) then sql = "select count(orderid) as unprocessed from orders where not oprocessed <>0" else sql = "select count(orderid) as unprocessed from orders where not oprocessed <> FALSE" end if set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("unprocessed") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn end sub sub productreviews dim sql dim myconn, headerrecs shopopendatabase myconn 'get number of unapproved product reviews sql = "select count(id) as unauthorized from reviews where (authorized IS NULL)" set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("unauthorized") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn end sub sub giftcertificates dim sql dim myconn, headerrecs shopopendatabase myconn 'get number of unprocessed gift certificates sql = "select count(giftid) as unprocessed from gifts where giftauthorized IS NULL" set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("unprocessed") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn end sub sub trackingmessages dim sql dim myconn, headerrecs openorderdb myconn 'get number of tracking messages sql = "select count(trackid) as unprocessed from ordertracking where trackdate = " & datedelimit(now()) set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("unprocessed") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn end sub '************************************************************************** ' Find last login date. The very last is the one just in so we need previous on '************************************************************************* sub getlastlogin dim sql dim myconn, headerrecs dim mytime shopopendatabase myconn 'get number of unprocessed orders sql = "select flddate,fldtime from tbllog where fldusername = '" & getsess("shopadmin") & "' order by flddate desc, fldtime desc" set headerrecs = myconn.execute(sql) If not headerrecs.eof then headerrecs.movenext If not headerrecs.eof then mytime=headerrecs("fldtime") mytime=formatdatetime(mytime, vblongtime) response.write headerrecs("flddate") & " " & mytime else response.write "-" end if else response.write "-" end if closerecordset headerrecs shopclosedatabase myconn end sub function allowedTable(table) '******************************************** 'see if user has access to this table dim j, okaytables, counter if lcase(getconfig("xrestrictadmintables"))<>"yes" then exit function okaytables=split(getsess("usertables"),",",-1,1) counter=ubound(okaytables) for j = 0 to counter - 1 if ucase(table)=ucase(okaytables(j)) then allowedTable = true exit function end if next allowedTable = false end function Sub getXML(sourceFile,howmany) errorMessage = "
" & getlang("langErrorRSS") & "
" if sourceFile = "" then Response.Write ErrorMessage exit sub end if if howmany = "" then howmany = 0 end if styleTop = "" styleBody = "
  • {TITLE} {DESCRIPTION}
  • " Set xmlHttp = Server.CreateObject("MSXML2.XMLHTTP.3.0") xmlHttp.Open "Get", sourceFile, false xmlHttp.Send() RSSXML = xmlHttp.ResponseText Set xmlDOM = Server.CreateObject("MSXML2.DomDocument.3.0") xmlDOM.async = false xmlDOM.LoadXml(RSSXML) Set xmlHttp = Nothing ' clear HTTP object Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS Set xmlDOM = Nothing ' clear XML RSSItemsCount = RSSItems.Length-1 ' writing Header if RSSItemsCount > 0 then Response.Write styleTop End If j = 0 For i = 0 To RSSItemsCount Set RSSItem = RSSItems.Item(i) for each child in RSSItem.childNodes Select case lcase(child.nodeName) case "title" RSStitle = child.text case "link" RSSlink = child.text case "description" RSSdescription = child.text End Select next j = j + 1 if cint(j) <= cint(howmany) then ItemContent = Replace(styleBody,"{LINK}",RSSlink) ItemContent = Replace(ItemContent,"{TITLE}",RSSTitle) ItemContent = Replace(ItemContent,"{DESCRIPTION}",RSSDescription) Response.Write ItemContent ItemContent = "" End if Next ' writing Footer if RSSItemsCount > 0 then Response.Write styleTail else Response.Write ErrorMessage End If End Sub '************************************************************************** ' display number of orders for admin '************************************************************************* Sub DisplayOrders Dim myconn dim reportlimit, count reportlimit=10 count=0 openorderdb myconn SetUpTable if (ucase(xdatabasetype)="SQLSERVER") or (getconfig("xmysql")="Yes") OR (instr(ucase(xdatabasetype), "MYSQL") > 0) then sql = "select * from orders where oprocessed = 0 order by orderid desc" else sql = "select * from orders where oprocessed = FALSE order by orderid desc" end if Set objRec = myconn.Execute(sql) if objrec.eof then response.write "No new orders." else do while not objrec.eof and count <% End Sub Sub CloseTable %>
    <% End Sub Sub WriteOrderRow (objRec) if processed<>0 then response.write ReportDetailRowX else response.write ReportDetailRow end if response.write ReportDetailColumn & "#" & objRec("orderid") & "" & ReportDetailcolumnend response.write ReportDetailColumn & objRec("ofirstname") & " " & objRec("olastname") & ReportDetailcolumnend response.write ReportDetailColumn & objRec("odate") & ReportDetailcolumnend response.write ReportDetailColumn & shopformatcurrency(objrec("orderamount"),getconfig("xdecimalpoint")) & ReportDetailcolumnend response.write ReportDetailColumn & objRec("ocardtype") & ReportDetailcolumnend response.write ReportDetailColumn & objRec("ocountry") & ReportDetailcolumnend response.write ReportDetailRowEnd End sub Sub WriteOrderTrackingRow (objRec) response.write ReportDetailRow response.write ReportDetailColumn & "#" & objRec("trackid") & "" & ReportDetailcolumnend response.write ReportDetailColumn & objRec("trackname") & ReportDetailcolumnend response.write ReportDetailColumn & objRec("trackdate") & ReportDetailcolumnend response.write ReportDetailColumn & objrec("tracktime") & ReportDetailcolumnend response.write ReportDetailColumn & left(objRec("trackcomment"), 50) if len(objRec("trackcomment")) > 50 then response.write "..." response.write ReportDetailcolumnend response.write ReportDetailRowEnd End sub Sub WriteCustAuthRow (objRec) response.write ReportDetailRow response.write ReportDetailColumn & "#" & objRec("contactid") & "" & ReportDetailcolumnend response.write ReportDetailColumn & objRec("firstname") & ReportDetailcolumnend response.write ReportDetailColumn & objRec("lastname") & ReportDetailcolumnend response.write ReportDetailColumn & objrec("email") & ReportDetailcolumnend response.write ReportDetailcolumnend response.write ReportDetailRowEnd End sub 'VP-ASP 6.50 - RMA Sub WriteOrderRMARow (objRec) response.write ReportDetailRow response.write ReportDetailColumn & "#" & objRec("rmaid") & "" & ReportDetailcolumnend response.write ReportDetailColumn & objRec("rmaname") & ReportDetailcolumnend response.write ReportDetailColumn & objRec("rmacreationdate") & ReportDetailcolumnend response.write ReportDetailColumn & objrec("rmacustomeraction") & ReportDetailcolumnend response.write ReportDetailColumn & left(objRec("rmacustomercomment"), 50) if len(objRec("rmacustomercomment")) > 50 then response.write "..." response.write ReportDetailcolumnend response.write ReportDetailRowEnd End sub Sub GetHeaderMenu dim menuconn, rs, sql, i ShopOpenDatabase menuconn 'Get all menu items for this section sql = "SELECT DISTINCT fldmenu, fldsection FROM tblaccess WHERE fldsection = '" if (getsess("headermenu") = "occasional") then sql = sql & "occasional" elseif (getsess("headermenu") = "setup") then sql = sql & "setup" else sql = sql & "everyday" end if sql = sql & "' ORDER BY fldmenu" if getsess("headermenu") = "setup" then sql = sql & " DESC" end if set rs=menuconn.execute(sql) 'go back to start of recordset so we can write the submenus for each menu item if (getsess("nomenuitems") <> true) and (not getsess("headermenu") = "setup") then rs.movefirst i = 1 while not rs.eof ' WriteSubMenuOpen i, rs("fldmenu"), rs("fldsection") WriteSubMenuItems i, rs("fldmenu"), rs("fldsection") ' WriteSubMenuClose i = i + 1 rs.movenext wend end if closerecordset rs ShopCloseDatabase menuconn End SUb sub writeheadermenu dim menuconn, rs, sql, i WriteMenuOpen ShopOpenDatabase menuconn 'Get all menu items for this section sql = "SELECT DISTINCT fldmenu, fldsection FROM tblaccess WHERE fldsection = '" if (getsess("headermenu") = "occasional") then sql = sql & "occasional" elseif (getsess("headermenu") = "setup") then sql = sql & "setup" else sql = sql & "everyday" end if sql = sql & "' ORDER BY fldmenu" if getsess("headermenu") = "setup" then sql = sql & " DESC" end if set rs=menuconn.execute(sql) i = 1 if rs.eof then 'write the section name because there are no menu items response.write ucase(left(getsess("headermenu"), 1)) & lcase(right(getsess("headermenu"), len(getsess("headermenu")) - 1)) else 'write out menu items if getsess("headermenu") <> "setup" then %><% end if while not rs.eof if getsess("headermenu") = "setup" then if getconfig("xnewconfigmode") = "Yes" then WriteMenuItemLink rs("fldmenu"), rs("fldsection") end if else WriteMenuItem i, rs("fldmenu"), rs("fldsection") end if i = i + 1 rs.movenext wend end if WriteMenuClose end sub Sub generatetabs %>
    <% end sub Sub GetTotalCustomers dim sql, myconn, headerrecs OpenCustomerDB myconn 'get number of customers today sql = "select count(contactid) as customernumber from customers" set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("customernumber") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn End Sub '*************************************************************** ' get sum of orders today '*************************************************************** Sub GetTodaysTotal dim sql, myconn, headerrecs openorderdb myconn 'get total of orders today sql = "select sum(orderamount) as todayorder from orders WHERE odate = " & datedelimit(datepart("yyyy",date) & "/" & datepart("m",date) & "/" & datepart("d",date)) 'only show processed orders. Comment out these line to show all orders if (ucase(xdatabasetype)="SQLSERVER") or (getconfig("xmysql")="Yes") OR (instr(ucase(xdatabasetype), "MYSQL") > 0) then sql = sql & " AND oprocessed = 1" else sql = sql & " AND oprocessed = TRUE" end if 'only show orders that match end of order valid payments. Comment out the lines below to show all orders dim validpayments, types if instr(Getconfig("xendofordervalidpayments"), ",") > 0 then validpayments = split(Getconfig("xendofordervalidpayments"), ",") sql = sql & " AND (" for each types in validpayments sql = sql & " ocardtype = '" & types & "' OR" next sql = left(sql, len(sql) - 2) sql = sql & ")" else sql = sql & " AND ocardtype = '" & Getconfig("xendofordervalidpayments") & "'" end if 'COMMENT ABOVE THIS LINE----------------------------------------------------------------------------------- set headerrecs = myconn.execute(sql) if not headerrecs.eof then if headerrecs("todayorder") > "" then response.write shopformatcurrency(headerrecs("todayorder"), 2) else response.write "0" end if else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn End Sub Sub GetMonthsTotal dim sql, myconn, headerrecs openorderdb myconn 'get total of orders this month 'VP-ASP 6.08 - Total was tallying all months from all years. Now does current month of current year sql = "select sum(orderamount) as monthorder from orders WHERE MONTH(odate) = '" & datepart("m",date) & "' AND YEAR(odate) = '" & datepart("yyyy",date) & "'" 'only show processed orders. Comment out this line to show all orders if (ucase(xdatabasetype)="SQLSERVER") or (getconfig("xmysql")="Yes") OR (instr(ucase(xdatabasetype), "MYSQL") > 0) then sql = sql & " AND oprocessed = 1" else sql = sql & " AND oprocessed = TRUE" end if 'only show orders that match end of order valid payments. Comment out the lines below to show all orders dim validpayments, types if instr(Getconfig("xendofordervalidpayments"), ",") > 0 then validpayments = split(Getconfig("xendofordervalidpayments"), ",") sql = sql & " AND (" for each types in validpayments sql = sql & " ocardtype = '" & types & "' OR" next sql = left(sql, len(sql) - 2) sql = sql & ")" else sql = sql & " AND ocardtype = '" & Getconfig("xendofordervalidpayments") & "'" end if 'COMMENT ABOVE THIS LINE----------------------------------------------------------------------------------- set headerrecs = myconn.execute(sql) if not headerrecs.eof then if headerrecs("monthorder") > "" then response.write shopformatcurrency(headerrecs("monthorder"), 2) else response.write "0" end if else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn End Sub '****************************************************************** ' get total orders for year '********************************************************************** Sub GetYearsTotal dim sql, myconn, headerrecs openorderdb myconn 'get total of orders this year sql = "select sum(orderamount) as yearorder from orders WHERE YEAR(odate) = '" & datepart("yyyy",date) & "'" 'only show processed orders. Comment out this line to show all orders if (ucase(xdatabasetype)="SQLSERVER") or (getconfig("xmysql")="Yes") OR (instr(ucase(xdatabasetype), "MYSQL") > 0) then sql = sql & " AND oprocessed = 1" else sql = sql & " AND oprocessed = TRUE" end if 'only show orders that match end of order valid payments. Comment out the lines below to show all orders dim validpayments, types if instr(Getconfig("xendofordervalidpayments"), ",") > 0 then validpayments = split(Getconfig("xendofordervalidpayments"), ",") sql = sql & " AND (" for each types in validpayments sql = sql & " ocardtype = '" & types & "' OR" next sql = left(sql, len(sql) - 2) sql = sql & ")" else sql = sql & " AND ocardtype = '" & Getconfig("xendofordervalidpayments") & "'" end if 'COMMENT ABOVE THIS LINE----------------------------------------------------------------------------------- set headerrecs = myconn.execute(sql) if not headerrecs.eof then if headerrecs("yearorder") > "" then response.write shopformatcurrency(headerrecs("yearorder"), 2) else response.write "0" end if else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn End Sub sub writeSubMenuOpen (theNumber, theName, theSection) dim paddedNumber if theNumber < 10 then paddedNumber = "0" & theNumber end if%> <%end sub sub writeMenuOpen%> <%end sub sub writeMenuClose%>
    <%end sub Sub WriteMenuItem (theNumber, theName, theSection) 'VP-ASP 6.50 - hide menu items that user doesn't have access to if menuArray(theNumber) = "false" then exit sub end if dim theUnpaddedNunber theUnpaddedNunber = theNumber if theNumber < 10 then theNumber = "0" & theNumber end if%> <%end sub Sub WriteMenuItemLink (theName, theSection) 'VP-ASP 6.50 - hide menu items that user doesn't have access to dim configdbc, configrs shopopendatabase configdbc list = GetAccess(getsess("shopadmin"), configdbc) set configrs = configdbc.execute("SELECT * FROM tblaccess WHERE fldsection = '" & theSection & "' AND fldMenu = '" & theName & "' AND fldauto in (" & list & ") ORDER BY fldOrder, fldName") if not configrs.eof then %> <% end if closerecordset configrs shopclosedatabase configdbc end sub sub headerjavascript%> <%end sub sub getnumberofmenuitems dim numconn, numrs, numsql, k ShopOpenDatabase numconn 'Get all menu items for this section numsql = "SELECT DISTINCT fldmenu, fldsection FROM tblaccess WHERE fldsection = '" if (getsess("headermenu") = "occasional") then numsql = numsql & "occasional" elseif (getsess("headermenu") = "setup") then numsql = numsql & "setup" else numsql = numsql & "everyday" end if numsql = numsql & "' ORDER BY fldmenu" set numrs=numconn.execute(numsql) k = 1 if numrs.eof then 'set numberofmenuitems = nothing because there are no menu items setsess "numberOfMenuItems", "" setsess "nomenuitems", true else 'count number of menu items while not numrs.eof k = k + 1 numrs.movenext wend setsess "numberOfMenuItems", k setsess "nomenuitems", false end if closerecordset numrs ShopCloseDatabase numconn End sub Sub WriteSubMenuItems (theNumber, theName,theSection) dim menuconn, rs, m ShopOpenDatabase menuconn list = GetAccess(getsess("shopadmin"), menuConn) if list = "" then responseredirect "shopa_logoff.asp" end if 'Get all menu items for this sub-menu sql = "SELECT * FROM tblaccess WHERE " sql = sql & "fldsection = '" & theSection & "' AND fldMenu = '" & theName & "' " sql = sql & " AND fldauto in (" & list & ") ORDER BY fldOrder, fldName" set rs=menuconn.execute(sql) 'VP-ASP 6.08 - if a menu had no items, it was breaking the display. Moving this call outside IF statement fixes %>//Contents for menu <%=theNumber%> var menu<%=theNumber%>=new Array() <% if rs.eof then 'VP-ASP 6.50 - hide menu items that user doesn't have access to menuArray(theNumber) = "false" 'response.write "
    No menu items
    " 'VP-ASP 6.08 - Change the way this line is written (from response.write) %>menu<%=theNumber%>[0]='No menu items' <% else menuArray(theNumber) = "true" 'write out menu items dim mm mm = 0 while not rs.eof%> menu<%=theNumber%>[<%=mm%>]='" class="nav"><% dim menuWord 'VP-ASP 6.50.1 - check that fldname is not null before replacing If Not IsNull(rs("fldname")) Then menuWord = replace(rs("fldname"), "getlang(""", "") menuWord = replace(rs("fldname"), """)", "") end if if instr(menuword ," ") > 0 then dim menuWordArray, thing menuWordArray = split(menuword," ") for each thing in menuWordArray if lcase(left(thing, 4)) = "lang" then if lcase(left(thing, 8)) = "language" then response.write thing & " " else response.write getlang(thing) & " " end if else response.write thing & " " end if next else if lcase(left(menuword, 4)) = "lang" then if lcase(left(menuword, 8)) = "language" then response.write menuword & " " else response.write getlang(menuword) & " " end if else response.write menuword & " " end if end if%>

    ' <%mm = mm + 1 rs.movenext wend end if closerecordset rs ShopCloseDatabase menuconn End SUb '******** Display table Sub DisplayAdminPage %>
    <% GetMenuItems %>
    <% end sub Sub GetMenuItems dim adminconn, adminrs, adminsql, newrow newrow = 0 ShopOpenDatabase adminconn 'Get All Top Level menu items from database adminsql = "select DISTINCT fldMenu from tblaccess where fldsection = '" & getsess("headermenu") & "'" set adminrs = adminconn.execute(adminsql) 'Write out top level menu item while not adminrs.eof 'VP-ASP 6.50 - hide menu items that user doesn't have access to list = GetAccess(getsess("shopadmin"), adminconn) set rs = adminconn.execute("SELECT * FROM tblaccess WHERE fldmenu = '" & adminrs("fldmenu") & "' ORDER BY fldOrder, fldName") dim showmenuitem showmenuitem = false if rs.eof then showmenuitem = false else while not rs.eof if instr("," & list & ",", "," & rs("fldauto") & ",") > 0 then showmenuitem = true end if rs.movenext wend if showmenuitem = false then 'do nothing else if newrow = 0 then %><% end if newrow = newrow + 1 %> <%'Get sub menu items GetSubMenuItems adminrs("fldmenu")%>
    /big_<%=adminrs("fldmenu")%>.gif"> <%=ucase(left(adminrs("fldmenu"), 1)) & lcase(right(adminrs("fldmenu"), len(adminrs("fldmenu")) - 1))%>
    <%if newrow = 3 then %>  <% newrow = 0 end if end if end if closerecordset rs adminrs.movenext wend set adminrs = nothing ShopCloseDatabase adminconn End Sub Sub GetSubMenuItems (thisMenu) dim subadminconn, subadminrs, subadminsql dim list ShopOpenDatabase subadminconn list = GetAccess(getsess("shopadmin"), subadminConn) 'Get All Sub Level menu items from database subadminsql = "select * from tblaccess where fldMenu = '" & thisMenu & "' AND fldauto in (" & list & ") ORDER BY fldorder, fldname" set subadminrs = subadminconn.execute(subadminsql) while not subadminrs.eof %>   "><% dim submenuWord submenuWord = replace(subadminrs("fldname"), "getlang(""", "") submenuWord = replace(subadminrs("fldname"), """)", "") if instr(submenuWord ," ") > 0 then dim submenuWordArray, thing submenuWordArray = split(submenuWord," ") for each thing in submenuWordArray if lcase(left(thing, 4)) = "lang" then if lcase(left(thing, 8)) = "language" then response.write thing & " " else response.write getlang(thing) & " " end if else response.write thing & " " end if next else if lcase(left(submenuWord, 4)) = "lang" then if lcase(left(submenuWord, 8)) = "language" then response.write submenuWord & " " else response.write getlang(submenuWord) & " " end if else response.write submenuWord & " " end if end if %> <% subadminrs.movenext wend closerecordset subadminrs ShopCloseDatabase subadminconn End Sub Sub AdminPageHeaderFull %> <% end sub '************************************************************** ' adds quote or # depdending on database '************************************************************** Function datedelimitheader (indate) dim datedelim, newdate newdate=indate datedelim="" ' access does not like delimiyers around partial dates if ucase(xdatabasetype)="SQLSERVER" or getconfig("xmysql")="Yes" OR instr(ucase(xdatabasetype),"MYSQL") > 0 then datedelim="'" end if dateDelimitheader = datedelim & newdate & datedelim end function sub outofstockproducts dim sql dim myconn, headerrecs shopopendatabaseP myconn 'get number of out of stock products sql = "select count(catalogid) as outofstock from products where (cstock < 1) OR (cstock is null)" set headerrecs = myconn.execute(sql) if not headerrecs.eof then response.write headerrecs("outofstock") else response.write "0" end if closerecordset headerrecs shopclosedatabase myconn end sub Function Removehtmlheaders(itemname, CR) dim workrecord, firstchar, morefields, pos, endpos, length dim token workrecord=replace(itemname,"
    ",CR) pos=1 morefields = True Do While morefields = True pos=1 pos = InStr(pos, workrecord, "<") If pos > 0 Then endpos = InStr(pos, workrecord, ">") If endpos=0 then morefields=false else length = endpos - pos + 1 token = Mid(workrecord, pos, length) workrecord=replace(workrecord,token,"") end if else morefields=false end if loop workrecord = replace(workrecord, """", "'") Removehtmlheaders=workrecord end function 'VP-ASP 6.09 - dynamically include header file while allowing for ASP to be included in this file public dyninclude, include_vars, include_vars_count dim objfschk dim regFltr,regFltr2 set dyninclude = new cls_include set objfschk = server.createobject("scripting.filesystemobject") set regFltr = new regexp set regFltr2 = new regexp class cls_include private sub class_initialize() set include_vars = server.createobject("scripting.dictionary") include_vars_count = 0 end sub private sub class_deactivate() include_vars.removeall set include_vars = nothing set include = nothing end sub public default function dyninclude(byval str_path) err.clear dim str_source,init_path if str_path <> "" then if (instr(str_path,":") > 0) then init_path = str_path else init_path = server.mappath(str_path) end if str_source = readfile(str_path) if str_source <> "" then str_source = processincludes (str_source, init_path, 0) convert2code str_source formatcode str_source if str_source <> "" then ' if request.querystring("debug") = 1 then ' response.write str_source ' response.end ' else executeglobal str_source ' end if end if end if end if end function private sub convert2code(str_source) dim i, str_temp, arr_temp, int_len, basecount basecount = include_vars_count if str_source <> "" then if instr(str_source,"%" & ">") > instr(str_source,"<" & "%") then str_temp = replace(str_source,"<" & "%","¿%") str_temp = replace(str_temp,"%" & ">","¿") if left(str_temp,1) = "¿" then str_temp = right(str_temp,len(str_temp) - 1) if right(str_temp,1) = "¿" then str_temp = left(str_temp,len(str_temp) - 1) arr_temp = split(str_temp,"¿") int_len = ubound(arr_temp) if (int_len + 1) > 0 then for i = 0 to int_len str_temp = arr_temp(i) str_temp = replace(str_temp,vbcrlf & vbcrlf,vbcrlf) if left(str_temp,2) = vbcrlf then str_temp = right(str_temp,len(str_temp) - 2) if right(str_temp,2) = vbcrlf then str_temp = left(str_temp,len(str_temp) - 2) if left(str_temp,1) = "%" then str_temp = right(str_temp,len(str_temp) - 1) if left(str_temp,1) = "=" then str_temp = right(str_temp,len(str_temp) - 1) str_temp = "response.write " & str_temp end if else if str_temp <> "" then include_vars_count = include_vars_count + 1 include_vars.add include_vars_count, str_temp str_temp = "response.write include_vars.item(" & include_vars_count & ")" end if end if if right(str_temp,2) <> vbcrlf then str_temp = str_temp arr_temp(i) = str_temp next str_source = join(arr_temp,vbcrlf) end if else if str_source <> "" then 'VP-ASP 6.50.1 - if var already exists, delete it before reinstating it if include_vars.Exists("var") then include_vars.Remove("var") include_vars.add "var", str_source str_source = "response.write include_vars.item(""var"")" end if end if end if end sub private function processincludes(tmp_source, curdir, curdepth) dim int_start, str_path, str_mid, str_temp, localdir,str_method,newdir if (curdepth < 20) then ' Maximum allowable depth. Just in case we get two files including each other localdir = left(curdir, len(curdir)-len(objfschk.GetFileName(curdir))) tmp_source = replace(tmp_source,"")) do until int_start = 0 str_mid = lcase(getbetween(tmp_source,"")) if (str_mid <> "") then int_start = 1 if int_start > 0 then str_method = lcase(trim(getbetween(str_mid," ","="))) str_temp = lcase(getbetween(str_mid,chr(34),chr(34))) str_temp = trim(str_temp) if (str_method = "file") then newdir = objfschk.BuildPath(localdir,replace(str_temp,"/","\")) str_path = processincludes(readfile(newdir), newdir, curdepth+1) tmp_source = replace(tmp_source,"",str_path & vbcrlf) elseif (str_method = "virtual") then newdir = server.mappath(str_temp) str_path = processincludes(readfile(newdir), newdir) tmp_source = replace(tmp_source,"",str_path & vbcrlf) else tmp_source = replace(tmp_source,"","" & vbcrlf) end if end if int_start = instr(tmp_source,"