Autor Tema: Tutorial Iniciación a plantillas Smarty  (Leído 4480 veces)

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Tutorial Iniciación a plantillas Smarty
« en: 05 de Marzo de 2010, 15:19:58 pm »
Hola, ¡¡Muy buenas!!

Cuanto tiempo que no posteba un tutorial... bueno vamos alla.


Las plantillas Smarty estan en muchos sitios que seguro que hemos utilizado y nunca nos hemos dado cuenta, como en los foros prefabricados, tiendas on-line (Prestashop)... no os suenan los archivos plantilla? (ejemplo: index.tpl).

La gran ventaja de trabajar con plantillas Smarty es que tienes por una parte el codigo y por otra el diseño en HTML (archivo .tpl), es decir separamos totalmente la programación del diseño, esto va muy bien para gente que trabaja junta (un diseñador + un programador) o Webs que quieres ponerle varias plantillas, o Webs como la mia de Fanatik Soccer que el diseño hoy me gusta dentro de 1 mes pienso que es una basura y me da por cambiarlo y es un Webo de faena con la de codigo que hay por hay enmedio.

Encontrareis gente que esta en contra porque igualmente el diseñador aunque no tenga que aprender nada de programación solo diseñar, si que tiene que tiene que aprender un poco, pero algo tan basico como un if, else, foreach y poco más... (Se quejan de que una ayuda no te lo hace todo, ¿pues no sera mejor aprender 4 cosas que toda la trallada de PHP?)

Vamos a explicar realmente como funciona esto internamente... tu tienes por una parte el codigo PHP, tienes la plantilla y a partir de una clase (de Smarty) se compila por decirlo de alguna manera la plantilla con el PHP y se guarda en una carpeta (esto solo ocurre en la primera ejecución de la plantilla) y se genera un 3 archivo, uno en PHP que es el PHP base nuestro mezclado con la transformación de las etiquetas Smarty... esto os ira quedando más claro con los ejemplos...

Nos decargamos de internet la base de Smarty
http://www.smarty.net/download.php

Nos quedamos con una carpeta llamada smarty Smarty_Compiler.class.php, Smarty.class.php entre otras carpetas y archivos que contiene...

y creamos una carpeta llamada directorios_smarty en la que dentro de esta crearemos varias subcarpetas que posteriormente utilizará smarty templates_c, templates, configs y cache.

Entonces nos quedamos en la raiz de nuestro sitio Web con una carpeta llamada smarty y otra llamada directorios_smarty


Tenemos un archivo PHP en la raiz

index.php

