spanish docs initial commit

This commit is contained in:
mohrt
2004-10-07 18:50:52 +00:00
parent 56ed915a8b
commit 8c29cc08f0
175 changed files with 15689 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="caching.cacheable">
<title>Controlando salida de Cacheabilidad de plugins</title>
<para>
Desde Smarty-2.6.0 los caches de plugins pueden ser declarados
o registrados. El tercer par<61>metro para register_block,
register_compiler_function es register_function es llamado
<parameter>$cacheable</parameter> y el default es true que es
tambi<62>n el comportamiento de plugins en la versiones anteriores
a Smarty 2.6.0.
</para>
<para>
Cuando registre un plugin con $cacheable=false el plugin es llamado
todo el tiempo en la pagina que est<73> siendo mostrada, aun si la
pagina viene desde el cache.
La funci<63>n de plugin tiene un comportamiento parecido al de
la funci<63>n <link linkend="plugins.inserts">insert</link>.
</para>
<para>
En contraste con <link linkend="language.function.insert">{insert}</link>
el atributo para el plugin no est<73> en cache por default. Ellos pueden ser
declarados para ser cacheados con el cuarto par<61>metro
<parameter>$cache_attrs</parameter>. <parameter>$cache_attrs</parameter>
es un arreglo de nombres de atributos que deben ser cacheados, entonces la
funci<63>n de plugin pega el valor como si fuera el tiempo en que la pagina
fue escrita para el cache todo el tiempo este es traido desde el cache.
</para>
<example>
<title>Previniendo que una sa<73>da de plugin de ser cacheada</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
function remaining_seconds($params, &$smarty) {
$remain = $params['endtime'] - time();
if ($remain >=0)
return $remain . " second(s)";
else
return "done";
}
$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime'));
if (!$smarty->is_cached('index.tpl')) {
// fetch $obj from db and assign...
$smarty->assign_by_ref('obj', $obj);
}
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
Donde index.tpl es:
</para>
<programlisting>
<![CDATA[
Time Remaining: {remain endtime=$obj->endtime}
]]>
</programlisting>
<para>
El n<>mero en segundos hasta el endtime del $obj este sufre cambios
en cada display de la pagina, aun si la pagina esta en cache. Desde
que el atributo endtime sea cacheado el objeto solamente tiene que
ser jalado de la base de datos cuando la pagina esta escrita en la
cache mas no en requisiciones de la pagina.
</para>
</example>
<example>
<title>Previniendo una pasada entera del template para el cache</title>
<programlisting role="php">
<![CDATA[
index.php:
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
function smarty_block_dynamic($param, $content, &$smarty) {
return $content;
}
$smarty->register_block('dynamic', 'smarty_block_dynamic', false);
$smarty->display('index.tpl');
?>
]]>
</programlisting>
<para>
Donde index.tpl es:
</para>
<programlisting>
<![CDATA[
Page created: {"0"|date_format:"%D %H:%M:%S"}
{dynamic}
Now is: {"0"|date_format:"%D %H:%M:%S"}
... do other stuff ...
{/dynamic}
]]>
</programlisting>
</example>
<para>
Cuando recarga la pagina usted notara que ambas fechas son diferentes.
Una es "dinamica" y la otra es "est<73>tica". Usted puede hacer todo entre
las etiquetas {dynamic}...{/dynamic} y tener la certeza de que no sera
cacheado como el resto de la pagina.
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="caching.groups">
<title>Cache Groups</title>
<para>
Usted puede hacer agrupamientos mas elaborados configurando grupos de
cache_id. Esto se logra con la separaci<63>n de cada sub-grupo con una
barra vertical "|" en el valor del cache_id. Usted puede tener tantos
sub-grupos como guste.
</para>
<para>
Usted puede pensar que los grupos de cache son parecidos a un
directorio para organizar. por ejemplo, un grupo de cache con
"a|b|b" podria pensarse como la estructura del directorio "a/b/c/".
clear_cache(null,"a|b|c") esto seria para quitar los archivos
"/a/b/c/*". clear_cache(null,"a|b") esto seria para quitar los
archivos "/a/b/*". Si usted espicifica el compile_id como
clear_cache(null,"a|b","foo") este tratara de agregarlo al grupo
de cache "/a/b/c/foo/". Si usted especifica el nombre del template
tal como clear_cache("foo.tpl","a|b|c") entonces el smarty intentara
borrar "/a/b/c/foo.tpl".
Usted no puede borrar un nombre de template especifico bajo multiples
grupos de cache como "/a/b/*/foo.tpl", el grupo de cache trabaja solo
de izquierda a derecha. Usted puede necesitar para su grupos de
templates un unico grupo de cache jerarquico para poder limpiarlos
como grupos.
</para>
<para>
El agupamiento de cache no debe ser confundido con su directorio
jerarquico del template, El agrupamiento de cache no tiene ninguna
ciencia de como sus templates son estructurados.
Por ejemplo, si usted tiene una estructura display('themes/blue/index.tpl'),
usted no puede limpiar el cache para todo bajo el diretorio "themes/blue".
Si usted quiere hacer esto, usted debe agruparlos en el cache_id, como
display('themes/blue/index.tpl','themes|blue'); Entonces usted puede
limpiar los caches para el tema azul con clear_cache(null,'themes|blue');
</para>
<example>
<title>Grupos de cache_id</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
// clear all caches with "sports|basketball" as the first two cache_id groups
$smarty->clear_cache(null,"sports|basketball");
// clear all caches with "sports" as the first cache_id group. This would
// include "sports|basketball", or "sports|(anything)|(anything)|(anything)|..."
$smarty->clear_cache(null,"sports");
// clear the foo.tpl cache file with "sports|basketball" as the cache_id
$smarty->clear_cache("foo.tpl","sports|basketball");
$smarty->display('index.tpl',"sports|basketball");
?>
]]>
</programlisting>
</example>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="caching.multiple.caches">
<title>Multiples caches por pagina</title>
<para>
Usted puede tener multiples archivos de cache para una simples llamada
de display() o fetch(). Vamos a decir que una llamada a
display('index.tpl') debe tener varios contenidos de salida diferentes
dependiendo de alguna condici<63>n, y usted quiere separar los caches para
cada una. Usted puede hacer esto pasando un cache_id como un segundo
par<61>metro en la llamada de la funci<63>n.
</para>
<example>
<title>Pasando un cache_id para display()</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
$my_cache_id = $_GET['article_id'];
$smarty->display('index.tpl',$my_cache_id);
?>
]]>
</programlisting>
</example>
<para>
Arriba, nosotros pasamos la variable $my_cache_id a display() con
el cache_id. Para cada valor unico de $my_cache_id, un cache por
separado sera generado para cada index.tpl. En este ejemplo,
"article_id" fue pasado en URL y es usado como el cache_id.
</para>
<note>
<title>Nota T<>cnica</title>
<para>
Tenga mucho cuidado cuando pase valores del cliente (web browser)
dentro de Smarty (o alguna aplicaci<63>n PHP). Aunque el ejemplo de
arriba usar el article_id desde una URL parece facil, esto podr<64>a
tener fatales consecuencias. El cache_id es usado para crear un
directorio en el sistema de archivos, entonces si el usuario decide
pasar un valor extremadamente largo para article_id, o escribir un
script que envia article_ids aleatorios en un paso r<>pido, esto
posiblemente podr<64>a causar problemas a nivel del servidor. Tenga la
certeza de limpiar alg<6C>n dato pasado antes de usarlo. En este ejemplo,
tal vez usted sabia que el article_id tiene un largo de 10 caracteres
este es constituido solamente de alfanum<75>ricos, y debe ser un article_id
valido en la base de datos. Verifique esto!
</para>
</note>
<para>
Asegurarse de pasar el mismo cache_id como el segundo par<61>metro
para <link linkend="api.is.cached">is_cached()</link> y
<link linkend="api.clear.cache">clear_cache()</link>.
</para>
<example>
<title>Pasando un cache_id para is_cached()</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
$my_cache_id = $_GET['article_id'];
if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
// No cache available, do variable assignments here.
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display('index.tpl',$my_cache_id);
?>
]]>
</programlisting>
</example>
<para>
Usted puede limpar todos los caches para un cache_id en particular
pasando el primer par<61>metro null a clear_cache().
</para>
<example>
<title> Limpando todos los caches para un cache_id en particular</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
// clear all caches with "sports" as the cache_id
$smarty->clear_cache(null,"sports");
$smarty->display('index.tpl',"sports");
?>
]]>
</programlisting>
</example>
<para>
De esta manera, usted puede "agrupar" sus caches conjuntamente dandoles
el mismo cache_id.
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -0,0 +1,199 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<sect1 id="caching.setting.up">
<title>Configurando el Cache</title>
<para>
Lo primero que se tiene que hacer es habilitar el cache. esto es configurar
<link linkend="variable.caching">$caching</link> = true (o 1.)
</para>
<example>
<title>Habilitando Cache</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
<para>
Con el caching habilitado, la llamada a la funci<63>n
display('index.tpl') traera el template como siempre,
pero tambi<62>n salvara una copia en el archivo de salida
(una copia de cache) en el
<link linkend="variable.cache.dir">$cache_dir</link>.
En la proxima llamada de display('index.tpl'), la copia
en cache sera usada en vez de traer nuevamente el template.
</para>
<note>
<title>Nota T<>cnica</title>
<para>
Los archivos en el $cache_dir son nombrados similarmente al
nombre del archivo de template.
Aunque ellos tengan una extensi<73>n ".php", ellos no son realmente
scripts ejecutables de php. No edite estos archivos!
</para>
</note>
<para>
Cada pagina en cache tiene un periodo de tiempo limitado determinado por
<link linkend="variable.cache.lifetime">$cache_lifetime</link>.
El default del valor es 3600 segundos, o 1 hora. Despu<70>s de este tiempo
expira, el cache es regenerado. Es posible dar tiempos individuales para
caches con su propio tiempo de expiraci<63>n para configuraci<63>n $caching = 2.
Vea la documentaci<63>n en
<link linkend="variable.cache.lifetime">$cache_lifetime</link>
para mas detalles.
</para>
<example>
<title>Configurando cache_lifetime por cache</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = 2; // lifetime is per cache
// set the cache_lifetime for index.tpl to 5 minutes
$smarty->cache_lifetime = 300;
$smarty->display('index.tpl');
// set the cache_lifetime for home.tpl to 1 hour
$smarty->cache_lifetime = 3600;
$smarty->display('home.tpl');
// NOTE: the following $cache_lifetime setting will not work when $caching = 2.
// The cache lifetime for home.tpl has already been set
// to 1 hour, and will no longer respect the value of $cache_lifetime.
// The home.tpl cache will still expire after 1 hour.
$smarty->cache_lifetime = 30; // 30 seconds
$smarty->display('home.tpl');
?>
]]>
</programlisting>
</example>
<para>
Si <link linkend="variable.compile.check">$compile_check</link> est<73>
habilitado, cada archivo de template y archivo de configuraci<63>n que
est<73> involucrado con el archivo en cache es checado por modificadores.
Si alguno de estos archivos fue modificado desde que el ultimo cache
fue generado, el cache es regenerado inmediatamente. Esto es una forma
de optimizar ligeramente el rendimiento de las cabeceras, dejar
$compile_check determinado false.
</para>
<example>
<title>Habilitando $compile_check</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
$smarty->compile_check = true;
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
<para>
Si <link linkend="variable.force.compile">$force_compile</link> est<73>
habilitado, los archivos de cache siempre seran regenerados.
Esto definitivamente desactiva el caching. $force_compile generalmente
es usado para propositos de debug solamente, una forma mas eficiente
de desactivar el caching es asignando
<link linkend="variable.caching">$caching</link> = false (<28> 0.)
</para>
<para>
La funci<63>n <link linkend="api.is.cached">is_cached()</link> puede ser
usada para testar si un template tiene un cache valido o no. Si usted
tiene un template con cache que requiera alguna cosa como un retorno
de base de datos, usted puede usar esto para saltar este proceso.
</para>
<example>
<title>Usando is_cached()</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) {
// No cache available, do variable assignments here.
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
<para>
Usted puede guardar partes de su pagina din<69>mica con la funci<63>n
de template <link linkend="language.function.insert">insert</link>.
Vamos a decir que su pagina entera puede tener cache excepto para un
banner que es mostrado abajo del lado derecho de su pagina. Usando
la funci<63>n insert para el banner, usted puede guardar ese elemento
din<69>mico dentro de un contenido de cache. Vea la documentaci<63>n en
<link linkend="language.function.insert">insert</link> para detalles
y ejemplos.
</para>
<para>
Usted puede limpiar todos los archivos de cache con la funci<63>n
<link linkend="api.clear.all.cache">clear_all_cache()</link>,
los archivos de cache individuales (o grupos) con la funci<63>n
<link linkend="api.clear.cache">clear_cache()</link>.
</para>
<example>
<title>Limpiando el cache</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
// clear out all cache files
$smarty->clear_all_cache();
// clear only cache for index.tpl
$smarty->clear_cache('index.tpl');
$smarty->display('index.tpl');
?>
]]>
</programlisting>
</example>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->