Tarkan.. blz
É o seguinte vc teria que jogar todos os dados em um vetor e depois desse vetor atribuir em uma SESSION
e usar a propriedade:
.ParseLoop("nome_do_vetor_sesssion","campo1")
.ParseLoop("nome_do_vetor_session","campo2")
.ParseLoop("nome_do_vetor_session","campo3")
.ParseLoop("nome_do_vetor_session","campo4")
.Parse
.Print
Eu ainda estou analisando isso...
- Fórum WMO
- → Viewing Profile: Posts: lbarbosa
Community Stats
- Group Usuários
- Active Posts 5
- Profile Views 376
- Member Title Novato no fórum
- Age Age Unknown
- Birthday Birthday Unknown
-
Sexo
Não informado
0
Neutral
User Tools
Friends
lbarbosa hasn't added any friends yet.
Latest Visitors
Posts I've Made
In Topic: Sistema De Templates Em Asp
04/04/2004, 14:57
In Topic: Sistema De Templates Em Asp
04/04/2004, 13:02
* Bom eu tive que resolver o problema :] portanto consegui realizar a segunda versão do nosso programa. Agora ele funciona em um laço de repetição e com IFS dentro do template :] pouco a pouco vamos melhorando a classe.
VERSION 1.1 Beta CLASS_TEMPLATE Autor: lbarbosa@grupo5.com.br
* class_template.asp
<%
'Classe de Template v1.1 Beta
'
' Programador: Leandro da S. B.
' E-mail: lbarbosa@grupo5.com.br
' Empresa: G5 Corporation
'
' Exemplo: (Não esquecer de carregar o arquivo da classe)
' (ASP)
' session("Titulo") = "Eu sou Demais? hehehe"
' Set Exemplo = new Template
' Exemplo.Arquivo(Server.MapPath("test.html"))
' Exemplo.Registrar("Titulo")
' Exemplo.Parse
' Exemplo.Print
'
' (HTML) teste.html
' Eu Digo : <#Titulo>
' Ps.: Toda variável do template registrada terá que está cadastrada por sessão como é o caso do título
Class Template
Private CorpoTmp, RegVars
Public Sub Registrar(RegNome)
RegVars = split(RegNome,",")
End Sub
Private Function ATaxe(Conteudo, Variaveis)
Dim Tmp, Itens
For Each Itens in Variaveis
Tmp = Replace(Conteudo,"<#"+Itens+">",Session(Itens))
Conteudo = Tmp
Session.Contents.Remove(Itens)
Next
ATaxe = Conteudo
End Function
Public Sub Parse()
CorpoTmp = ATaxe(CorpoTmp,RegVars)
End Sub
Public sub ParseLoop(Nome,Variaveis)
Dim Indices, Tmp, VetTmp, Topo, Rodape, Aux, NomeVars, NVars
Partes = split(CorpoTmp, "<#loop "+Nome+">")
Topo = Partes(0)
Tmp = Partes(1)
Rodape = Partes(2)
VetTmp = Session(Nome)
Session.Contents.Remove(Nome)
Aux = ""
For Each Indices in VetTmp
If (Indices <> "") then
NVars = split(Variaveis,",")
For Each NomeVars in NVars
Aux = Aux + Replace(Tmp,"<#"+NomeVars+">",Indices)
Next
End if
Next
CorpoTmp = (Topo + Aux + Rodape)
End Sub
Public sub ParseIf(Nome,Flag)
Dim Partes, Topo, Tmp, Rodape
Partes = split(CorpoTmp, "<#if "+Nome+">")
Topo = Partes(0)
Tmp = Partes(1)
Rodape = Partes(2)
If (Flag = true) then
CorpoTmp = (Topo + Tmp + Rodape)
Else
CorpoTmp = (Topo + Rodape)
End If
End Sub
Public Sub Print()
Response.Write(CorpoTmp)
End Sub
Public Sub Arquivo(Nome)
Dim FSO, TS
Const Leitura = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TS = FSO.OpenTexTFile(Nome, Leitura)
CorpoTmp = TS.ReadAll
TS.Close()
End Sub
End Class
%>
* 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="2">
<tr>
<#loop Vetor>
<td>
<h1><#Conteudo></h1>
</td>
<#loop Vetor>
</tr>
</table>
</body>
</html>
* default.asp
<!-- #include file="class_template.asp" -->
<%
Dim Conteudo, Titulo, ID, Vet(3)
Session("Titulo") = "Testando Template"
Vet(1) = "Ótimo"
Vet(2) = "Bom"
Vet(3) = "Demais"
session("Vetor") = Vet
session("Conteudo") = "Eu sou eu"
Set Test = new Template
Test.Arquivo(Server.MapPath("test.html"))
Test.Registrar("Titulo,Conteudo")
Test.ParseLoop "Vetor","Conteudo"
Test.ParseIf "SeVerd",true
Test.ParseIf "SeFals",false
Test.Parse
Test.Print
%>
PS.: Agora o desafio é fazer com que a classe template não trabalhe via SESSÂO por que isso torna a performace lenta, eu acho que tem um jeito de transportar uma variável local do default.asp referenciando a class_template.asp se alguém tiver a dica para resolver esse problema ou relatar erros.. por favor não hesite em contactar ou aquí no forum ou no meu email lbarbosa@grupo5.com.br
Fuuuuuiiiii próxima versão tou aí
Anexo a versão mais atualizada! v1.1 Beta
VERSION 1.1 Beta CLASS_TEMPLATE Autor: lbarbosa@grupo5.com.br
* class_template.asp
<%
'Classe de Template v1.1 Beta
'
' Programador: Leandro da S. B.
' E-mail: lbarbosa@grupo5.com.br
' Empresa: G5 Corporation
'
' Exemplo: (Não esquecer de carregar o arquivo da classe)
' (ASP)
' session("Titulo") = "Eu sou Demais? hehehe"
' Set Exemplo = new Template
' Exemplo.Arquivo(Server.MapPath("test.html"))
' Exemplo.Registrar("Titulo")
' Exemplo.Parse
' Exemplo.Print
'
' (HTML) teste.html
' Eu Digo : <#Titulo>
' Ps.: Toda variável do template registrada terá que está cadastrada por sessão como é o caso do título
Class Template
Private CorpoTmp, RegVars
Public Sub Registrar(RegNome)
RegVars = split(RegNome,",")
End Sub
Private Function ATaxe(Conteudo, Variaveis)
Dim Tmp, Itens
For Each Itens in Variaveis
Tmp = Replace(Conteudo,"<#"+Itens+">",Session(Itens))
Conteudo = Tmp
Session.Contents.Remove(Itens)
Next
ATaxe = Conteudo
End Function
Public Sub Parse()
CorpoTmp = ATaxe(CorpoTmp,RegVars)
End Sub
Public sub ParseLoop(Nome,Variaveis)
Dim Indices, Tmp, VetTmp, Topo, Rodape, Aux, NomeVars, NVars
Partes = split(CorpoTmp, "<#loop "+Nome+">")
Topo = Partes(0)
Tmp = Partes(1)
Rodape = Partes(2)
VetTmp = Session(Nome)
Session.Contents.Remove(Nome)
Aux = ""
For Each Indices in VetTmp
If (Indices <> "") then
NVars = split(Variaveis,",")
For Each NomeVars in NVars
Aux = Aux + Replace(Tmp,"<#"+NomeVars+">",Indices)
Next
End if
Next
CorpoTmp = (Topo + Aux + Rodape)
End Sub
Public sub ParseIf(Nome,Flag)
Dim Partes, Topo, Tmp, Rodape
Partes = split(CorpoTmp, "<#if "+Nome+">")
Topo = Partes(0)
Tmp = Partes(1)
Rodape = Partes(2)
If (Flag = true) then
CorpoTmp = (Topo + Tmp + Rodape)
Else
CorpoTmp = (Topo + Rodape)
End If
End Sub
Public Sub Print()
Response.Write(CorpoTmp)
End Sub
Public Sub Arquivo(Nome)
Dim FSO, TS
Const Leitura = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TS = FSO.OpenTexTFile(Nome, Leitura)
CorpoTmp = TS.ReadAll
TS.Close()
End Sub
End Class
%>
* 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="2">
<tr>
<#loop Vetor>
<td>
<h1><#Conteudo></h1>
</td>
<#loop Vetor>
</tr>
</table>
</body>
</html>
* default.asp
<!-- #include file="class_template.asp" -->
<%
Dim Conteudo, Titulo, ID, Vet(3)
Session("Titulo") = "Testando Template"
Vet(1) = "Ótimo"
Vet(2) = "Bom"
Vet(3) = "Demais"
session("Vetor") = Vet
session("Conteudo") = "Eu sou eu"
Set Test = new Template
Test.Arquivo(Server.MapPath("test.html"))
Test.Registrar("Titulo,Conteudo")
Test.ParseLoop "Vetor","Conteudo"
Test.ParseIf "SeVerd",true
Test.ParseIf "SeFals",false
Test.Parse
Test.Print
%>
PS.: Agora o desafio é fazer com que a classe template não trabalhe via SESSÂO por que isso torna a performace lenta, eu acho que tem um jeito de transportar uma variável local do default.asp referenciando a class_template.asp se alguém tiver a dica para resolver esse problema ou relatar erros.. por favor não hesite em contactar ou aquí no forum ou no meu email lbarbosa@grupo5.com.br
Fuuuuuiiiii próxima versão tou aí
Anexo a versão mais atualizada! v1.1 Beta
- Fórum WMO
- → Viewing Profile: Posts: lbarbosa
- Privacy Policy
- Regras ·



Postagens