<% Class O_catalogue Private oConn Public oBase Private iID Private aFilePrices() Sub Class_Initialize() Set oBase = Base End Sub Function Connect(sConn,ID) Set oConn = sConn iID = ID End Function Function Navigation(intCatalogue) Dim sQ Dim i sFile = oBase.LoadView("catalogue","navigation",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, title, files_id FROM catalogue_categories WHERE catalogue_id = "&intCatalogue&" AND parent_id = 0 ORDER BY sort_order ASC") If IsArray(sQ) Then For i = 0 to uBound(sQ,2) aIcon = Split(GetFirstImage(sQ(2,i)),"|||") sIcon = Replace(aIcon(1),"\","/") sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"ICON",sIcon) sRepeat = oBase.InsertValue(sRepeat,"ID",sQ(0,i)) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) strChildren = GetNavigationChildren(sQ(0,i)) sRepeat = oBase.InsertValue(sRepeat,"CHILDREN",strChildren) If strChildren = "" Then sRepeat = oBase.InsertValue(sRepeat,"HREF","href=""" & URL("catalogue","category",sQ(0,i)) & """") Else sRepeat = oBase.InsertValue(sRepeat,"HREF","") End If Next sFooter = oBase.InsertValue(sFooter,"NOTHING",False) Else sFooter = oBase.InsertValue(sFooter,"NOTHING",True) End If Response.Write(sHeader & sRepeat & sFooter) End Function Function GetNavigationChildren(intParentID) Dim sQ Dim i Dim sReturn sReturn = "" isOpen = False sQ = oDB.ExecuteQuery(oConn,"SELECT id, title, files_id FROM catalogue_categories WHERE parent_id = " & intParentID & " ORDER BY sort_order ASC") If IsArray(sQ) Then sFile = oBase.LoadView("catalogue","navigation-children",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) For i = 0 to uBound(sQ,2) sRepeat = sRepeat & aParts(1) If Request.QueryString("controller") = "catalogue" AND Request.QueryString("view") = "category" AND Trim(Request.QueryString("id")) = Trim(sQ(0,i)) Then isOpen = true sHeader = oBase.InsertValue(sHeader,"DISPLAY","display:block") sRepeat = oBase.InsertValue(sRepeat,"CURRENT"," nav-current") Else sRepeat = oBase.InsertValue(sRepeat,"CURRENT","") End If sRepeat = oBase.InsertValue(sRepeat,"ID",sQ(0,i)) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) strChildren = GetNavigationChildren(sQ(0,i)) sRepeat = oBase.InsertValue(sRepeat,"CHILDREN",strChildren) If Trim(strChildren) = "" Then sRepeat = oBase.InsertValue(sRepeat,"HREF","href=""" & URL("catalogue","category",sQ(0,i)) & """") Else sRepeat = oBase.InsertValue(sRepeat,"HREF","") End If Next If isOpen = False Then sHeader = oBase.InsertValue(sHeader,"DISPLAY","display:none") End If sReturn = sHeader & sRepeat & sFooter End If GetNavigationChildren = sReturn End Function Function Category(nID) Dim sQ Dim i sFile = oBase.LoadView("catalogue","product",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, productName, productModel, productManufacturer, productDescription, productSpecifications, files_id, categoryId FROM catalogue_products WHERE categoryId = " & nID & " AND productActive = True ORDER BY sort_order ASC") If IsArray(sQ) Then For i = 0 to uBound(sQ,2) sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"ID",sQ(0,i)) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) sRepeat = oBase.InsertValue(sRepeat,"MODEL",sQ(2,i)) sRepeat = oBase.InsertValue(sRepeat,"MANUFACTURER",sQ(3,i)) sRepeat = oBase.InsertValue(sRepeat,"DESCRIPTION",sQ(4,i)) sRepeat = oBase.InsertValue(sRepeat,"SPECIFICATIONS",sQ(5,i)) sRepeat = oBase.InsertValue(sRepeat,"IMAGES",GetProductImages(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"DOCUMENTS",GetProductDocuments(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"VARIATIONS",GetProductVariations(sQ(0,i),sQ(7,i))) Next sFooter = oBase.InsertValue(sFooter,"NOTHING",False) Else sFooter = oBase.InsertValue(sFooter,"NOTHING",True) End If sHeader = oBase.InsertValue(sHeader,"CATEGORY_TITLE",oDB.GetValue(oConn,"title","catalogue_categories","WHERE id = " & nID)) Response.Write(sHeader & sRepeat & sFooter) End Function Function GetCategoryProductImages(nID) Dim sQ Dim i sFile = oBase.LoadView("catalogue","category-images",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, files_id FROM catalogue_products WHERE categoryId = " & nID) If IsArray(sQ) Then For i = 0 to uBound(sQ,2) Set oFS = Server.CreateObject("Scripting.FileSystemObject") Set oFolder = oFS.GetFolder(C_ROOT_UPLOADS & "\" & sQ(1,i)) For Each File in oFolder.Files sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"IMG_SRC",C_UPLOADS & "/" & sQ(1,i) & "/thumbs/" & File.Name) sRepeat = oBase.InsertValue(sRepeat,"HREF_ITEM",URL2("catalogue","product",sQ(0,i),"window=1")) Next Set oFolder = Nothing Set oFS = Nothing Next End If GetCategoryProductImages = sHeader & sRepeat & sFooter End Function Function Product(nID) Dim sQ Dim i sFile = oBase.LoadView("catalogue","product",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, productName, productModel, productManufacturer, productDescription, productSpecifications, files_id, categoryId FROM catalogue_products WHERE id = " & nID & " AND productActive = True") If IsArray(sQ) Then For i = 0 to uBound(sQ,2) sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"ID",sQ(0,i)) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) sRepeat = oBase.InsertValue(sRepeat,"MODEL",sQ(2,i)) sRepeat = oBase.InsertValue(sRepeat,"MANUFACTURER",sQ(3,i)) sRepeat = oBase.InsertValue(sRepeat,"DESCRIPTION",sQ(4,i)) sRepeat = oBase.InsertValue(sRepeat,"SPECIFICATIONS",sQ(5,i)) sRepeat = oBase.InsertValue(sRepeat,"IMAGES",GetProductImages(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"DOCUMENTS",GetProductDocuments(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"VARIATIONS",GetProductVariations(sQ(0,i),sQ(7,i))) Next sFooter = oBase.InsertValue(sFooter,"NOTHING",False) sHeader = oBase.InsertValue(sHeader,"CATEGORY_TITLE",oDB.GetValue(oConn,"title","catalogue_categories","WHERE id = " & sQ(7,0))) Else sFooter = oBase.InsertValue(sFooter,"NOTHING",True) sHeader = oBase.InsertValue(sHeader,"CATEGORY_TITLE","") End If Response.Write(sHeader & sRepeat & sFooter) End Function Function Featured Dim sQ Dim i Dim isCondition isCondition = False sFile = oBase.LoadView("catalogue","featured",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, productName, productModel, productManufacturer, productDescription, productSpecifications, files_id, categoryId FROM catalogue_products WHERE productActive = True") If IsArray(sQ) Then For i = 0 to uBound(sQ,2) strCondition = GetProductVariationsWithCondition(sQ(0,i),sQ(7,i),"featured") If strCondition <> "" Then isCondition = True sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"HREF_ITEM",URL("catalogue","product",sQ(0,i))) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) sRepeat = oBase.InsertValue(sRepeat,"MODEL",sQ(2,i)) sRepeat = oBase.InsertValue(sRepeat,"MANUFACTURER",sQ(3,i)) sRepeat = oBase.InsertValue(sRepeat,"DESCRIPTION",sQ(4,i)) sRepeat = oBase.InsertValue(sRepeat,"SPECIFICATIONS",sQ(5,i)) sRepeat = oBase.InsertValue(sRepeat,"IMAGES",GetProductImages(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"DOCUMENTS",GetProductDocuments(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"VARIATIONS",strCondition) End If Next sFooter = oBase.InsertValue(sFooter,"NOTHING",False) Else sFooter = oBase.InsertValue(sFooter,"NOTHING",True) End If If isCondition Then sHeader = oBase.InsertValue(sHeader,"CATEGORY_TITLE",oDB.GetValue(oConn,"title","catalogue_categories","WHERE id = " & sQ(7,0))) Response.Write(sHeader & sRepeat & sFooter) Else Response.Write("") End If End Function Function Latest Dim sQ Dim i Dim isCondition isCondition = False sFile = oBase.LoadView("catalogue","latest",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, productName, productModel, productManufacturer, productDescription, productSpecifications, files_id, categoryId FROM catalogue_products WHERE productActive = True") If IsArray(sQ) Then For i = 0 to uBound(sQ,2) strCondition = GetProductVariationsWithCondition(sQ(0,i),sQ(7,i),"new") If strCondition <> "" Then isCondition = True sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"HREF_ITEM",URL("catalogue","product",sQ(0,i))) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) sRepeat = oBase.InsertValue(sRepeat,"MODEL",sQ(2,i)) sRepeat = oBase.InsertValue(sRepeat,"MANUFACTURER",sQ(3,i)) sRepeat = oBase.InsertValue(sRepeat,"DESCRIPTION",sQ(4,i)) sRepeat = oBase.InsertValue(sRepeat,"SPECIFICATIONS",sQ(5,i)) sRepeat = oBase.InsertValue(sRepeat,"IMAGES",GetProductImages(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"DOCUMENTS",GetProductDocuments(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"VARIATIONS",strCondition) End If Next sFooter = oBase.InsertValue(sFooter,"NOTHING",False) Else sFooter = oBase.InsertValue(sFooter,"NOTHING",True) End If If isCondition Then sHeader = oBase.InsertValue(sHeader,"CATEGORY_TITLE",oDB.GetValue(oConn,"title","catalogue_categories","WHERE id = " & sQ(7,0))) Response.Write(sHeader & sRepeat & sFooter) Else Response.Write("") End If End Function Function Specials Dim sQ Dim i Dim isCondition isCondition = False sFile = oBase.LoadView("catalogue","specials",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, productName, productModel, productManufacturer, productDescription, productSpecifications, files_id, categoryId FROM catalogue_products WHERE productActive = True") If IsArray(sQ) Then For i = 0 to uBound(sQ,2) strCondition = GetProductVariationsWithCondition(sQ(0,i),sQ(7,i),"special_price") If strCondition <> "" Then isCondition = True sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"HREF_ITEM",URL("catalogue","product",sQ(0,i))) sRepeat = oBase.InsertValue(sRepeat,"TITLE",sQ(1,i)) sRepeat = oBase.InsertValue(sRepeat,"MODEL",sQ(2,i)) sRepeat = oBase.InsertValue(sRepeat,"MANUFACTURER",sQ(3,i)) sRepeat = oBase.InsertValue(sRepeat,"DESCRIPTION",sQ(4,i)) sRepeat = oBase.InsertValue(sRepeat,"SPECIFICATIONS",sQ(5,i)) sRepeat = oBase.InsertValue(sRepeat,"IMAGES",GetProductImages(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"DOCUMENTS",GetProductDocuments(sQ(6,i))) sRepeat = oBase.InsertValue(sRepeat,"VARIATIONS",strCondition) End If Next sFooter = oBase.InsertValue(sFooter,"NOTHING",False) Else sFooter = oBase.InsertValue(sFooter,"NOTHING",True) End If If isCondition Then sHeader = oBase.InsertValue(sHeader,"CATEGORY_TITLE",oDB.GetValue(oConn,"title","catalogue_categories","WHERE id = " & sQ(7,0))) Response.Write(sHeader & sRepeat & sFooter) Else Response.Write("") End If End Function Function GetProductVariations(intID,intCategory) Dim sQ Dim i sFile = oBase.LoadView("catalogue","variations",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) intVariantCount = GetVariantCount(intID) If intVariantCount > 0 Then For i = 0 to intVariantCount - 1 sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_COLUMN_NAMES",GetVariantColumnHeadings(intCategory)) sRepeat = oBase.InsertValue(sRepeat,"ID",i) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_COLS",GetVariantColumns(i,intID,intCategory)) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_OPTIONS",GetVariantOptions(i,intID,intCategory)) Next Else sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_COLUMN_NAMES",GetVariantColumnHeadings(intCategory)) sRepeat = oBase.InsertValue(sRepeat,"ID",0) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_COLS",GetVariantColumns(0,intID,intCategory)) End If sHeader = oBase.InsertValue(sHeader,"VARIANT_COUNT",intVariantCount - 1) GetProductVariations = sHeader & sRepeat & sFooter End Function Function GetVariantOptions(intCounter,intProduct,intCategory) Dim sQ Dim i sFile = oBase.LoadView("catalogue","variant-options-cols",0) sFile = oBase.InsertValue(sFile,"COLSPAN",GetVariantHeadingCount(0,intProduct,intCategory) + 1) sFile = oBase.InsertValue(sFile,"ID",intCounter) sVariants = oDB.GetValue(oConn,"variationOptions","catalogue_products","WHERE id = " & intProduct) intColCounter = 0 intCol = 0 If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) For Each Item in oVariant.options.get(0).keys() If Trim(Item) = Trim("var_options_"&intCounter) Then Set oItem = oVariant.options.get(0).get(Item) intCount = intCount + 1 sPrice = "oItem.price_" & intCounter sSpecialPrice = "oItem.special_price_" & intCounter bFeatured = Eval("oItem.var_options_"&intCounter&"_featured") bNew = Eval("oItem.var_options_"&intCounter&"_new") bOut = Eval("oItem.var_options_"&intCounter&"_outofstock") If Eval(sSpecialPrice) <> "" And Eval(sPrice) <> "" Then sFile = oBase.InsertValue(sFile,"PRICE",FormatNumber(Eval(sPrice),2)) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",FormatNumber(Eval(sSpecialPrice),2)) ElseIf Eval(sPrice) <> "" AND Eval(sSpecialPrice) = "" Then sFile = oBase.InsertValue(sFile,"PRICE",FormatNumber(Eval(sPrice),2)) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",False) Else sFile = oBase.InsertValue(sFile,"PRICE",False) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",False) End If sFile = oBase.InsertValue(sFile,"ID",intCounter) sFile = oBase.InsertValue(sFile,"FEATURED",bFeatured) sFile = oBase.InsertValue(sFile,"NEW",bNew) sFile = oBase.InsertValue(sFile,"OUTOFSTOCK",bOut) sFile = oBase.InsertValue(sFile,"INSTOCK",Not bOut) sFile = oBase.InsertValue(sFile,"LOGGEDIN",Profiles.IsAuthorized) sFile = oBase.InsertValue(sFile,"LOGGEDIN2",Profiles.IsAuthorized) sFile = oBase.InsertValue(sFile,"HREF_ENQUIRY",URL2("enquiries","add",0,"item=" & intCategory&"_"&intProduct&"_"&intCounter & "&window=1")) sFile = oBase.InsertValue(sFile,"HREF_CART",URL2("cart","addtocart",0,"item=" & intCategory&"_"&intProduct&"_"&intCounter & "&window=1")) Set oItem = Nothing End If Next Set oVariant = Nothing Else sFile = oBase.InsertValue(sFile,"PRICE","") sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE","") sFile = oBase.InsertValue(sFile,"FEATURED",False) sFile = oBase.InsertValue(sFile,"NEW_ARRIVAL",False) sFile = oBase.InsertValue(sFile,"OUTOFSTOCK",False) End If GetVariantOptions = sFile End Function Function GetProductVariationsWithCondition(intID,intCategory,strCondition) Dim sQ Dim i sFile = oBase.LoadView("catalogue","variations",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sRepeat = "" intVariantCount = GetVariantCount(intID) If intVariantCount > 0 Then For i = 0 to intVariantCount - 1 strEvalCondition = Trim(GetVariantOptionsWithCondition(i,intID,intCategory,strCondition)) If strEvalCondition <> "" Then sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_COLUMN_NAMES",GetVariantColumnHeadings(intCategory)) sRepeat = oBase.InsertValue(sRepeat,"ID",i) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_COLS",GetVariantColumns(i,intID,intCategory)) sRepeat = oBase.InsertValue(sRepeat,"VARIANT_OPTIONS",strEvalCondition) End If Next End If If sRepeat <> "" Then sHeader = oBase.InsertValue(sHeader,"VARIANT_COUNT",intVariantCount - 1) GetProductVariationsWithCondition = sHeader & sRepeat & sFooter Else GetProductVariationsWithCondition = "" End IF End Function Function GetVariantOptionsWithCondition(intCounter,intProduct,intCategory,strCondition) Dim sQ Dim i sFile = oBase.LoadView("catalogue","featured-variant-options-cols",0) sFile = oBase.InsertValue(sFile,"COLSPAN",GetVariantHeadingCount(0,intProduct,intCategory) + 1) sFile = oBase.InsertValue(sFile,"ID",intCounter) sVariants = oDB.GetValue(oConn,"variationOptions","catalogue_products","WHERE id = " & intProduct) intColCounter = 0 intCol = 0 If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) For Each Item in oVariant.options.get(0).keys() If Trim(Item) = Trim("var_options_"&intCounter) Then Set oItem = oVariant.options.get(0).get(Item) intCount = intCount + 1 strCondition = Trim(strCondition) If strCondition <> "" Then If InStr(strCondition,"price") > 0 Then strEvalCondition = "oItem." & strCondition & "_" & intCounter isCondition = Trim(Eval(strEvalCondition)) If isCondition <> "" Then sPrice = "oItem.price_" & intCounter sSpecialPrice = "oItem.special_price_" & intCounter If Eval(sSpecialPrice) <> "" And Eval(sPrice) <> "" Then sFile = oBase.InsertValue(sFile,"PRICE",FormatNumber(Eval(sPrice),2)) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",FormatNumber(Eval(sSpecialPrice),2)) ElseIf Eval(sPrice) <> "" AND Eval(sSpecialPrice) = "" Then sFile = oBase.InsertValue(sFile,"PRICE",FormatNumber(Eval(sPrice),2)) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",False) Else sFile = oBase.InsertValue(sFile,"PRICE",False) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",False) End If sFile = oBase.InsertValue(sFile,"HREF_CART",URL2("cart","addtocart",0,"item=" & intCategory&"_"&intProduct&"_"&intCounter & "&window=1")) isCondition = cBool("True") Else isCondition = cBool("False") End If Else strEvalCondition = "oItem.var_options_"&intCounter&"_" & strCondition isCondition = Trim(Eval(strEvalCondition)) If isCondition <> "" Then isCondition = CBool(isCondition) If isCondition Then sPrice = "oItem.price_" & intCounter sSpecialPrice = "oItem.special_price_" & intCounter If Eval(sSpecialPrice) <> "" And Eval(sPrice) <> "" Then sFile = oBase.InsertValue(sFile,"PRICE",FormatNumber(Eval(sPrice),2)) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",FormatNumber(Eval(sSpecialPrice),2)) ElseIf Eval(sPrice) <> "" AND Eval(sSpecialPrice) = "" Then sFile = oBase.InsertValue(sFile,"PRICE",FormatNumber(Eval(sPrice),2)) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",False) Else sFile = oBase.InsertValue(sFile,"PRICE",False) sFile = oBase.InsertValue(sFile,"SPECIAL_PRICE",False) End If sFile = oBase.InsertValue(sFile,"HREF_CART",URL2("cart","addtocart",0,"item=" & intCategory&"_"&intProduct&"_"&intCounter & "&window=1")) End If End If End If End If Set oItem = Nothing End If Next Set oVariant = Nothing End If If isCondition Then GetVariantOptionsWithCondition = sFile Else GetVariantOptionsWithCondition = "" End If End Function Function GetVariantOptionValue(intCounter,intProduct,strProperty) Dim sValue sValue = "" sVariants = oDB.GetValue(oConn,"variationOptions","catalogue_products","WHERE id = " & intProduct) If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) For Each Item in oVariant.options.get(0).keys() If Trim(Item) = Trim("var_options_"&intCounter) Then Set oItem = oVariant.options.get(0).get(Item) intCount = intCount + 1 sValue = Eval("oItem."&strProperty&"_" & intCounter) Set oItem = Nothing End If Next Set oVariant = Nothing End If GetVariantOptionValue = sValue End Function Function GetVariantOptionCondition(intCounter,intProduct,strProperty) Dim sValue sValue = "" sVariants = oDB.GetValue(oConn,"variationOptions","catalogue_products","WHERE id = " & intProduct) If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) For Each Item in oVariant.options.get(0).keys() If Trim(Item) = Trim("var_options_"&intCounter) Then Set oItem = oVariant.options.get(0).get(Item) intCount = intCount + 1 sValue = Eval("oItem.var_options_"&intCounter & "_" & strProperty) Set oItem = Nothing End If Next Set oVariant = Nothing End If GetVariantOptionCondition = sValue End Function Function GetVariantValue(intCounter,intProduct) Dim sQ Dim i strReturn = "" sVariants = oDB.GetValue(oConn,"productVariants","catalogue_products","WHERE id = " & intProduct) intCol = 0 If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) Set oItem = oVariant.variants.get(0).get(intCounter) For Each Col in oItem.Keys() If intCol = 0 Then strReturn = Eval("oItem."&Col&"") intCol = intCol + 1 End IF Next Set oItem = Nothing Set oVariant = Nothing End If GetVariantValue = strReturn End Function Function GetVariantHeadingCount(intCounter,intProduct,intCategory) Dim sQ Dim i strLabel = "" strLabel = "Item_Code" sVariants = oDB.GetValue(oConn,"productVariants","catalogue_products","WHERE id = " & intProduct) intColCounter = 0 intCol = 0 If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) Set oItem = oVariant.variants.get(0).get(intCounter) For Each Col in oItem.Keys() intColCounter = intColCounter + 1 intCol = intCol + 1 strName = "var_" & Replace(LCase(Col)," ","_") & "_" & intCounter Next Set oItem = Nothing intColCounter = intColCounter + 1 Set oVariant = Nothing Else sQ = oDB.ExecuteQuery(oConn,"SELECT id, col_heading FROM catalogue_category_variations WHERE category_id = " & intCategory) If IsArray(sQ) Then For i = 0 to uBound(sQ,2) intColCounter = intColCounter + 1 strName = "var_" & Replace(LCase(sQ(1,i))," ","_") & "_0" Next End If End If GetVariantHeadingCount = intColCounter End Function Function GetVariantCount(intID) strVariants = oDB.GetValue(oConn,"productVariants","catalogue_products","WHERE id = " & intID) Dim intCount intCount = 0 If strVariants <> "" Then Set oVariant = JSON.parse(strVariants) For Each Key in oVariant.variants.keys() For Each Item in oVariant.variants.get(Key).keys() Set oItem = oVariant.variants.get(Key).get(Item) intCount = intCount + 1 Set oItem = Nothing Next Next Set oVariant = Nothing Else intCount = 0 End If GetVariantCount = intCount End Function Function GetVariantColumns(intCounter,intProduct,intCategory) Dim sQ Dim i strLabel = "" strLabel = "Item_Code" sFile = oBase.LoadView("catalogue","variant-cols",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sVariants = oDB.GetValue(oConn,"productVariants","catalogue_products","WHERE id = " & intProduct) intColCounter = 0 intCol = 0 If sVariants <> "" Then Set oVariant = JSON.parse(sVariants) Set oItem = oVariant.variants.get(0).get(intCounter) For Each Col in oItem.Keys() If Col <> "" Then intCol = intCol + 1 sRepeat = sRepeat & aParts(1) strName = "var_" & Replace(LCase(Col)," ","_") & "_" & intCounter sRepeat = oBase.InsertValue(sRepeat,"ID",intCounter) sRepeat = oBase.InsertValue(sRepeat,"FIELD_NAME",strName) sRepeat = oBase.InsertValue(sRepeat,"FIELD_VALUE",Eval("oItem."&Col&"")) End If 'Response.Write(sColName & "
") 'sRepeat = oBase.InsertValue(sRepeat,"FIELD_VALUE",oVariant.variants.get(0)) Next Set oItem = Nothing intColCounter = intColCounter + 1 Set oVariant = Nothing Else sQ = oDB.ExecuteQuery(oConn,"SELECT id, col_heading FROM catalogue_category_variations WHERE category_id = " & intCategory) If IsArray(sQ) Then For i = 0 to uBound(sQ,2) strName = "var_" & Replace(LCase(sQ(1,i))," ","_") & "_0" sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"ID",i) sRepeat = oBase.InsertValue(sRepeat,"FIELD_NAME",strName) sRepeat = oBase.InsertValue(sRepeat,"FIELD_VALUE","") Next End If End If sFooter = oBase.InsertValue(sFooter,"ID",intCounter) GetVariantColumns = sHeader & sRepeat & sFooter End Function Function GetVariantColumnHeading(intID,intNum) Dim sQ Dim i sQ = oDB.ExecuteQuery(oConn,"SELECT id, col_heading FROM catalogue_category_variations WHERE category_id = " & intID) If IsArray(sQ) Then For i = 0 to intNum - 1 strReturn = sQ(1,i) Next End If GetVariantColumnHeading = strReturn End Function Function GetVariantColumnHeadings(intID) Dim sQ Dim i sFile = oBase.LoadView("catalogue","variant-col-names",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) sQ = oDB.ExecuteQuery(oConn,"SELECT id, col_heading FROM catalogue_category_variations WHERE category_id = " & intID) If IsArray(sQ) Then For i = 0 to uBound(sQ,2) If sQ(1,i) <> "" Then sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"COL_HEADING",sQ(1,i)) End If Next End If GetVariantColumnHeadings = sHeader & sRepeat & sFooter End Function Function GetProductImages(intID) Dim intCount intCount = 0 intCount = Trim(GetProductImagesCount(intID)) Select Case intCount Case 0 Case Else sFile = oBase.LoadView("catalogue","images_1",1) End Select If intCount > 0 Then aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) Set oFS = Server.CreateObject("Scripting.FileSystemObject") If oFS.FolderExists(C_ROOT_UPLOADS & "\" & intID) Then Set oFolder = oFS.GetFolder(C_ROOT_UPLOADS & "\" & intID) For Each Image In oFolder.Files sCaption = "" sFileName = Split(Image.Name,".") sExt = sFileName(1) Select Case sExt Case "doc" Case "docx" Case "pdf" Case "txt" Case "xls" Case "xlsx" Case Else sRepeat = sRepeat & aParts(1) sQ = oDB.ExecuteQuery(oConn,"SELECT id, file_caption FROM files WHERE file_folder = '"&intID&"' AND file_name = '"&Image.Name&"'") If IsArray(sQ) Then If sQ(1,0) <> "" Then sCaption = sQ(1,0) Else sCaption = "" End If Else sCaption = "" End If If sCaption <> "" Then sRepeat = oBase.InsertValue(sRepeat,"CAPTION",sCaption) Else sRepeat = oBase.InsertValue(sRepeat,"CAPTION","") End If sRepeat = oBase.InsertValue(sRepeat,"IMG_SRC",C_UPLOADS & "\" & intID & "\" & Image.Name) sRepeat = oBase.InsertValue(sRepeat,"THUMB_SRC",C_UPLOADS & "\" & intID & "\thumbs\" & Image.Name) sCaption = "" End Select Next Set oFolder = Nothing End If Set oFS = Nothing GetProductImages = sHeader & sRepeat & sFooter Else GetProductImages = "" End If End Function Function GetProductImagesCount(intID) Dim intCount intCount = 0 sQ = oDB.ExecuteQuery(oConn,"SELECT COUNT(id) FROM files WHERE file_folder = '"&intID&"'") If IsArray(sQ) Then intCount = sQ(0,0) End If GetProductImagesCount = intCount End Function Function GetProductDocuments(intID) sFile = oBase.LoadView("catalogue","documents",1) aParts = DoSplit(sFile) sHeader = aParts(0) sFooter = aParts(2) intCounter = 0 Set oFS = Server.CreateObject("Scripting.FileSystemObject") If oFS.FolderExists(C_ROOT_UPLOADS & "\" & intID) Then Set oFolder = oFS.GetFolder(C_ROOT_UPLOADS & "\" & intID) For Each Image In oFolder.Files sFileName = Split(Image.Name,".") sExt = sFileName(1) Select Case sExt Case "jpg" Case "png" Case "jpeg" Case "gif" Case "bmp" Case Else intCounter = intCounter + 1 sRepeat = sRepeat & aParts(1) sRepeat = oBase.InsertValue(sRepeat,"HREF",C_UPLOADS & "\" & intID & "\" & Image.Name) sRepeat = oBase.InsertValue(sRepeat,"TITLE",Image.Name) End Select Next Set oFolder = Nothing End If Set oFS = Nothing If intCounter > 0 Then GetProductDocuments = sHeader & sRepeat & sFooter Else GetProductDocuments = "" End If End Function Function GetFirstImage(intID) strSrc = "" strThumb = "" sReturn = "" Set oFS = Server.CreateObject("Scripting.FileSystemObject") If oFS.FolderExists(C_ROOT_UPLOADS & "\" & intID) Then Set oFolder = oFS.GetFolder(C_ROOT_UPLOADS & "\" & intID) For Each Image In oFolder.Files sFileName = Split(Image.Name,".") sExt = sFileName(1) Select Case sExt Case "doc" Case "docx" Case "pdf" Case "txt" Case "xls" Case "xlsx" Case Else strSrc = C_UPLOADS & "\" & intID & "\" & Image.Name strThumb = C_UPLOADS & "\" & intID & "\thumbs\" & Image.Name End Select Next Set oFolder = Nothing End If Set oFS = Nothing sReturn = strSrc & "|||" & strThumb GetFirstImage = sReturn End Function End Class %>