Jump to content


Photo

Classe De Template V2.0


  • Faça o login para participar
4 replies to this topic

#1 lbarbosa

lbarbosa

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 04/05/2004, 00:32

Como venho, novamente trago novidades, nossa classe de template ainda mais séria e com os problemas solucionados da versão 1.5

:: 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 ;]
' nome: Leandro da Silveira Barbosa
' profissão: G5 // Internet (desenvolvedor web)

#2 ionhollfman

ionhollfman

    Turista

  • Usuários
  • 57 posts
  • Sexo:Não informado
  • Localidade:São Paulo
  • Interesses:Bussiness

Posted 15/06/2004, 22:41

to afim de me basear na sua lôgica mas to fazendo o código diferente, sem cópias, vou colcoar uma referência a vc no about do meu programa, ok?

#3 vrsbueno

vrsbueno

    Ativo

  • Usuários
  • 351 posts
  • Sexo:Não informado
  • Localidade:Taubaté-SP

Posted 17/06/2004, 14:34

uma pergunta básica: Oq eh isso? <_<

#4 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 17/06/2004, 14:48

uma pergunta básica: Oq eh isso? <_<

é uma classe em asp para facilitar o trabalho com templates em html.

ou seja voce monta uma template em html, e seu asp le esse html e substitui os campos (#campos) pelo dados correspondente...

é assim que funcionam os blogs.
www.andrewsmedina.com.br

#5 vrsbueno

vrsbueno

    Ativo

  • Usuários
  • 351 posts
  • Sexo:Não informado
  • Localidade:Taubaté-SP

Posted 21/06/2004, 14:24

hmmmm dahora...

vlw.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq