:: O que tem de novo?
1 - Arrancado Variáveis de Sessões deixando o projeto muito mais rápido.
2 - Código Enxuto
3 - Arrancado e Solucionado Problema de Inclusão de Partes Topo Meio e Fim de um Html (Chamadas de ASP dentro de ASP)
Quem tiver alguma dúvida ou quiser participar do código está livre de alterações e discussões:
CLASS_TEMPLATE.ASP
<%
' Versão 2.0 (Unstable)
'
' Classe de Template em ASP
'
' Autor: Leandro da S. B.
' E-mail: lbarbosa@grupo5.com.br
' ICQ: 89433360
' MSN: leo_bs@hotmail.com
'
Class Template
Private CorpoTmp,RegVars,RegVarsValue
Public Sub Registrar(RegNome)
RegVars = split(trim(RegNome),",")
Redim RegVarsValue(ubound(RegVars))
End Sub
Private Sub ErroVar(Tag)
Response.write("<pre>A Tag <#"+Tag+"> Não foi Encontrada!" _
& vbCrlf+"Obs.: A Classe template é Sensível a Letras" _
& "Maiúsculas e Minúsculas.</pre>")
End Sub
Public Property Let ParseVar(VarReg,inString)
i = 0
For Each Itens in RegVars
If (Itens = VarReg) Then
RegVarsValue(i) = inString
End If
i = i + 1
Next
End Property
Public Sub Parse()
Dim Swap
If (Not IsNull(RegVars)) then
Swap = ATaxe(CorpoTmp,RegVarsValue,RegVars)
CorpoTmp = Swap
Else
Response.write("<pre>Registre uma variável antes de utilizar o Parse</pre>")
End If
End Sub
Private Function ATaxe(Conteudo, Vetor, Variaveis)
Dim Tmp, Itens, i
i = 0
For Each Itens in Variaveis
Tmp = Replace(Conteudo,"<#"+Itens+">",Vetor(i))
If (Tmp = Conteudo) Then
ErroVar(Itens)
End If
i = i + 1
Conteudo = Tmp
Next
ATaxe = Conteudo
End Function
Public Property Let ParseLoop(Nome,Variavel,InString)
Partes = split(CorpoTmp, "<#loop "+Nome+">")
Topo = Partes(0)
Meio = Partes(1)
Fim = Partes(2)
Out = ""
For Conteudos=lbound(InString,2) to ubound(InString,2)
Swap = Meio
'Response.write("Campo="+Campos+"<br>")
Indices = 0
For Each Campos in Variavel
If (Not isArray(InString(Indices,Conteudos))) Then
'Response.write("---- "+InString(Indices,Conteudos)+"<BR>")
Tswap = Replace(trim(Swap),"<#"+Campos+">",InString(Indices,Conteudos))
If (trim(Swap) = Tswap) Then
ErroVar(Campos)
End If
Swap = Tswap
Indices = Indices + 1
End If
Next
Out = Out + Tswap
Next
CorpoTmp = (Topo + Out + Fim)
End Property
Public sub ParseIf(Nome,Flag)
Partes = split(trim(CorpoTmp), "<#if "+Nome+">")
If (isArray(Partes) and (Ubound(Partes)>1)) Then
Topo = Partes(0)
Tmp = Partes(1)
Rodape = Partes(2)
If (Flag = true) then
CorpoTmp = (Topo + Tmp + Rodape)
Else
CorpoTmp = (Topo + Rodape)
End If
End If
End Sub
Public Sub Print()
Response.write(CorpoTmp)
Erase RegVars
Erase RegVarsValue
CorpoTmp = ""
End Sub
Public Function LerArquivo(Nome)
Dim FSO, TS, Temp
Const Leitura = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
If (FSO.FileExists(Nome)) then
Set TS = FSO.OpenTexTFile(Nome, Leitura)
Temp = TS.ReadAll
TS.Close()
LerArquivo = Temp
Else
Response.write("<pre>O Caminho do arquivo "+Nome+" está incorreto!</pre>")
End If
End Function
Public Function Arquivo(Nome)
If (CorpoTmp = "") Then
CorpoTmp = trim(LerArquivo(Nome))
Else
CorpoTmp = CorpoTmp + trim(LerArquivo(Nome))
End If
End Function
End Class
%>
DEFAULT.ASP
<!-- #include file="class_template.asp" -->
<%
Dim Titulo, VetName(2),VetValue(2,2)
VetName(0) = "Campo1"
VetValue(0,0) = "leo"
VetValue(0,1) = "lua"
VetValue(0,2) = "li"
VetName(1) = "Campo2"
VetValue(1,0) = "Katia"
VetValue(1,1) = "Taisa"
VetValue(1,2) = "Carla"
VetName(2) = "Campo3"
VetValue(2,0) = "jorge"
VetValue(2,1) = "luiz"
VetValue(2,2) = "roberto"
Set Pagina = new Template
Pagina.Arquivo(Server.MapPath("test.html"))
Pagina.Registrar("Titulo")
Pagina.ParseVar("Titulo") = "Testando Template"
Pagina.ParseLoop("Vetor",VetName) = VetValue
Pagina.ParseIf "SeVerd",true
Pagina.ParseIf "SeFals",false
'Registrando conteúdo de todas as TAGS do Template do file test.html
'e guardando na memória
Pagina.Parse
'Include no Código
%>
<!-- #include file="test1.asp" -->
<%
'Imprimindo no Html
Pagina.Print
%>
TEST.HTML
<Html>
<head>
<title><#Titulo></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
Eu Digo que é
<#if SeVerd>Verdadeiro<#if SeVerd>
<#if SeFals>Falso<#if SeFals>
<table align="center" border="1">
<#loop Vetor>
<tr>
<td>
<h1>Campo1</h1>
</td>
<td>
<h1><#Campo1></h1>
</td>
<td>
<h2>Campo2</h2>
</td>
<td>
<h2><#Campo2></h2>
</td>
<td>
<h3>Campo3</h3>
</td>
<td>
<h3><#Campo3></h3>
</td>
</tr>
<#loop Vetor>
</table>
<center>
TEST1.ASP
<%
Pagina.Arquivo(Server.MapPath("test1.html"))
Pagina.Registrar("texto")
Pagina.ParseVar("texto") = "Olha que lega vc pode ter include dentro de tags de templates. :]"
Pagina.Parse
%>
TEST1.HTML
<marquee><#texto></marquee>
</center>
</body>
</html>
Para quem não sabe eu utilizo essa classe aos meus projetos que tem banco de dados e funciona perfeitamente... :] grato...
Outro dia passo ae... denovo ;]



Postagens
Não informado