<?php
require(&#39;smarty/Smarty.class.php&#39;);
$smarty = new Smarty();

$smarty->template_dir = &#39;directorios_smarty/templates&#39;;
$smarty->compile_dir = &#39;directorios_smarty/templates_c&#39;;
$smarty->cache_dir = &#39;directorios_smarty/cache&#39;;
$smarty->config_dir = &#39;directorios_smarty/configs&#39;;


$smarty->assign(&#39;usuario&#39;, "G2K");
$smarty->display(&#39;index.tpl&#39;);
?>


y dentro de directorios_smarty y templates

index.tpl (que es el que llamamos desde index.php)

<!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=UTF-8" />
<
title>Smarty Mola</title>
</
head>

<
body>
	
Hola {$usuario}
</
body>
</
html>


Y si entramos desde nuestro navegador a index.php y hemos seguido bien todos los pasos saldrá algo como:
Hola G2K


Lo que reamente hacemos en el archivo PHP es hacer la configuración de nuestro sistema Smarty, asignar una variable llada usuario cuyo valor es G2K:

$smarty->assign('usuario', "G2K");

y mostramos la plantilla index.tpl:
$smarty->display('index.tpl');

En la cual se muestra la variable:
Hola {$usuario}


Espero que lo probeis, os guste y lo utilices, recordad que esto es una iniciación a plantillas Smarty, donde solo he enseñado a crear una variable y mostrarla en una plantilla, en proximos tutoriales (espero que sea pronto) enseñare ha hacer if's, bucles foreach y como recorrer diferentes consultas sql con Smarty (dependiendo del exito de este tutorial).

¡¡Un saludo a todos y suerte!!
Os animo a probarlo
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Comunidad PHPeros

Tutorial Iniciación a plantillas Smarty
« en: 05 de Marzo de 2010, 15:19:58 pm »

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:Tutorial Iniciación a plantillas Smarty
« Respuesta #1 en: 10 de Marzo de 2010, 09:49:11 am »
Éste código
<?php
require(&#39;smarty/Smarty.class.php&#39;);
$smarty = new Smarty();

$smarty->template_dir = &#39;directorios_smarty/templates&#39;;
$smarty->compile_dir = &#39;directorios_smarty/templates_c&#39;;
$smarty->cache_dir = &#39;directorios_smarty/cache&#39;;
$smarty->config_dir = &#39;directorios_smarty/configs&#39;;


$smarty->assign(&#39;usuario&#39;, "G2K");
$smarty->display(&#39;index.tpl&#39;);
?>

Debe ponerse en cualquier archivo donde se utiliza el template no? Eso es lo que me parece lógico y lo que tengo entendido, pero pregunto para evitar malos entendidos.
A ver, entonces si quiero por ejemplo.. hacer un login despues de haber creado la COOKIE y verificado los datos seria
$smarty->assign(&#39;user&#39;, $_COOKIE[&#39;user&#39;]);
o traería problemas?
+Karma, creo que lo he entendido todo.. espero ansiosamente tus próximos tutoriales :)

PD: Que tal un tutorial de como instalarlo si no tienes xampp? Y también si tienes xampp xD
« Última modificación: 10 de Marzo de 2010, 10:18:19 am por x.mara.x »

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re:Tutorial Iniciación a plantillas Smarty
« Respuesta #2 en: 11 de Marzo de 2010, 17:36:40 pm »
Éste código
<?php
require(&#39;smarty/Smarty.class.php&#39;);
$smarty = new Smarty();

$smarty->template_dir = &#39;directorios_smarty/templates&#39;;
$smarty->compile_dir = &#39;directorios_smarty/templates_c&#39;;
$smarty->cache_dir = &#39;directorios_smarty/cache&#39;;
$smarty->config_dir = &#39;directorios_smarty/configs&#39;;


$smarty->assign(&#39;usuario&#39;, "G2K");
$smarty->display(&#39;index.tpl&#39;);
?>

Debe ponerse en cualquier archivo donde se utiliza el template no? Eso es lo que me parece lógico y lo que tengo entendido, pero pregunto para evitar malos entendidos.
A ver, entonces si quiero por ejemplo.. hacer un login despues de haber creado la COOKIE y verificado los datos seria
$smarty->assign(&#39;user&#39;, $_COOKIE[&#39;user&#39;]);
o traería problemas?
+Karma, creo que lo he entendido todo.. espero ansiosamente tus próximos tutoriales :)

PD: Que tal un tutorial de como instalarlo si no tienes xampp? Y también si tienes xampp xD
Si seria así :P

Espero que le guste a más gente...

Gracias por el Karma aunque ahora he perdido el numerito de karma 69 :( ... jajaja

jajaja se instala igual si tienes xampp como si no lo tienes :P


Aunque te recomiendo este host :P -> http://www.phperos.net/foro/index.php/topic,5387.msg38926.html
http://www.phperos.net/foro/index.php/topic,4210.msg27385.html
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Tutorial Iniciación a plantillas Smarty
« Respuesta #3 en: 11 de Marzo de 2010, 17:54:42 pm »
Que publicista eres G2K :P
Está muy bien esto...

lo usaré

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re:Tutorial Iniciación a plantillas Smarty
« Respuesta #4 en: 11 de Marzo de 2010, 23:18:23 pm »
Que publicista eres G2K :P
Está muy bien esto...

lo usaré
jajaja era en plan "cachondeo" :P
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011