Templates in ASP

Pagina: 1
Acties:

  • Tom
  • Registratie: Juni 1999
  • Niet online
Ik ben op zoek naar een goed template-systeem voor ASP, ik heb deze gevonden:
http://www.aspemporium.com/aspEmporium/examples/HTMLTemplate_class.asp

Maar er zijn vast betere... wie kan mij een goed template-systeempje aanraden?

  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 16-09 11:38
ik zoek ze ook, dus gebruik ik dit lege topic even,

iemand met wat leuke sites/voorbeeldjes?

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Hier is mijn zelfgeschreven Template Class.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<%
'******************************************************
' CTemplate versie 2.1
' Nedconcepts 2001 by Marcel Vogel (DiDio)
'
' Change History:
' 20 Juni 2001 - Added ClearTags Method
' 10 Juni 2001 - Versie 2.0
'******************************************************

Class CTemplate
    Private m_intSiteID
    Private m_intDevice
    Private m_intOutput
    Private m_strFilename
    Private m_blnUseLooping
    Private m_strTemplate
    Private m_strClearTagMessage
    
    Private m_strTemp
    Private m_strTemplateTop
    Private m_strTemplateMid
    Private m_strTemplateEnd

    Public Property Let SiteID(ByVal varSiteID)
        m_intSiteID = varSiteID
    End Property

    Public Property Let Device(ByVal varDevice)
        m_intDevice = varDevice
    End Property

    Public Property Let Output(ByVal varOutput)
        m_intOutput = varOutput
    End Property

    Public Property Let Filename(ByVal varFilename)
        m_strFilename = varFilename
    End Property

    Public Property Let UseLooping(ByVal varUseLooping)
        m_blnUseLooping = varUseLooping
    End Property

    Public Property Let Template(ByVal varTemplate)
        m_strTemplate = varTemplate
        Call ReadTemplate()
    End Property

    Public Property Let ClearTagMessage(ByVal varClearTagMessage)
        m_strClearTagMessage = varClearTagMessage
    End Property

    Public Sub Class_Initialize()
        m_intDevice = 1
        m_intOutput = 1
        m_blnUseLooping = False
        m_strClearTagMessage = ""
    End Sub

    Public Sub Data(ByVal varTag, ByVal varData)
        If m_blnUseLooping = True Then
            If Instr(1, m_strTemplateMid, varTag) = 0 Then
                m_strTemplateTop = Replace(m_strTemplateTop, varTag, varData)
                m_strTemplateEnd = Replace(m_strTemplateEnd, varTag, varData)
            Else
                m_strTemp = Replace(m_strTemp, varTag, varData)
            End If
        Else
            m_strTemplate = Replace(m_strTemplate, varTag, varData)
        End If
    End Sub
    
    Public Sub StartLooping()
        m_strTemp = m_strTemplateMid
    End Sub

    Public Sub Copy()
        m_strTemp = m_strTemp & m_strTemplateMid
    End Sub

    Public Sub EndLooping()
        m_strTemplateMid = m_strTemp
        m_strTemplate = m_strTemplateTop & m_strTemplateMid & m_strTemplateEnd
    End Sub

    Public Function WriteTemplate()
        Dim objFileSystem
        Dim objFile
        
        Select Case m_intOutput
            Case 1
                Response.Write m_strTemplate
            Case 2
                WriteTemplate = m_strTemplate
            Case 3
                Set objFileSystem = CreateObject("Scripting.FileSystemObject")
                Set objFile = objFileSystem.CreateTextFile(m_strFilename, True)
                objFile.WriteLine(m_strTemplate)
                objFile.Close
            Case Else
                Response.Write "error!, wrong output specified."
                Exit Function
        End Select
    End Function

    Public Sub ClearTags()
        Dim objRegEx
        
        Set objRegEx = New RegExp
        objRegEx.Pattern = "#[^#]*#"
        objRegEx.Global = True
        m_strTemplate = objRegEx.Replace(m_strTemplate, m_strClearTagMessage)
        Set objRegEx = Nothing
    End Sub
    
    Private Sub ReadTemplate()
        Dim objTemplate
        Dim objFileSystem
        Dim objConn, objCmd, objRec
        Dim objHttp
        
        Select Case m_intDevice
            Case 1
                Set objFileSystem = CreateObject("Scripting.FileSystemObject")
                Set objTemplate = objFileSystem.OpenTextFile(m_strTemplate, 1, False, 0)
                m_strTemplate = objTemplate.ReadAll
                objTemplate.Close
                Set objTemplate = Nothing
                Set objFileSystem = Nothing
            Case 2
                Set objConn = CreateObject("ADODB.Connection")
                objConn.Open CONNECTION
                Set objCmd = CreateObject("ADODB.Command")
                objCmd.ActiveConnection = objConn
                objCmd.CommandType = adCmdStoredProc
                objCmd.CommandText = "spTemplate_ReadTemplate"
                objCmd.Parameters.Append objCmd.CreateParameter("SiteID", adInteger, adParamInput, 4, m_intSiteID)
                objCmd.Parameters.Append objCmd.CreateParameter("TemplateName", adVarchar, adParamInput, 100, m_strTemplate)
                Set objRec = objCmd.Execute
                Set objCmd = Nothing
                If objRec("StatusID") = 0 Then
                    m_strTemplate = objRec("TemplateCode")
                Else
                    m_strTemplate = objRec("StatusCode")
                End If
                objRec.Close
                Set objRec = Nothing
                objConn.Close
                Set objConn = Nothing
            Case 3
                Set objHttp = New CHttp
                objHttp.Program = "XMLHTTP"
                objHttp.Method = "GET"
                objHttp.Send m_strTemplate
                m_strTemplate = objHttp.ResponseText
                Set objHttp = Nothing
            Case 4
                m_strTemplate = m_strTemplate
            Case Else
                Response.Write "error!, wrong device specified."
                Exit Sub
        End Select
        
        If m_blnUseLooping = True Then
            Call SplitTemplate()
        End If
    End Sub

    Private Sub SplitTemplate()
        Dim intStart
        Dim intStop
        
        intStart = Instr(1, m_strTemplate, "[%") + 2
        intStop = Instr(1, m_strTemplate, "%]") - 2
        m_strTemplateTop = Left(m_strTemplate, Instr(1, m_strTemplate, "[%") - 2)
        m_strTemplateMid = Mid(m_strTemplate, intStart, intStop - intStart)
        m_strTemplateEnd = Right(m_strTemplate, Len(m_strTemplate) - Instr(1, m_strTemplate, "%]") - 1)
    End Sub

    Public Sub Class_Terminate()
    End Sub
End Class
%>

weinig tot niks..


  • pim
  • Registratie: Juli 2001
  • Laatst online: 10:09

pim

Script request, slotje!! :( :)

  • KoeKk
  • Registratie: September 2000
  • Laatst online: 14-09 19:20
Bij [url:http://www.sumatrasolutions.com/]SumatraSolutions[/url] hebben ze een TemplateParser in diverse smaken (ActiveX, JScript, Java) die werkt zoals de overbekende FastTemplates.

Ik heb deze nog nooit gebruikt in een productie website dus ik kan niet echt iets zeggen over de snelheid ofzow..

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Zelf maken natuurlijk, weet je namelijk wat het precies doet. >:)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Ik heb zelf ook nog eens zoiets gemaakt. Dus ff gezocht en hier neergezet. Je ziet er maar mee wat je ermee doet. Het is wel nog nooit gebruikt in een productie-omgeving dus ik kan geen garantie geven dat het helemaal goed werkt.

Misschien is het een goed idee over te stappen op een XML oplossing en XSL als templates te gebruiken?
Pagina: 1