Include-filer i asp, hur de används
Förord
Include-filer är utan tvekan ett fantastiskt smidigt verktyg för att strukturera din webbsajt. Genom smart användning kan du bland annat:- Göra centrala uppdateringar i din sajts layout.
- Minimera risken för bortglömda sluttaggar och dålig html.
- Återanvända din kod.
Innehåll
»»
»
»
»
»
»
»
»
Skillnaden mellan ”file” och ”virtual”
Som du säkert vet kan du skapa undermappar till din sajt på två sätt i Internet Information Server (IIS). Antingen genom att skappa en fysisk mapp direkt där den ska vara, eller genom att lägga upp en virtuell mapp i IIS Admin. I det senare fallet kan mappen fysiskt ligga i stort sett var som helst, men den kommer att bete sig som om den ligger på den plats du angett.”File” används när du vill skriva in en relativ sökväg som matchar strukturen på hårddisken och utgår från den plats där den inkluderande filen ligger. Till exempel:
“Virtual” används när du vill skriva en virtuell sökväg som matchar den mappstruktur du ser när du surfar in på datorn. Du kan då utgå från roten på din websajt. Till exempel:
Vad bör filerna ha för filändelse?
Döp filerna ”.asp”.Många väljer att döpa sina filer till ”.inc” för att särskilja dem från sina vanliga asp-filer. Tanken är god, men säkerheten är sämre. Om du till exempel gjort en fil med funktioner som hanterar säkerheten på sajten och döper den till ”security.inc” är det möjligt att läsa den direkt i Internet Explorer (IE). Det räcker med att någon vet att filen finns för att han eller hon ska kunna läsa exakt hur du lagt upp säkerhetsrutinerna. IIS kommer nämligen att behandla den som en vanlig textfil och returnera vad som står i den, rakt av, till besökaren. Heter filen däremot ”security.asp” kommer IIS att, som vanligt, tolka asp-koden och returnera resultatet, inte källkoden.
För att skilja filerna från dina övriga asp-filer bör du istället lägga dem i en egen mapp. Eventuellt döpa dem till ”security.inc.asp” eller liknande.
Tänk på att göra en smart mappstruktur
Hur du lägger upp dina mappar är enormt viktigt när du arbetar med include-filer. Om den inkluderade filen innehåller en -tag till exempel måste du vara säker på att sökvägen till bilden är den samma för varje sida. Det enklaste sättet är att helt enkelt dela upp sajten i underkataloger och sedan vara sträng med att hålla alla sidor i sina underkataloger.Så här skulle man till exempel kunna dela upp mappstrukturen för en miniversion av pellesoft:
- include
- layout
- functions
- images
- start
- forum
- ompellesoft
Vi delar upp include-mappen för att kunna skilja på det som är strikt layoutrelaterat och det som inte är det. I functions-mappen kanske vi lägger en asp-funktion för datumkonvertering eller liknande. Det är mycket möjligt att man dessutom skulle kunna tänka sig ett otal uppdelningar av images-mappen också. Bilder är alltid svåra att strukturera.
Vidare har vi valt att göra en mapp för varje sektion av sajten. Även startsidan. Detta innebär att besökaren måste skickas vidare till start-mappen när han eller hon kommer till sidan första gången. Vi löser detta antingen genom att göra en Response.Redirect från roten, eller att använda oss av ett frameset.
Gör en formmall för din sida
OK. Så du har börjat på ett nytt webbprojekt och ska göra den första sidan. Nu gör du en komplett sida med all formgivning, menyer, etc, men ingen text. Sedan klipper du ut följande sektioner:1. Från början av sidan till precis innan ”</head>”.
2. Från och med ”</head>” till den punkt där du börjar skriva in brödtext.
3. Från och med slutet på brödtexten till slutet på sidan.
De olika styckena klistrar du in i varsin fil och döper dem till något passande namn. Till exempel ”page_head.asp”, ”page_body.asp” och ”page_end.asp”.
Spara sedan alla tre filerna i mappen ”include/layout”.
Anledningen till att vi delar upp filerna i en head och en body är att vi kanske vill kunna lägga ett script, stylesheet eller liknande på en sida, och då är det bra att kunna göra det innanför <head>-taggen.
Nu kan vi snabbt skapa en sida i start-mappen. Koden för den bör se ut såhär:
Hej och välkommen till pellesoft!
Grattis! Du har just skapat en formmall för din sida och du kan nu enkelt skapa nya sidor som följer den satta layouten med bara tre rader kod.
Skicka parametrar till dina filer
Nu ska vi anpassa layouten litegrann. I det här exemplet ska vi göra så att titeln på sidan varierar från sida till sida.Du kan inte skicka parametrar till dina include-filer i form av query strings eller liknande, men vad du däremot kan göra är att använda dig av variabler.
Vi ändrar koden på vår startsida så att den ser ut såhär:
<%
Dim incStrPageTitle
incStrPageTitle = “Startsida”
%>
Hej och välkommen till pellesoft!
Vad vi gör är att vi deklarerar en variabel som heter incStrPageTitle. Ett ganska krångligt namn, men vi slipper riskera att blanda ihop variabeln med eventuella variabler som vi senare använder på sidan. Hursomhelst ger vi incStrPageTitle värdet ”Startsida”.
Öppna sedan ”page_head.asp” och leta reda på <title>-taggen. Ändra den sedan så att den ser ut på följande vis:
...
pellesoft.nu - <%= incStrPageTitle %>
...
När du sedan öppnar sedan i din browser kommer titeln på sidan att vara ”pellesoft.nu – Startsida”.
Avancerade formmallar - Meny
Nästa steg skulle kunna vara att göra menyn anpassad efter var vi befinner oss på sajten. Vi kanske vill markera vilken sektion vi är inne på, eller visa en undermeny. I pseudokod skulle det se ut så här:
Startsida
If plats = ”startsida” then
Skriv ut undermeny
...
End if
Forum
If plats = ”forum” then
Skriv ut undermeny
...
End if
Ompellesoft
If plats = ”ompellesoft” then
Skriv ut undermeny
...
End if
För att veta på vilken sida vi är kan vi antingen sätta en variabel i stil med incStrPart, eller så kan vi låta include-filen använda sig av Request.ServerVariables("PATH_INFO") och titta efter i vilken undermapp vi befinner oss.
Avancerade formmallar – Rubriker, etc.
I och med att VBScript är objektorienterat kan vi också skapa en rutin för att skriva ut HTML åt oss. Detta kan vara mycket användbart om vi till exempel vill formattera text på ett sätt som ett stylesheet inte klarar av.Antag att rubrikerna på vår sajt ska visas med en liten bild till vänster, stor text och sedan en färgglad linje undertill. Vi kan enkelt skapa en rutin för att skriva ut detta, vilket gör att vi dels kan spara tid, och om vi någon gång vill ändra layouten så uppdaterar vi bara en enda fil. Exempel:
<%
Sub printHeading(strHeading)
Response.Write(“”)
Response.Write(“ ”)
Response.Write(“” & strHeading & “ ”)
Response.Write(“ ”)
Response.Write(“ ”)
Response.Write(“
”)
End Sub
%>
Den här koden sparar vi antingen i en separat fil som vi sedan inkluderar i ”page_head.asp”, eller så lägger vi koden direkt i ”page_head.asp”. Personligen skulle jag välja en separat fil.
För att använda funktionen ser vi bara till att filen är inkluderad på den sida vi arbetar med. För att få vår rubrik utskriven på sidan skriver vi sedan bara:
<% printHeading(”Här är en rubrik”) %>
Någonting som är värt att titta på är att vi, som rutinen ser ut nu, kan referera till bilder som ligger under den mapp där vi befinner oss. Vi kan altså enkelt ha olika bilder beroende på var på sajten vi är.
Andra funktioner som kan vara bra att ha
Genom att bygga upp ett litet kodbibliotek kan du spara ett otal funktioner och återanvända dem för olika projekt. Till exempel är det inte alltid webbservern har Svenskt datumformat som standard. Det åtgärdar vi snabbt med följande funktion:
<%
Function SvensktDatum(inputDate)
Dim returnDate
returnDate = DatePart(”yyyy”, inputDate) & ”-” & DatePart(”mm”, inputDate) & ”-” & DatePart(”dd”, inputDate)
SvensktDatum = returnDate
End Function
%>
Den här koden vore lämplig att spara i, till exempel ”include/functions”.
0 Kommentarer