Evitar navegación.
Principal

Manual y ejemplos con Smarty

Smarty | tufuncion.comEn 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.

¿Porqué tendríamos que elegir precisamente 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

Guía rápida de instalación

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.

Ejemplo de código Smarty

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

Ejemplo básico Smarty
Smarty Template Engine

Enlaces Relacionados


Desplagar Datos de una DB con smarty

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}

SMARTY CON JAVA

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.

me parece que el index.tpl

me parece que el index.tpl va dentro del Templates y no dentro del Templates_c ya que esete funciona como cache

error

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...

pues creo que tu tambien te equivocas.

en realidad segun entendi la carpeta templates_c es una cache.

la direccion correcta sera : www.misitio/templates/index.tpl

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato