Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2007, 10:46
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: php samrty y template

Bienvenido al Foro, bueno Smarty es un Clase para PHP que nos permite manejar Templates de Impresion (digo de Impresion, por que puede ser un documento HTML, un XML, etc ...)

Con Smarty, podemos separar el contenido de la Programacion. Un Ejemplo muy directo de Smarty es el Siguiente.

index.php
Código PHP:
<?
// Incluimos Clase Smarty
require 'libs/Smarty.class.php';


// Obtenemos algunos Datos y Variables
$year date("Y",time());
$ip $_SERVER['REMOTE_ADDR'];
$resultado = ((25*25)/104 +2121);

// Imprimimos Template
// Instanciamos Template
$smarty = new Smarty;
// Entregamos Variables
$smarty->assign("ip",$ip);
$smarty->assign("year",$year);
$smarty->assign("matematica",$resultado);
// Finalmente Imprimimos Template
$smarty->display("home.tpl");
?>]
home.tpl
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
Hola a todos,<strong> bienvenido </strong>a esta pagina que no contiene nada, tu IP es : {$ip } y podemos ver que estamos en el A&ntilde;o {$year} , una operacion matematica nos dio el resultado {$matematica}
</body>
</html> 
Como ves, en index.php nos dedicamos a operar, extraer datos, etc etc ... luego la informacion se la enviamos al template (a la clase del smarty) y finalmente mandamos a imprimir el template.

Como puedes ver, la ventaja de esto, es que la programacion esta separada del diseño, el diseño es home.tpl, este puede ser una simple hoja o html completo, si queremos cambiar el diseño , solo editamos home.tpl y no modificamos nada en la programacion index.php

Tengo un Tips Smarty : Usando Matrices el cual habla el metodo de pasar matrices (arrays) con informacions a los template, viene con un ejemplo funcionando.

Saludos

Última edición por DeeR; 14/03/2007 a las 10:47 Razón: xD