en: Programacion
En muchas ocasiones el desarrollo de sitios o aplicaciones webs implica crear interfaces HTML para aplicaciones escritas en PHP, el uso de templates permite separar elegantemente el codigo PHP de su presentacion, hay varios motores de templates, en nuestro caso usaremos Smarty.
La respuesta es muy sencilla: este sistema es el más rápido.
Lo podemos descargar aquí, tendremos que asegurarnos que nuestro servidor utiliza una vesión PHP 4.0.6 u otra más reciente.
Al descomprimir el archivo descargado nos encontraremos tres directorios: /libs, /demo y /misc.
El que nos interesa es /libs que es el que contiene la información que vamos a necesitar y por lo tanto el que debemos de subir al servidor.
Aquí podemos encontrar una guía rápida de instalacion de Smarty
1. Descargamos smarty.
2. Descomprimimos el archivo descargado
3. Subimos los ficheros de la carpeta Lib al servidor:
internals/*.php
plugins/ *.php
Smarty.class.php
Smarty_Compiler.class.php
Config_File.class.php
debug.tpl
4. Crearemos los directorios templates, templates_c, configs y cache y le daremos permisos 770 alos directorios cache y templates_c
5. Creamos los siguientes archivos index.tpl index-prueba.php y include.php y ya tendremos nuestro script funcionando.
Lo primero que podemos hacer es descargarnos este ejemplo con el cúal nos será mucho más sencillo seguir los pasos.
1. El primer paso será crear un archivo llamado “include.php” en el cual incluiremos aquellos archivos necesarios para el funcionamiento de la clase.
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->template_dir = ‘templates/’;
$smarty->compile_dir = ‘templates_c/’;
$smarty->config_dir = ‘configs/’;
$smarty->cache_dir = ‘cache/’;
?>
Colocaremos este archivo en el raiz de la carpeta donde estemos realizando estas pruebas.
http://www.tusitio.com/include.php
2. En nuestro segundo paso crearemos el archivo “index.tpl” que será la parte de diseño de nuestro simple ejemplo.
{*Asi se escriben los comentarios en smarty *}
{*Esta va aser nuestra primera oferta*}
{$probando}
* Este es un ejemplo excesivamente básico y no contiene ningun tipo de etiqueta HTML.
El archivo debe ir en el interior de la carpeta templates_c quedando de este modo:
http://www.tusitio.com/templates_c/include.php
2. El último paso será crear nuestro “index.php” mediante el cual enlazaremos los otros dos elementos.
require('include.php');
$smarty->assign(‘probando’,'La tipica prueba Hola Mundo’);
$smarty->display(‘index.tpl’);
?>
Irá colocado en el raiz de nuestra carpeta:
http://www.tusitio.com/index.php
La ejecución de este pequeño ejemplo devolverá:
La siempre aburrida prueba Hola Mundo
2 Respuestas a Manual y ejemplos con Smarty
Anónimo
18 de Diciembre de 2006 a las 2:10 pm
La parte que dice “2. En nuestro segundo paso crearemos el archivo “index.tpl” que será la parte de diseño de nuestro simple ejemplo. Este es un ejemplo excesivamente básico y no contiene ningun tipo de etiqueta HTML. El archivo debe ir en el interior de la carpeta templates_c quedando de este modo: http://www.tusitio.com/templates_c/include.php”
deberia decir
“http://www.tusitio.com/templates_c/index.tpl”
Y ahí está un poco mas claro…
ikarush
6 de Junio de 2007 a las 9:49 am
en realidad segun entendi la carpeta templates_c es una cache.
la direccion correcta sera : http://www.misitio/templates/index.tpl
Abel Guillermo
10 de Julio de 2007 a las 3:30 pm
me parece que el index.tpl va dentro del Templates y no dentro del Templates_c ya que esete funciona como cache
Piropeator
23 de Abril de 2008 a las 8:33 pm
Se puede utilizar código JavaScript en una plantilla Smarty ??
Pueden poner un ejemplo?
Pues para validar un formulario necesito JavaScript, cómo incrusto este código en la plantilla??
Saludos.
Contactos Castellón
6 de Noviembre de 2008 a las 7:10 am
Si se realiza esta asignación:
$smarty->assign(‘probando’,'La tipica prueba Hola Mundo’);
¿Cómo es posible que devuelva esto?
La siempre aburrida prueba Hola Mundo
Parece como si se hubiera copiado de otra web y sólo se hubiera modificado una parte.
Kderic
4 de Diciembre de 2008 a las 11:47 am
Hasta ahora me estoy incursionando en este cuento con SMARTY, lo cual me genera varias dudas, el tutorial es bueno me dice como crear una plantilla, pero estoy confundido cuando tenga un directorio con muchos templates como lo hago.
Necesito muchos templates y cambiar el sitio de template por medio de un combo o
Saludos
Ulices
10 de Septiembre de 2008 a las 5:57 pm
Hola algun ejemplo simple de como combinar
ajax+smarty
Por favor
Gracias
Bañeras de hidromasaje
28 de Noviembre de 2008 a las 3:16 am
Un ejemplo muy útil.Gracias!!
Cristina
25 de Junio de 2008 a las 2:16 pm
he estado usando este codigo en mi sitio y no me funciona si alguien le funciona que por favor me lo diga.
Es para mostrar los datos de una base de datos con smarty.
< ?php
$search_condition = "where name like '$foo%' ";
$sql = 'select contact_id, name, nick from contacts '.$search_condition.' order by name';
$smarty->assign(‘results’, $db->getAssoc($sql) );
?>
{foreach key=cid item=con from=$results}
{$con.name} – {$con.nick}
{foreachelse}
No items were found in the search
{/foreach}
Anónimo
17 de Octubre de 2008 a las 7:03 pm
Hay alguna empresa de desarrollo que tenga experiencia probada en la adaptacion y rediseño de sitios usando la herramienta smarty?
Ezequiel
27 de Abril de 2009 a las 10:39 pm
Si se puede utilizar javascript con smarty, pero todo o parte del codigo javascript lo debes poner entre literal. Por ejemplo:
<script>{literal}
function algo(var){
{/literal}
alert(var);
{literal}
}
{/literal}
</script>
O poder poner toda la funcion
{literal}
<script>
function algo(var){
alert(var);
}
</script>
{/literal}
En este casi sería lo mismo
espero te sirva.
Saludos
Anónimo
26 de Mayo de 2009 a las 5:54 pm
no no