försöker jag få {mainpage} att fungera genom att mainpage är en funktion. Problemet är att jag har en include längst upp på sidan med alla funktioner. Om man nu skulle lägga in i reg.exp att include filen ska läggas in också.. kommer sidan gå mycket segare. Fast kommer man då om man har tex en funktion för menyn och mainpage i samma include fil laddas 2 gånger såsom den gör nu?
Om du kollar in http://voigt.se/ing2_test/ så när jag kör 1 st include fil melland <BODY> & <HEAD> taggen så tycker jag iallafall inte den funktionen ska köras.. men med resten av koden som finns i tråden ovan. Så laddas funktionen i include filen... vilket är konstigt tycker jag.
<!-- #include file="vpanel_scripts/functions.asp" -->
<HTML>
<HEAD>
<TITLE><%=title%> - powered by vPanel</TITLE>
<link rel="stylesheet" type="text/css" href="<%= DIRECTORY & cssfile%>">
<meta name="keywords" content="<%=metakeyword%>">
<meta name="description" content="<%=MetaDescript%>">
</HEAD>
<%
Set strconn = CreateObject("Scripting.FileSystemObject")
Function Free(f2)
Set objRegExp = New regexp : objRegExp.Global = true : objRegExp.IgnoreCase = true
objRegExp.Pattern = "mainpage}"
f2 = objRegExp.Replace(f2,mainpage())
free = f2
End Function
Set RecSet = strconn.OpenTextFile(server.mappath(DIRECTORY & "default.tpl"))
f1 = recset.readall
recset.close : set recset = nothing
arrtext = split(f1,"{")
for i = 0 to ubound(arrtext)
response.write free(arrtext(i))
next
' Close down the connection
set strconn = nothing
%>
Inte den bästa koden men ändå i vpanel_scripts/functions.asp har jag alla funktioner som används till sidan.
men med den kod som är ovan så gör sidan så att koden körs i även den fil jag har inkluderat i filen. dvs mainpage() funktionen körs på 2 ställen.. vilket jag inte vill. frågan är hur man ska placera all kod för att den ska bara köras en gång..
Har nog aldrig varit bra på att förklara till dig @nders :e god jul får du iallafall ha :bire :birp
Det är det det roliga är... jag använder bara mainpage() en gång i functions.asp:
function mainpage()
Set Obj = CreateObject("Scripting.FileSystemObject")
If Obj.FileExists(Server.MapPath("pages/" & Trim(LCase(Request.QueryString("goto"))) & ".asp")) Then
Server.Execute "pages/" & Trim(LCase(Request.QueryString("goto"))) & ".asp"
Elseif Obj.FileExists(Server.MapPath("browser/htmlfiles/" & Trim(LCase(Request.QueryString("location"))))) Then
Server.Execute "browser/htmlfiles/" & Trim(LCase(Request.QueryString("location")))
else
Server.execute "pages/news.asp"
End if
Set Obj = Nothing
end function
Har en fråga ang den raden... eller hur så körs inte funktionen där utan den kallas som den ska. tycker det är konstigt att en funktion kör sig själv utan att ha blivit kallad på rätt ställe.
Jag kan ingenting om regexp, men jag hade gissat på att den körs där. Varför använder du regexp för att replacea i den funktionen? Jag hade använt "vanliga" replace, och satt citationstecken runt mainpage().
Om inte du kan det så kan ingen :P om du själv testar koden så ser du resultatet... vilket är extremt konstigt... tror det kan hjälpas med en sub istället?
Den enda skillnaden på en sub och en funktion är att suben inte kan returnera något, i övrigt är det samma sak. Så; funkar det inte när du har det i en funktion, då funkar det inte i en sub heller.
268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e