+3

Classe de template muito simples e facil de utilizar.

criado por Sergio A. Pohlmann .'. em 29/10/2009 9:46am
Primeiro, obviaremos a parte da tabela, e faremos somente o restante do site:

Arquivo: templates/teste.html

<!-- begin: header -->
<html>
  <body>
    <center>
      <title> {titulo} </title>
      <h1> {nome} </h1>
      <h2> {autor} </h2>
      <hr />
	  
<!-- end:  header -->
	

<!-- begin: end -->
	</center>
  </body>
</html>
<!-- end:  end -->



Como vemos, não há nada de raro na página. HTML puro, só que com duas observações para nosso sistema:
Primeiro, existem dois blocos bem definidos: “header” e “end”. Eles foram criados para separar o código em partes, para que possamos reaproveitar eventuais blocos a posteriori. Cada bloco deve estar definido com os comentarios correspondentes “<!—begin: bloco -->” e “<!—end: bloco -->”.

Segundo, estamos utilizando variáveis dentro de nosso HTML. Isto se faz através de chaves, como em
“<title> {titulo} </title>”
em que “titulo” é a nossa variável. (preferimos colocar em português aqui, no template, só para que fique mais claro, no momento de atribuir as variáveis no php.

Agora vamos ao novo PHP com nossa classe de template:

Arquivo novo.php:

<?php

// Starting Template
include_once ("include/Y_Template.class.php"); 
$T = new Y_Template( "templates/teste.html" );

$title="Nome do Site";
$name="Empresa XXXXX";
$author="Sergio Pohlmann &lt;sergio@ycube.net&gt;";

$T->Set( 'titulo', $title );
$T->Set( 'nome', $name );
$T->Set( 'autor', $author );

$T->Show( 'header' );
$T->Show( 'end' );

?>

Podemos entendê-lo?

Nas primeiras linhas, carregamos a classe (usando “include_once”) e dizemos onde se encontra o template que usaremos.
O objeto “$T” será o que conterá o template, e através de seus métodos é que faremos “o serviço”. Neste artigo, vamos utilizar somente os métodos “Set” que permite definir variaveis para o HTML, e o “Show”, que se encarrega de mostrar um bloco do template.

As próximas três linhas do código definem as variáveis do php (igual ao arquivo convencional que tínhamos”

Agora vem o doce: Precisamos definir as variaveis para o template (as variáveis que serão usadas no template, junto ao HTML). Como fazemos? Através do método “Set”, que nos permite definir as variáveis de template.
Assim,

$T->Set( 'titulo', $title )

diz que a variável “titulo” usada em HTML conterá o mesmo que a variável “$title” do nosso programa. O mesmo passa com as outras variáveis (“nome” e “autor”);

Uma vez que as variáveis já estão definidas, é só mostrar o bloco que queremos:

$T->Show( 'header' );
$T->Show( 'end' );

O “Show( ‘header’ )” mostra o primeiro bloco, e o “Show( ‘end’ )” mostra o último. A única diferrença conceitual entre os dois é que o segundo bloco não contém variáveis.
Compare as duas versões e diga se a nova versão nãoé muito mais clara e intuitiva para entender.
Além disto, você pode dar direitos de acesso no arquivo template para um webmaster, e não se preocupar com o seu código. Ele não necessitará entender php e você não terá que se preocupar com detalhes HTML.

Agora vamos incluir o loop que trabalha com a tabelinha:

Incluimos, no arquivo “novo.php”:
$T->Show( "table_start" );

$client=array("Joao","Pedro","Augusto");
$phone=array("09878 877776","123927363","0092839891");

for( $x=0; $x<count($client); $x++ ){
	
	$T->Set( "cliente", $client[$x] );
	$T->Set( "telefone", $phone[$x] );
	
	$T->Show( "table_line");
}

$T->Show( "table_end");


E no arquivo “templates/test.html”:

	
<!-- begin: table_start -->
      <table border=1>
	  <tr>
	  	<th>Cliente</th>
		<th>Telefone</th>
	  </tr>
<!-- end:   table_start -->
		
		
<!-- begin: table_line -->
	  <tr>
	    <td> {cliente} </td>
	    <td> {telefone} </td>
	  </tr>
<!-- end:   table_line -->
		
		
<!-- begin: table_end -->
      </table> 
<!-- end:   table_end -->

O que fizemos aquí foi:
Mostrar o inicio da tabela (com “Show”).
Atribuir os arrays (igual como havíamos feito na versão convencional).
Atribuir as variáveis para o template (via “Set”) e mostra-las (com “Show”);
Mostrar o final da tabela (“Show” outra vez).

Comentários:

Mostrando 1 - 2 de 2 comentários
thiago disse:
07/02/2010 3:42pm (~14 anos atrás)

Recomendadisimo este Scritpt super simples so un arquivo sim (So un arquivo) nada que ver con Smarty etc

Eu o uso ja faz un tempo en guosto muinto agora en un projecto de investigação aplicada bastante grande con soporte a i18n fornecido por Y_Template
Mais info aqui: http://gurskiide.blogspot.com
16/12/2009 3:13am (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)