Jeg ved det ærlig talt ikke. Har ikke meget styr på det. Er ved at rette vores hjemmeside til efter den er blevet flyttet til surftown. Og det er på den langsommelige måde. Kan jeg på nogen måde give dig informationer nok til at du kan hjælpe. Eller er jeg bare ude på for dybt vand.
Det kommer lidt an på hvilke sideeffekter der opstår under læsning af denne udfordring :)
Hvis du i første omgang kan lave en søgning i alle dine asp-sider for at se om du kan finde den funktion, så ville det være en stor hjælp (du kan evt. se om du har inkluderet den fil som funktionen er defineret i.
If inRs("ModuleId").Value > 0 Then strIcon = "d.icon.module" vMenuTreeReadURL = inModuleURL End If If inParentDocId = 0 Then strIcon = "d.icon.toplevel" strIconOpen = "d.icon.toplevelOpen" End If If vTrash = strID Then strIcon = "d.icon.trash" strIconOpen = "d.icon.trash" End If
If inRs("ModuleId").Value > 0 Then vMenuTreeReadURL = inRs("TemplateURL").Value
If Not SiteUseFrames Then vMenuTreeReadURL = "default.asp?Docid=1&Tpl=" & vMenuTreeReadURL End If
If InStr(vMenuTreeReadURL, "?") > 0 Then vMenuTreeReadURL = vMenuTreeReadURL & "&" Else vMenuTreeReadURL = vMenuTreeReadURL & "?" End If vMenuTreeReadURL = vMenuTreeReadURL & "lang="&vLangId End If
Set myRs = Server.CreateObject("ADODB.Recordset") myRs.Open strSQL, inConn If Not myRs.EOF And Not myRs.BOF Then GetDStatus= "<font color=\'#008080\'> (" & dID & ":" & myRs("ActiveRevisionStatus").Value & ":" & _ cPx(myRs("PublishCh1").Value, 1) & _ cPx(myRs("PublishCh2").Value, 2) & _ cPx(myRs("PublishCh3").Value, 3) & _ ")</font>" End If myRs.Close Set myRs = Nothing
End Function
Function cPx(vStatus, pg) If vStatus = 1 Then cPx = ""&pg Else cPx = "" End IF End Function %>
Ja, f.eks. - og der kan man se at funktionen kun tager 4 parametre, hvor du forsøger at stoppe 5 ned i den... det går efter min bedste overbevisning ikke :)
Det er bare underligt at det har virker før. Da vi havde en anden internetudbyder. Men hvorom alt er, så aner jeg ikke hvad jeg skal gribe og gøre i, for at løse problemet. Er der mulighed for hjælp, eller er det for omfattende et problem?
For mig ser det ud til at den 3. parameter i kaldet ikke passer til noget i parameterlisten af definitionen af GetMenuTree. Jeg ville derfor prøve at fjerne den i kaldet og se hvad der sker.
Hvorfor det har fungeret hos jeres tidligere udbyder er mig en gåde, for parameterlisten passer ikke med definitionen og det har jeg svært ved at se skulle fungere hos nogen udbyder (hvis altså det er den samme implementation af VBScript der bruges begge steder.
Jeg tror altså der er sket en eller anden udvikling af modulet som af en eller anden årsag ikke er kommet med i den kode du sidder med. Det er bare et gæt da jeg i sagens natur ikke har andet en det kode du har vist mig, at danne mine indtryk efter...
Syntax error (missing operator) in query expression 'ParentId= AND (LangId=1 Or LangId Is Null) AND SecLevel <= 0 AND LangStatus = 5 AND PublishDate < DateValue('28-05-2006 22:50:13') AND ExpiresDate > DateValue('28-05-2006 22:50:13')'.
/GlobalResources/Scripts/dtree/_dtree_inc.asp, line 33
Hvordan ser kaldet til funktionen nu ud, for det lader til at der ikke er noget indhold i den første parameter længere (i din oprindelige kode var værdien "-1")...?
Det lader til at vRoot er en global variabel som mangler at få en valid værdi (som peger på rodelementet i dine data's træ). Kan du finde den og kan du finde ud af hvad der skal til for at du kan hente rodelementer - så kan du nok også finde ud af hvad der skal til for at løse dette nye problem... :)
Aaargh og hulk... Hvorfor, hvorfor, hvorfor.... Jeg er fuldstændig blank hvad det her angår... derfor anskaffede vi et CMS-system. Jeg har trods det fået løst alle problemer indtil nu. Og så står jeg altså bare tilbage med dette: Det er selve: Træstrukturen i administrationsdelen der mangler og det er jo nok det mest essetielle på hele hjemmesiden. Der opretter, retter og sletter vi siderne... Jeg må jo prøve at finde ud af hvor denne vroot er defineret.. Havde bare lige brug for at komme af med lidt galde.... Mange tak for din store tålmodighed.
Det skal du ikke være ked af - problemer/udfordringer er til for at blive løst/taget op... en ny rask søgning skal nok afsløre hvor den root-variabel befinder sig og et hurtigt kig i databasen vil nok hurtigt afsløre hvilken værdi du skal bruge for at referere roden. Ofte er det faktisk -1, så du kan da starte med at udkommentere den if-sætning som overskriver inParentDocId-variablen med vRoot, altså denne linie (ligen unden SQL-sætningen):
If inParentDocId = "-1" Then inParentDocId = vRoot
Det betyder såmænd bare at du skal sætte en apostrof i starten af linien og dermed gøre linien til en kommentar i stedet for en sætning som bliver fortolket af VBScript-fortolkeren. Det gøres ret let, således:
'If inParentDocId = "-1" Then inParentDocId = vRoot
If inRs("ModuleId").Value > 0 Then strIcon = "d.icon.module" vMenuTreeReadURL = inModuleURL End If If inParentDocId = 0 Then strIcon = "d.icon.toplevel" strIconOpen = "d.icon.toplevelOpen" End If If vTrash = strID Then strIcon = "d.icon.trash" strIconOpen = "d.icon.trash" End If
If inRs("ModuleId").Value > 0 Then vMenuTreeReadURL = inRs("TemplateURL").Value
If Not SiteUseFrames Then vMenuTreeReadURL = "default.asp?Docid=1&Tpl=" & vMenuTreeReadURL End If
If InStr(vMenuTreeReadURL, "?") > 0 Then vMenuTreeReadURL = vMenuTreeReadURL & "&" Else vMenuTreeReadURL = vMenuTreeReadURL & "?" End If vMenuTreeReadURL = vMenuTreeReadURL & "lang="&vLangId End If
Set myRs = Server.CreateObject("ADODB.Recordset") myRs.Open strSQL, inConn If Not myRs.EOF And Not myRs.BOF Then GetDStatus= "<font color=\'#008080\'> (" & dID & ":" & myRs("ActiveRevisionStatus").Value & ":" & _ cPx(myRs("PublishCh1").Value, 1) & _ cPx(myRs("PublishCh2").Value, 2) & _ cPx(myRs("PublishCh3").Value, 3) & _ ")</font>" End If myRs.Close Set myRs = Nothing
End Function
Function cPx(vStatus, pg) If vStatus = 1 Then cPx = ""&pg Else cPx = "" End IF End Function %>
'If inParentDocId = "-1" Then inParentDocId = vRoot
til:
If inParentDocId = "-1" Then inParentDocId = 0
altså indkommentere (det modsatte af udkommentere ;-)) linien og udskift vRoot med værdien 0 (nul). Det lader til at 0 bliver brugt i den anden fil og derfor kunne man fristes til at tro, at det er den værdi der angiver at et element ligger i roden...
Det ser ud til at den sidste parameter i kaldet til GetMenuTree, skal være af typen boolean (true eller false) og den er i øjeblikket en streng, så du skal lige have ændret den i kaldet.
Hvad den betyder er lidt uklart, men jeg vil gætte på at det har noget med udgangspunktet for aflæsningen af træstrukturen at gøre og at den derfor skal være true (funktionen bliver kaldt rekursivt og de indlejrede kald til GetMenuTree kalder funktionen med false, hvilket jeg tolker som at det er underelementer til et eksisterende element)...
Der er et eller andet med det oprindelige kald som ikke stemmer overens med den kode der kaldes. Det er som om de to versioner af _dtree_inc.asp ikke er synkroniseret med hinanden og at den kode du bruger, forventer at få fat i noget andet kode end det den rent faktisk får fat i...
Hvis dette forslag ikke fungerer, tror jeg det bliver svært for mig at hjælpe dig, da det virker som om der er lidt rod i systemet (eller noget jeg mangler at få at vide)...
Nej, det giver det samme resultat. Men ved du hvad. Jeg har det efterhånden lidt dårligt med at bruge al din tid på det her. Og jeg er jo ikke til stor hjælp, da jeg ikke ved hvilke informationer du skal bruge. Måske jeg bare skal betale mig ud af det.
Ja, jeg kan da se at det manglende overblik jeg sidder med, ikke giver særlig tilfredsstillende resultater, så det bliver nok svært for mig at hjælpe dig mere uden at det vil invovlere væsentlig mere indsigt i det du sidder og arbejder med... desværre :(
Jeg håber dog du finder en løsning på problemet - snart :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.