What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Table of Contents
Smarty tiene varios tipos diferentes de variables. El tipo de variable depende de cual simbolo este prefijado(incluido dentro).
Las variables de Smarty no pueden ser mostradas directamente o usadas como argumentos para atributos, funciones y modificadores, dentro de expresiones condicionales, etc. Para mostrar una variable, simplesmente coloque esta entre delimitadores siendo esta la única cosa entre ellos. Ejemplos:
{$Name} {$Contacts[row].Phone} <body bgcolor="{#bgcolor#}">
Las variables que son asignadas desde PHP
son referenciadas precedidas estas con una señal de cifrado $
.
Las variables definidas dentro del template como una función
assign también son
mostradas de esta manera.
Example 4.1. variables definidas
php script
<?php $smarty = new Smarty; $smarty->assign('firstname', 'Doug'); $smarty->assign('lastname', 'Evans'); $smarty->assign('meetingPlace', 'New York'); $smarty->display('index.tpl'); ?>
Donde el contenido de index.tpl es:
Hello {$firstname} {$lastname}, glad to see you can make it. <br /> {* this will not work as $vars are case sensitive *} This weeks meeting is in {$meetingplace}. {* this will work *} This weeks meeting is in {$meetingPlace}.
esta es la salida:
Hello Doug Evans, glad to see you can make it. <br /> This weeks meeting is in . This weeks meeting is in New York.
Usted también puede referenciar matrices asociativas en variables que son definidas desde PHP especificando la clave después del simbolo '.'(punto).
Example 4.2. Accesando variables de matriz asociativa
<?php $smarty->assign('Contacts', array('fax' => '555-222-9876', 'email' => 'zaphod@slartibartfast.com', 'phone' => array('home' => '555-444-3333', 'cell' => '555-111-1234') ) ); $smarty->display('index.tpl'); ?>
Donde el contenido de index.tpl es:
{$Contacts.fax}<br /> {$Contacts.email}<br /> {* you can print arrays of arrays as well *} {$Contacts.phone.home}<br /> {$Contacts.phone.cell}<br />
esta es la salida:
555-222-9876<br /> zaphod@slartibartfast.com<br /> 555-444-3333<br /> 555-111-1234<br />
Usted podra referencia matrizes por su índice, muy semejantes a la sintaxis de PHP.
Example 4.3. Accesando matrices por sus índices
<?php $smarty->assign('Contacts', array( '555-222-9876', 'zaphod@slartibartfast.com', array('555-444-3333', '555-111-1234') )); $smarty->display('index.tpl'); ?>
Donde index.tpl es:
{$Contacts[0]}<br /> {$Contacts[1]}<br /> {* you can print arrays of arrays as well *} {$Contacts[2][0]}<br /> {$Contacts[2][1]}<br />
esta es la salida:
555-222-9876<br /> zaphod@slartibartfast.com<br /> 555-444-3333<br /> 555-111-1234<br />
Las propiedades de los objetos definidos desde PHP pueden ser referenciados especificando el nombre de la propiedad después del simbolo '->'.
Example 4.4. Accesando propiedades de los Objetos
name: {$person->name}<br /> email: {$person->email}<br />
esta es la salida:
name: Zaphod Beeblebrox<br /> email: zaphod@slartibartfast.com<br />