Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Instalación Básica

Instale los archivos de la libreria de Smarty que estan en el directorio de distribución /libs/. Estos son los archivos PHP que usted NO EDITARA. Estos archivos son toda las aplicaciones comunes y ellos son actualizados cuando usted actualiza a una nueva versión de Smarty.

Example 2.1. Archivos de la libreria Smarty


Smarty.class.php
Smarty_Compiler.class.php
Config_File.class.php
debug.tpl
/internals/*.php (all of them)
/plugins/*.php (all of them)

    

Smarty utiliza una constante de PHP llamada SMARTY_DIR que es la ruta para el directorio de la biblioteca de Smarty 'libs/'. Basicamente, si su aplicación puede encontrar el archivo Smarty.class.php , usted no necesita definir SMARTY_DIR, Smarty lo encontrará. Por consiguiente si, Smarty.class.php no esta incluido en el path, y no es abastecido por una ruta absoluta para encontrar su aplicación, entonces usted debe definir SMARTY_DIR manualmente. SMARTY_DIR debe incluir una barra de seguimento.

Aquí esta un ejemplo de como se crea una instancia de Smarty en sus scripts PHP:

Example 2.2. Creando una instancia Smarty de Smarty


<?php
require('Smarty.class.php');
$smarty = new Smarty;
?>

    

Intente correr el script de arriba. Si usted obtiene un error diciendo que el archivo Smarty.class.php no fue encontrado, puedes usar una de las siguientes opciones:

Example 2.3. Reemplazar por la ruta absulta de la libreria del archivo


<?php
require('/usr/local/lib/php/Smarty/Smarty.class.php');
$smarty = new Smarty;
?>

    

Example 2.4. Adicionar el directorio de la libreria para incluirlo en el include_path de PHP


<?php
// Edite su archivo php.ini, y adicione el directorio de la libreria de Smarty
// include_path  y  reinicie su servidor web.
// Entonces lo siguiente debe funcionar:
require('Smarty.class.php');
$smarty = new Smarty;
?>

    

Example 2.5. Defina la constante SMARTY_DIR manualmente


<?php
define('SMARTY_DIR', '/usr/local/lib/php/Smarty/');
require(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty;
?>

    

Ahora que la libreria de archivos esta en su sitio, es tiempo de configurar los directorios de Smarty para su aplicación.

Smarty require cuatro directorios (por defaul) llamados 'templates/', 'templates_c/', 'configs/' y 'cache/'.

Cada uno de estos son para definir las propiedades de las clases de Smarty. $template_dir, $compile_dir, $config_dir, y $cache_dir respectivamente. Es altamente recomendado que usted configure un grupo separado de estos directorios para cada aplicación que utilice de Smarty.

Asegurece que usted sabe la ubicación del document root de su servidor web. En nuestro ejemplo, el document root esta en /web/www.example.com/docs/. Los directorios de Smarty solo son accesados por la libreria de Smarty y nunca son accesados directamente por el navegador. Por consiguiente para evitar cualquier preocupación con la seguridad, es recomendado colocar estos directorios fuera del document root.

Para nuestro ejemplo de instalación, configuraremos el ambiente de Smarty para una aplicación de libro de visitas. Escojemos una aplicación solo con el proposito de crear un directorio de nombre convencional. Usted puede usar el mismo ambiente para cualquier aplicación, solamente sustituya "guestbook" con el nombre de su aplicación. Nosotros colocaremos nuestros directorios de Smarty dentro de /web/www.example.com/smarty/guestbook/.

Usted necesita tener por lo menos un archivo dentro de su document root, y que sea accesado por el navegador. Nosotros llamamos el script de 'index.php', y lo colocamos en un subdirectorio dentro del document root llamado /guestbook/.

Nota Técnica:

Es conveniente configurar el servidor de forma que "index.php" pueda ser identificado como el índice del directório padre, de esta manera si usted accesa http://www.example.com/guestbook/, el script index.php será ejecutado sin "index.php" ni la URL. En Apache usted puede definir el sitio adicionando "index.php" en el final de su configuración del directorio DirectoryIndex (separando cada uno con espacios.) como en el ejemplo de httpd.conf.

DirectoryIndex index.htm index.html index.php index.php3 default.html index.cgi

Veamos nuestra estructura de archivos hasta hora:

Example 2.6. Ejemplo de estrutura de archivo


/usr/local/lib/php/Smarty/Smarty.class.php
/usr/local/lib/php/Smarty/Smarty_Compiler.class.php
/usr/local/lib/php/Smarty/Config_File.class.php
/usr/local/lib/php/Smarty/debug.tpl
/usr/local/lib/php/Smarty/internals/*.php
/usr/local/lib/php/Smarty/plugins/*.php

/web/www.example.com/smarty/guestbook/templates/
/web/www.example.com/smarty/guestbook/templates_c/
/web/www.example.com/smarty/guestbook/configs/
/web/www.example.com/smarty/guestbook/cache/

/web/www.example.com/docs/guestbook/index.php

    

Smarty necesitara permisos de escritura (usuarios de windows ingnorar) para $compile_dir y $cache_dir, esto garantiza que el usuario del servidor pueda escribir en ellos. Este es generalmente el usuarios "nobody" y el grupo "nobody". Para usuarios con X sistema operativo, el default es "www" y el grupo "www". Si usted esta usando Apache, puede ver en su archivo httpd.conf (normalmente en "/usr/local/apache/conf/") cual es el usuario y grupo que estan siendo usados.

Example 2.7. Configurando permisos de archivos


chown nobody:nobody /web/www.example.com/smarty/guestbook/templates_c/
chmod 770 /web/www.example.com/smarty/guestbook/templates_c/

chown nobody:nobody /web/www.example.com/smarty/guestbook/cache/
chmod 770 /web/www.example.com/smarty/guestbook/cache/

    

Nota Técnica:

chmod 770 puede ser una seguridad bastante fuerte, solo le permite al usuario "nobody" y al grupo "nobody" acesso de lectura/escritura a los directorios. Si usted quiere abrir permiso de lectura a cualquiera (en la mayoria de las veces para su propia conveniencia de querer ver estos archivos), usted puede usar el 775 en lugar del 770.

Nosotros necesitamos crear el archivo index.tpl, para que Smarty lo pueda cargar. Este estara localizado en su $template_dir.

Example 2.8. Editando /web/www.example.com/smarty/guestbook/templates/index.tpl



{* Smarty *}

Hello, {$name}!

    

Nota Técnica:

{* Smarty *} Esto es un comentario en el template. Este no es obligatorio, pero si una buena practica iniciar todos sus archivos de plantilla con estos comentarios. Esto hace facilmente reconocibles a los archivos a pesar la extención del archivo. Por ejemplo, editores de texto pueden reconocer el archivo y habilitar un realce de sintaxis especial.

Ahora vamos a editar el index.php. crearemos una instancia de Smarty, daremos valor a las variables del template y mostraremos el archivo index.tpl. En el ambiente de nuestro ejemplo, "/usr/local/lib/php/Smarty" esta dentro de include_path. Asegurese que exista el mismo, o utilice la ruta absoluta.

Example 2.9. Editando /web/www.example.com/docs/guestbook/index.php


<?php

// load Smarty library
require('Smarty.class.php');

$smarty = new Smarty;

$smarty->template_dir = '/web/www.example.com/smarty/guestbook/templates/';
$smarty->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/';
$smarty->config_dir = '/web/www.example.com/smarty/guestbook/configs/';
$smarty->cache_dir = '/web/www.example.com/smarty/guestbook/cache/';

$smarty->assign('name','Ned');

$smarty->display('index.tpl');
?>

    

Nota Técnica:

En nuestro ejemplo, estamos configurando rutas absolutas para todos los directorios de Smarty. Si /web/www.example.com/smarty/guestbook/ está dentro de su include_path de PHP, entonces estas declaraciones no son necesarias. Sin embargo, esto es mas eficiente y (por experiencia) tiene menos tendencia a errores en relación a determinar las rutas absolutas. Esto garantiza que Smarty esta recibiendo los archivos del directorio que usted desea.

Ahora carge el archivo index.php desde su navegador web. Usted debera ver "Hello, Ned!"

Usted a completado la configuracion basica para el Smarty!

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors