Voor school ben ik bezig met het bouwen van een CMS in ASP. Dit doe ik met behulp van 'templates'.
Deze templates bevatten eigelijk de HTML code en dus het hele design van de uiteinderlijke website. Dit alles aangevuld met wat placeholders (zoals <NAVIGATIE> en <MAIN>) welke ik later dus wil vervangen door de uiteindelijke dynamische content.
Nou loop ik alleen tegen een probleem aan. De volgende code gebruik ik op moment:
index.asp (de variabele tmplfile is uiteraard gevuld met het juiste pad en file)
navigatie.asp:
Opzich werkt dit goed, alles wordt getoont, echter op de verkeerde plaats. Zoals je ziet zou de uitvoer van navigatie.asp tussen 123 en 456 moeten komen te staan, dit gebeurt echter niet. De uitvoer van navigatie.asp komt bovenaan het html document te staan, waardoor het design dus niet meer klopt, het gekke is, dat 123 en 456 wel op de goede plek gezet wordt (ditzelfde gebeurt overigens wanneer ik gebruik maak van de functie Replace())
Kan iemand mij uitleggen hoe dit komt en hoe ik dit kan oplossen (eventueel met een andere methode)? Bedankt alvast.
Deze templates bevatten eigelijk de HTML code en dus het hele design van de uiteinderlijke website. Dit alles aangevuld met wat placeholders (zoals <NAVIGATIE> en <MAIN>) welke ik later dus wil vervangen door de uiteindelijke dynamische content.
Nou loop ik alleen tegen een probleem aan. De volgende code gebruik ik op moment:
index.asp (de variabele tmplfile is uiteraard gevuld met het juiste pad en file)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| <!--#include file="navigatie.asp"-->
<%
dim fs, f, InitialString, RegularExpressionObject, ReplacedString
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile(Server.MapPath(tmplfile), 1)
InitialString = f.ReadAll
Set RegularExpressionObject = New RegExp
With RegularExpressionObject
.Pattern = "<NAVIGATIE>"
.IgnoreCase = True
.Global = True
End With
ReplacedString = RegularExpressionObject.Replace(InitialString, "123" & nav() & "456")
Response.Write ReplacedString
Set RegularExpressionObject = nothing
f.Close
Set f=Nothing
Set fs=Nothing
%> |
navigatie.asp:
code:
1
2
3
4
5
6
7
8
9
10
11
| <%
public function nav()
%>
<table width="200" border="0" cellspacing="5" cellpadding="5">
<tr>
<td align="center" class="menu_header">[Dynamische content hier]</td>
</tr>
</table>
<%
End function
%> |
Opzich werkt dit goed, alles wordt getoont, echter op de verkeerde plaats. Zoals je ziet zou de uitvoer van navigatie.asp tussen 123 en 456 moeten komen te staan, dit gebeurt echter niet. De uitvoer van navigatie.asp komt bovenaan het html document te staan, waardoor het design dus niet meer klopt, het gekke is, dat 123 en 456 wel op de goede plek gezet wordt (ditzelfde gebeurt overigens wanneer ik gebruik maak van de functie Replace())
Kan iemand mij uitleggen hoe dit komt en hoe ik dit kan oplossen (eventueel met een andere methode)? Bedankt alvast.