#include vhLib.Macro InitializeCSP #define LandKeuzeDFL 1 #define LabelType "L" #define LastKM "Diepte" #define GroepKM "OL" #define WebTextVal(%v) ##class(cspBasis.ProductList).WebTextValue(%v,Taal,"L") #define GetImgUrl(%v) ##class(Res.VertalingLink).GetLinkVertaling("OLW",%v,"LB",Taal,,"WWW") s:('$D(%ClientIP)) %ClientIP="192.168.1.97" Set GroepID=$$$GroepKM Set UseWildCards=1 Set ComputerName=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam() Set NameSpace=$ZUTIL(67,6,$J) Set Taal=$$$UCase($G(tmpRqData("taal",1))) Set:(Taal="")||("N;F;D;E"'[Taal) Taal="N" ; VH's Default Set LandCode=$$$UCase($G(tmpRqData("LandCode",1))) If LandCode="" Do . Set LandCode=$G(LandCodeViaCookie) . ;d WL^vhDBG("LandCode Via Cookie, LC="_LandCode) Set blnLandKeuze=((LandCode="")||("BE;NL"'[LandCode)) Set:(blnLandKeuze)&&($$$LandKeuzeDFL) LandCode="BE" d:(blnLandKeuze) WL^vhDBG("Landkeuze, LC="_LandCode) ;w "Session ID="_%session.SessionId_" - "_$S(%session.NewSession:"first", 1:"subsequent")_" request - EventClass="_%session.EventClass Set blnImgLarge=(''$G(%request.Data("IMGHIRES",1))) Do iniPreloadMetaObjs ;Do ##class(Prod.Kenmerk.Utils).PRLijstViaCriteria(GroepID,"ArPR",.tmpRqData) Do ##class(Prod.Kenmerk.Utils).PRLijstViaCriteriaExtra(GroepID,"ArPR",.tmpRqData,$$$LastKM,.arLastKMVal) Do iniVertaalMetaLabels /* Set BPLastKM="" If $D(tmpRqData($$$LastKM)) Do . New lbLastKMValIntern,lbOtherKMValIntern,i,VTL,HRef . Set LastMetaObj=MetaArray($$$LastKM) . Set lbLastKMValIntern=$G(arLastKMVal("SORTED","KMVAL")) . Set lbLastKMVal="" . For i=1:1:$LL(lbLastKMValIntern) Set:($LG(lbLastKMValIntern,i)'="") lbLastKMVal=lbLastKMVal_$LB(LastMetaObj.VertaalItem($LI(lbLastKMValIntern,i),Taal,"K")) . Set BPLastKM=$$$LCase(MetaArray($$$LastKM,"VTL"))_" "_$$LCVTSimple^vhLib(lbLastKMVal," - ") . Do iniSetOtherKMVal . ;d WL^vhDBG("Values"_$$$ArrayTT("arLastKMVal")) . Set lbOtherKMValIntern=$G(arLastKMVal("SORTED","OTHER")) . Set lbOtherKMVal="" . ; Build Texts . Set FrameURL=%request.URL_"?"_##class(cspBasis.ProductList).CQueryString(.tmpRqData) . For i=1:1:$LL(lbOtherKMValIntern) Do:($LG(lbOtherKMValIntern,i)'="") .. Set VTL=##class(Res.Vertaling).GetVertalingPlus("OLW","AndereKMDiepte","L",Taal)_" "_LastMetaObj.VertaalItem($LI(lbOtherKMValIntern,i),Taal,"K") .. Set HRef=""_""_VTL_""_"" .. ;Set VTL=LastMetaObj.VertaalItem($LI(lbOtherKMValIntern,i),Taal,"K") .. ;Set HRef=""_VTL_"" .. Set lbOtherKMVal=lbOtherKMVal_$LB(HRef) . ;Set LastKMOtherVal="" . Set LastKMOtherVal=$$LCVTSimple^vhLib(lbOtherKMVal," - ") ; ," - ") */ Set BPLastKM="" If $D(tmpRqData($$$LastKM))&&($LL($G(arLastKMVal("SORTED","KMVAL")))=1) Do . New LastKMValIntern,lbAllKMValIntern,lbAllKMVal,QSLastKMVal,LastMetaObj,i,VTL,FrameURL,HRef,classSpan ; BPLastKM mag niet ge-newd worden . Set LastKMValIntern=$LG(arLastKMVal("SORTED","KMVAL"),1) ; Slechts 1 beperking op LastKM . Quit:(LastKMValIntern="") . Set LastMetaObj=MetaArray($$$LastKM) . Set BPLastKM=MetaArray($$$LastKM,"VTL") . Set lbAllKMValIntern=$G(arLastKMVal("SORTED","ALL")) . Set lbAllKMVal="" . ; Build Texts . Set QSLastKMVal=$$$LastKM_"="_$ZCVT(LastKMValIntern,"o","URL") . Set FrameURL=%request.URL_"?"_##class(cspBasis.ProductList).CQueryString(.tmpRqData) . For i=1:1:$LL(lbAllKMValIntern) Do:($LG(lbAllKMValIntern,i)'="") .. Set VTL=LastMetaObj.VertaalItem($LI(lbAllKMValIntern,i),Taal,"K") .. Set classSpan=$S($F(LastKMValIntern,$LI(lbAllKMValIntern,i))>0:"clsLastKMBtnAct",1:"clsLastKMBtn") .. Set HRef=""_""_VTL_""_"" .. Set lbAllKMVal=lbAllKMVal_$LB(HRef) . Set LastKMAllVal=$$LCVTSimple^vhLib(lbAllKMVal," - ") . Set LastKMOtherVal=LastKMAllVal // ProductTitle If $L($G(tmpRqData("SubType",1)))&&('$D(tmpRqData("SubType",2))) Do . Set PageTitle=##class(Res.Vertaling).GetVertalingPlus("PK",tmpRqData("SubType",1),"K",Taal) Else Do . Set PageTitle=##class(cspBasis.ProductList).WebTextValue("ProdInfoTitel",Taal,"L") // Landkeuze veranderen #If ($ZCVT($$$Server,"U")["WWW") Set blnShowLcWIS=0 #Else Set blnShowLcWIS=1 #EndIf Set QScodeLeeg=$$iniClearLandCodeFromQS Set QScodeWIS=QScodeLeeg_"&LandCode=WIS" Set QScodeBE=QScodeLeeg_"&LandCode=BE" Set QScodeNL=QScodeLeeg_"&LandCode=NL" Set TagVlagBE="" Set TagVlagNL="" Quit iniPreloadMetaObjs New rs Set rs=##class(%ResultSet).%New("Prod.Kenmerk.MetaDefinitie:LijstPerGroep") Do rs.Execute(GroepID) For Quit:('rs.Next()) Set MetaArray(rs.Data("Kenmerk"))=##class(Prod.Kenmerk.MetaDefinitie).%OpenId(GroepID_"||"_rs.Data("Kenmerk")) Do rs.%Close() Quit ; De objecten moeten in het geheugen blijven; ze worden pas aan het einde van de CSP-Body gesloten. ; ; Close MetaObjects ;New k,tmpOref ;Set k="" ;For Set k=$O(MetaArray(k)) Quit:(k="") Set tmpOref=MetaArray(k) Do tmpOref.%Close() Kill MetaArray(k) ;Quit iniVertaalMetaLabels New k,tmpOref Set k="" For Set k=$O(MetaArray(k)) Quit:(k="") Do . Set tmpOref=MetaArray(k) . Set MetaArray(k,"VTL")=tmpOref.VertaalItem("§",Taal,$$$LabelType) ; Vertaling van de MetaDefinie zelf Quit iniSetOtherKMVal New i,Pos Set arLastKMVal("SORTED","OTHER")=$G(arLastKMVal("SORTED","ALL")) Quit:($G(arLastKMVal("SORTED","KMVAL"))="") For i=1:1:$LL(arLastKMVal("SORTED","KMVAL")) Do . Set Pos=$LF(arLastKMVal("SORTED","ALL"),$LG(arLastKMVal("SORTED","KMVAL"),i)) . $$$DoLBDeleteAtIf((Pos>0),arLastKMVal("SORTED","OTHER"),Pos) Quit iniClearLandCodeFromQS() Quit $$iniClearParamFromQS(%request.GetCgiEnv("QUERY_STRING"),"LandCode") iniClearParamFromQS(QS,Param) Quit:(Param="") "" New tmpQS,SubQS Set tmpQS=QS For Set SubQS=$$$TextBetween("&"_tmpQS_"&","&"_Param_"=","&") Quit:(SubQS="") Do . Set tmpQS=$$$Replace("&"_tmpQS,"&"_Param_"="_SubQS,"") Set:($E(tmpQS,1)="&") $E(tmpQS,1)="" Quit tmpQS DataDefValueList() ; Parameters: Taal,GroepID,UnID,Kenmerk,TextType,ListItems,ListSep Quit:($G(GroepID)="")!($G(UnID)="")!($G(Kenmerk)="") "" New objDD,i,LBVal,LBX Set objDD=##class(Prod.Kenmerk.DataDefinitie).%OpenId(UnID_"||"_GroepID_"||"_Kenmerk) Quit:('objDD) "" Set LBX=$$ddvBuildItemsLB(objDD,.ListItems) ; Quit zonder vertaling Quit:($G(TextType)="") $S($G(ListSep)="":LBX, 1:$LB($$LCVTSimple^vhLib(LBX,";"))) ; Met LBX: items vertalen Set LBVal="" If $L($G(ListSep)) Do ; ListSeparator is defined ==> create textlist of concat values . Do ddvAddToLB(.LBVal,objDD.VertaalConcatList(LBX,ListSep,Taal,TextType)) Else Do . For i=1:1:$LL(LBX) Do ; put separate values in $LB() .. Do ddvAddToLB(.LBVal,objDD.VertaalItem($LI(LBX,i),Taal,TextType)) Do objDD.%Close() Quit LBVal ddvBuildItemsLB(objDD,ListItems) ; Mogelijke waarden voor ListItems: bvb.: "*" , "1" , "1;2" , "1;2;5;7" New LBX,i,CntW Set LBX="" If ListItems="*" Do . For i=1:1:objDD.Waarden.Count() Do ddvAddToLB(.LBX,objDD.Waarden.GetAt(i)) Else Do . Set CntW=objDD.Waarden.Count() . For i=1:1:$L(ListItems,";") Do:(+$P(ListItems,";",i)'>CntW) ddvAddToLB(.LBX,objDD.Waarden.GetAt(+$P(ListItems,";",i))) Quit LBX ddvAddToLB(LB,X) Set:($L(X)) LB=LB_$LB(X) Quit DataDefValueListURL() ; Parameters: Taal,GroepID,UnID,Kenmerk,TextType,ListItems,ListSep,ToepasCode #define ToepasCode $G(ToepasCode,"WWW") #define VertaalLinkItem(%v) ##class(Res.VertalingLink).GetLinkVertaling(KenmType,%v,TextType,Taal,,$$$ToepasCode) Quit:($G(GroepID)="")!($G(UnID)="")!($G(Kenmerk)="") "" New objDD,i,LBVal,LBX,KenmType Set objDD=##class(Prod.Kenmerk.DataDefinitie).%OpenId(UnID_"||"_GroepID_"||"_Kenmerk) Quit:('objDD) "" Set KenmType=objDD.Kenmerk.GetVertalingsGroep() Set LBX=$$ddvBuildItemsLB(objDD,.ListItems) ; Met LBX: items vertalen Set LBVal="" If $L($G(ListSep)) Do . Set LBVal=$LB("NOT IMPLEMENTED By WimV") . ;Do ddvAddToLB(.LBVal,objDD.VertaalConcatListXxxURL (LBX,ListSep,Taal,TextType)) Else Do . For i=1:1:$LL(LBX) Do ; put separate values in $LB() .. Do ddvAddToLB(.LBVal,$$$VertaalLinkItem($LI(LBX,i))) Do objDD.%Close() Quit LBVal ddvAddToLBxxx(LB,X) // See ddvAddToLB() ;Set:($L(X)) LB=LB_$LB(X) ;Quit ddvBuildItemsLBxxx(objDD,ListItems) // See ddvBuildItemsLB() ;... ;Quit LBX