mirror of
https://github.com/smarty-php/smarty.git
synced 2025-11-02 21:31:48 +01:00
1095 lines
40 KiB
XML
1095 lines
40 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision$ -->
|
|
<chapter id="api.functions">
|
|
<title>Métodos</title>
|
|
<sect1 id="api.append">
|
|
<title>append</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>append</function></funcdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
<funcprototype>
|
|
<funcdef>void <function>append</function></funcdef>
|
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
<funcprototype>
|
|
<funcdef>void <function>append</function></funcdef>
|
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
<paramdef>boolean <parameter>merge</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso é usado para adicionar um elemento para um array fixado. Se você adicionar
|
|
uma string como valor, isso irá converter-se para um valor de array e então adicioná-lo.
|
|
Você pode explicitamente passar pares nomes/valores, ou arrays associativos
|
|
contendo o par nome/valor. Se você passar o terceiro parâmetro opcional para true,
|
|
o valor unir-se ao array atual
|
|
ao invés de ser adicionado.
|
|
</para>
|
|
<note>
|
|
<title>Notas Técnicas</title>
|
|
<para>
|
|
O parâmetro de união respeita a chave do array, então se você
|
|
mesclar dois índices númericos de um array, eles devem sobrescrever-se
|
|
um ao outro ou em resultados não sequências de chave. Isso é diferente da função de PHP array_merge()
|
|
que apaga as chaves e as renumera.
|
|
</para>
|
|
</note>
|
|
<example>
|
|
<title>append</title>
|
|
<programlisting>
|
|
// passing name/value pairs
|
|
$smarty->append("Name","Fred");
|
|
$smarty->append("Address",$address);
|
|
|
|
// passing an associative array
|
|
$smarty->append(array("city" => "Lincoln","state" => "Nebraska"));</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.append.by.ref">
|
|
<title>append_by_ref</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>append_by_ref</function></funcdef>
|
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
<funcprototype>
|
|
<funcdef>void <function>append_by_ref</function></funcdef>
|
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
<paramdef>boolean <parameter>merge</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso é usado para adicionar vlaores para o template por referência.
|
|
Se você adicionar uma variável por referência e então alterar este valor
|
|
o valor adicionado enxergará a alteração também. Para objetos,
|
|
append_by_ref() também evita uma cópia em memória do objeto adicionado.
|
|
Veja o manual do PHP em referenciando variáveis para uma melhor explanação sobre o assunto.
|
|
Se você passar o terceiro parâmetro opcional para true,
|
|
o valor irá ser mesclado com o array atual ao invés de adicioná-lo.
|
|
</para>
|
|
<note>
|
|
<title>Notas Técnicas</title>
|
|
<para>
|
|
O parâmetro de união respeita a chave do array, então se você mesclar
|
|
dois índices númericos de arrays, eles devem sobrescrever-se um ao outro ou
|
|
em resultados não sequências de chave. Isso é diferente da função de PHP array_merge()
|
|
que apaga as chaves numéricas e as renumera.
|
|
</para>
|
|
</note>
|
|
<example>
|
|
<title>append_by_ref</title>
|
|
<programlisting>
|
|
// appending name/value pairs
|
|
$smarty->append_by_ref("Name",$myname);
|
|
$smarty->append_by_ref("Address",$address);</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.assign">
|
|
<title>assign</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>assign</function></funcdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
<funcprototype>
|
|
<funcdef>void <function>assign</function></funcdef>
|
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso é usado para fixar valores para o template. Você pode
|
|
explicitamente passar pares de nomes/valores, ou um array associativo
|
|
contendo o par de nome/valor.
|
|
</para>
|
|
<example>
|
|
<title>assign</title>
|
|
<programlisting>
|
|
// passing name/value pairs
|
|
$smarty->assign("Name","Fred");
|
|
$smarty->assign("Address",$address);
|
|
|
|
// passing an associative array
|
|
$smarty->assign(array("city" => "Lincoln","state" => "Nebraska"));</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.assign.by.ref">
|
|
<title>assign_by_ref</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>assign_by_ref</function></funcdef>
|
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso é usado para fixar valores para o template por referência ao invés de fazer uma cópia.
|
|
Veja o manual do PHP na parte sobre referência de variáveis para uma explanação mais detalhada.
|
|
</para>
|
|
<note>
|
|
<title>Notas Técnicas</title>
|
|
<para>
|
|
Isso é usado para fixar valores para o template por referência.
|
|
Se você fixar uma variável por referência e então alterar o valor dela,
|
|
o valor fixado enxergará o valor alterado também.
|
|
Para objetos, assign_by_ref() também restringe uma cópia de objetos fixados
|
|
em memória.
|
|
Veja o manual do php em refereciando variáveis para uma melhor explanação.
|
|
</para>
|
|
</note>
|
|
<example>
|
|
<title>assign_by_ref</title>
|
|
<programlisting>
|
|
// passing name/value pairs
|
|
$smarty->assign_by_ref("Name",$myname);
|
|
$smarty->assign_by_ref("Address",$address);</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.clear.all.assign">
|
|
<title>clear_all_assign</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>clear_all_assign</function></funcdef>
|
|
<paramdef><parameter></parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso limpa o valor de todas as variáveis fixadas.
|
|
</para>
|
|
<example>
|
|
<title>clear_all_assign</title>
|
|
<programlisting>
|
|
// clear all assigned variables
|
|
$smarty->clear_all_assign();</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.clear.all.cache">
|
|
<title>clear_all_cache</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>clear_all_cache</function></funcdef>
|
|
<paramdef>int <parameter>expire time</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso limpa completamente o cache de template. Como um parâmetro
|
|
opcional, você pode fornecer um ano mínimo em segundos
|
|
que o arquivo de cache deve ter antes deles serem apagados.
|
|
</para>
|
|
<example>
|
|
<title>clear_all_cache</title>
|
|
<programlisting>
|
|
// clear the entire cache
|
|
$smarty->clear_all_cache();</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.clear.assign">
|
|
<title>clear_assign</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>clear_assign</function></funcdef>
|
|
<paramdef>string <parameter>var</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso limpa o valor de uma variável fixada. Isso
|
|
pode ser um valor simples, ou um array de valores.
|
|
</para>
|
|
<example>
|
|
<title>clear_assign</title>
|
|
<programlisting>
|
|
// clear a single variable
|
|
$smarty->clear_assign("Name");
|
|
|
|
// clear multiple variables
|
|
$smarty->clear_assign(array("Name","Address","Zip"));</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.clear.cache">
|
|
<title>clear_cache</title>
|
|
<methodsynopsis>
|
|
<type>void</type><methodname>clear_cache</methodname>
|
|
<methodparam choice="opt"><type>string</type><parameter>template</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>cache id</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>compile id</parameter></methodparam>
|
|
<methodparam choice="opt"><type>int</type><parameter>expire time</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Isso limpa o cache de um template específico. Se você tem
|
|
múltiplos caches para este arquivo, você limpa o cache
|
|
específico fornecendo o cache id como o segundo parâmetro.
|
|
Você pode também passar um compile id como um terceiro parâmetro.
|
|
Você pode "agrupar" templates juntos e então eles podem ser removidos
|
|
como um grupo. Veja o <link linkend="caching">caching section</link> para maiores informações. Como um quarto
|
|
parâmetro opcional, você pode fornecer um ano mínimo em segundos
|
|
que o arquivo de cache deve
|
|
ter antes dele ser apagado.
|
|
</para>
|
|
<example>
|
|
<title>clear_cache</title>
|
|
<programlisting>
|
|
// clear the cache for a template
|
|
$smarty->clear_cache("index.tpl");
|
|
|
|
// clear the cache for a particular cache id in an multiple-cache template
|
|
$smarty->clear_cache("index.tpl","CACHEID");</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.clear.compiled.tpl">
|
|
<title>clear_compiled_tpl</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>clear_compiled_tpl</function></funcdef>
|
|
<paramdef>string <parameter>tpl_file</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso limpa a versão compilada do recurso de template especificado,
|
|
ou todos os arquivos de templates compilados se nenhum for especificado.
|
|
Essa função é para uso avançado somente, não normalmente necessária.
|
|
</para>
|
|
<example>
|
|
<title>clear_compiled_tpl</title>
|
|
<programlisting>
|
|
// clear a specific template resource
|
|
$smarty->clear_compiled_tpl("index.tpl");
|
|
|
|
// clear entire compile directory
|
|
$smarty->clear_compiled_tpl();</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.clear.config">
|
|
<title>clear_config</title>
|
|
<methodsynopsis>
|
|
<type>void</type><methodname>clear_config</methodname>
|
|
<methodparam choice="opt"><type>string</type><parameter>var</parameter></methodparam>
|
|
</methodsynopsis>
|
|
|
|
<para>
|
|
Isso limpa todas as variáveis de configuração fixadas. Se um nome de variável
|
|
é fornecido, somente esta variável é apagada.
|
|
</para>
|
|
<example>
|
|
<title>clear_config</title>
|
|
<programlisting>
|
|
// clear all assigned config variables.
|
|
$smarty->clear_config();
|
|
|
|
// clear one variable
|
|
$smarty->clear_config('foobar');</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.config.load">
|
|
<title>config_load</title>
|
|
<methodsynopsis>
|
|
<type>void</type><methodname>config_load</methodname>
|
|
<methodparam><type>string</type><parameter>file</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>section</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Isso carrega o arquivo de configuração de dados e fixa-o para o
|
|
template. Isso funciona idêntico a função <link
|
|
linkend="language.function.config.load">
|
|
config_load</link>.
|
|
</para>
|
|
<note>
|
|
<title>Notas Técnicas</title>
|
|
<para>
|
|
À partir da Smarty 2.4.0, variáveis de template fixadas são
|
|
mantidas através de fetch() e display(). Variáveis de configuração carregadas
|
|
de config_load() são sempre de escopo global. Arquivos de configuração
|
|
também são compilados para execução rápida, e repeita o <link
|
|
linkend="variable.force.compile">force_compile</link> e <link
|
|
linkend="variable.compile.check">compile_check</link> parâmetros de configuração.
|
|
</para>
|
|
</note>
|
|
<example>
|
|
<title>config_load</title>
|
|
<programlisting>
|
|
// load config variables and assign them
|
|
$smarty->config_load('my.conf');
|
|
|
|
// load a section
|
|
$smarty->config_load('my.conf','foobar');</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.display">
|
|
<title>display</title>
|
|
<methodsynopsis>
|
|
<type>void</type><methodname>display</methodname>
|
|
<methodparam><type>string</type><parameter>template</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Isso mostra o template. Fornecendo um válido <link
|
|
linkend="template.resources">template resource</link>
|
|
tipo e path. Como um segundo parâmetro opcional, você pode passar
|
|
um cache id. Veja o <link linkend="caching">caching
|
|
section</link> para maiores informações.
|
|
</para>
|
|
<para>
|
|
Como um terceiro parâmetro opcional, você pode passar um compile id.
|
|
Isso está no evento que você quer compilar diferentes versões do
|
|
mesmo template, como ter templates compilados separadamente para diferentes linguagens.
|
|
Outro uso para compile_id é quando você usa mais do que um $template_dir
|
|
mas somente um $compile_dir. Seta um compile_id em separado para cada $template_dir,
|
|
de outra maneira templates com mesmo nome irão sobrescrever-se um ao outro.
|
|
Você pode também setar a variável <link
|
|
linkend="variable.compile.id">$compile_id</link> ao invés de
|
|
passar isso para cada chamada
|
|
de display().
|
|
</para>
|
|
<example>
|
|
<title>display</title>
|
|
<programlisting>
|
|
include("Smarty.class.php");
|
|
$smarty = new Smarty;
|
|
$smarty->caching = true;
|
|
|
|
// only do db calls if cache doesn't exist
|
|
if(!$smarty->is_cached("index.tpl"))
|
|
{
|
|
|
|
// dummy up some data
|
|
$address = "245 N 50th";
|
|
$db_data = array(
|
|
"City" => "Lincoln",
|
|
"State" => "Nebraska",
|
|
"Zip" = > "68502"
|
|
);
|
|
|
|
$smarty->assign("Name","Fred");
|
|
$smarty->assign("Address",$address);
|
|
$smarty->assign($db_data);
|
|
|
|
}
|
|
|
|
// display the output
|
|
$smarty->display("index.tpl");</programlisting>
|
|
</example>
|
|
<para>
|
|
Use a sintaxe para <link
|
|
linkend="template.resources">template resources</link> para
|
|
mostrar arquivos fora do $template_dir directory.
|
|
</para>
|
|
<example>
|
|
<title>Exemplos de recursos da função display</title>
|
|
<programlisting>
|
|
// absolute filepath
|
|
$smarty->display("/usr/local/include/templates/header.tpl");
|
|
|
|
// absolute filepath (same thing)
|
|
$smarty->display("file:/usr/local/include/templates/header.tpl");
|
|
|
|
// windows absolute filepath (MUST use "file:" prefix)
|
|
$smarty->display("file:C:/www/pub/templates/header.tpl");
|
|
|
|
// include from template resource named "db"
|
|
$smarty->display("db:header.tpl");</programlisting>
|
|
</example>
|
|
|
|
</sect1>
|
|
<sect1 id="api.fetch">
|
|
<title>fetch</title>
|
|
<methodsynopsis>
|
|
<type>string</type><methodname>fetch</methodname>
|
|
<methodparam><type>string</type><parameter>template</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Isso retorna a saída do template ao invés de mostrá-lo.
|
|
Fornecendo um tipo ou path válido <link
|
|
linkend="template.resources">template resource</link>.
|
|
Como um segundo parâmetro opcional, você pode passar o cache id.
|
|
Veja o <link linkend="caching">caching
|
|
section</link> para maiores informações.
|
|
</para>
|
|
<para>
|
|
Como um terceiro parâmetro opcional, você pode passar um compile id.
|
|
Isso está no evento que você quer compilar diferentes versões do
|
|
mesmo template, como ter templates compilados separadamente para
|
|
diferentes linguagens. Outro uso para compile_id é quando você
|
|
usa mais do que um $template_dir mas somente um $compile_dir. Seta
|
|
um compile_id em separado para cada $template_dir, de outra maneira
|
|
templates com mesmo nome irão sobrescrever-se uns aos outros. Você
|
|
pode também setar a variável <link
|
|
linkend="variable.compile.id">$compile_id</link> ao invés
|
|
de passá-la para cada chamada de fetch().
|
|
</para>
|
|
<example>
|
|
<title>fetch</title>
|
|
<programlisting>
|
|
include("Smarty.class.php");
|
|
$smarty = new Smarty;
|
|
|
|
$smarty->caching = true;
|
|
|
|
// only do db calls if cache doesn't exist
|
|
if(!$smarty->is_cached("index.tpl"))
|
|
{
|
|
|
|
// dummy up some data
|
|
$address = "245 N 50th";
|
|
$db_data = array(
|
|
"City" => "Lincoln",
|
|
"State" => "Nebraska",
|
|
"Zip" = > "68502"
|
|
);
|
|
|
|
$smarty->assign("Name","Fred");
|
|
$smarty->assign("Address",$address);
|
|
$smarty->assign($db_data);
|
|
|
|
}
|
|
|
|
// capture the output
|
|
$output = $smarty->fetch("index.tpl");
|
|
|
|
// do something with $output here
|
|
|
|
echo $output;</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.get.config.vars">
|
|
<title>get_config_vars</title>
|
|
<methodsynopsis>
|
|
<type>array</type><methodname>get_config_vars</methodname>
|
|
<methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Isso retorna o valor da variável de configuração dada.
|
|
Se nenhum parâmetro é dado, um array de todas as variáveis dos arquivos de configurações é retornado.
|
|
</para>
|
|
<example>
|
|
<title>get_config_vars</title>
|
|
<programlisting>
|
|
// get loaded config template var 'foo'
|
|
$foo = $smarty->get_config_vars('foo');
|
|
|
|
// get all loaded config template vars
|
|
$config_vars = $smarty->get_config_vars();
|
|
|
|
// take a look at them
|
|
print_r($config_vars);</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.get.registered.object">
|
|
<title>get_registered_object</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>array <function>get_registered_object</function></funcdef>
|
|
<paramdef>string <parameter>object_name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso retorna uma referência para um objeto registrado.
|
|
Isso é útil para dentro de uma função customizada quando você
|
|
precisa acessar diretamente um objeto registrado.
|
|
</para>
|
|
<example>
|
|
<title>get_registered_object</title>
|
|
<programlisting>
|
|
function smarty_block_foo($params, &$smarty) {
|
|
if (isset[$params['object']]) {
|
|
// get reference to registered object
|
|
$obj_ref =& $smarty->&get_registered_object($params['object']);
|
|
// use $obj_ref is now a reference to the object
|
|
}
|
|
}</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.get.template.vars">
|
|
<title>get_template_vars</title>
|
|
<methodsynopsis>
|
|
<type>array</type><methodname>get_template_vars</methodname>
|
|
<methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Isso retorna o valor de uma variável fixada. Se nenhum parâmetro
|
|
é dado, um array de todas as variávels fixadas é retornado.
|
|
</para>
|
|
<example>
|
|
<title>get_template_vars</title>
|
|
<programlisting>
|
|
// get assigned template var 'foo'
|
|
$foo = $smarty->get_template_vars('foo');
|
|
|
|
// get all assigned template vars
|
|
$tpl_vars = $smarty->get_template_vars();
|
|
|
|
// take a look at them
|
|
print_r($tpl_vars);</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.is.cached">
|
|
<title>is_cached</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>is_cached</function></funcdef>
|
|
<paramdef>string <parameter>template</parameter></paramdef>
|
|
<paramdef>[string <parameter>cache_id</parameter>]</paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso retorna true se há um cache válido para esse template.
|
|
Isso somente funciona se <link
|
|
linkend="variable.caching">caching</link> está setado para true.
|
|
</para>
|
|
<example>
|
|
<title>is_cached</title>
|
|
<programlisting>
|
|
$smarty->caching = true;
|
|
|
|
if(!$smarty->is_cached("index.tpl")) {
|
|
// do database calls, assign vars here
|
|
}
|
|
|
|
$smarty->display("index.tpl");</programlisting>
|
|
</example>
|
|
<para>
|
|
Você pode também passar um cache id como um segundo parâmetro opcional
|
|
no caso você quer múltiplos caches para o template dado.
|
|
</para>
|
|
<example>
|
|
<title>is_cached with multiple-cache template</title>
|
|
<programlisting>
|
|
$smarty->caching = true;
|
|
|
|
if(!$smarty->is_cached("index.tpl","FrontPage")) {
|
|
// do database calls, assign vars here
|
|
}
|
|
|
|
$smarty->display("index.tpl","FrontPage");</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.load.filter">
|
|
<title>load_filter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>load_filter</function></funcdef>
|
|
<paramdef>string <parameter>type</parameter></paramdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Essa função pode ser usada para carregar um filtro de plugin. O primeiro
|
|
argumento especifica o tipo do filtro para carregar e pode ser um
|
|
dos seguintes: 'pre', 'post', ou 'output'. O segundo argumento
|
|
especifica o nome do filtro de plugin, por exemplo, 'trim'.
|
|
</para>
|
|
<example>
|
|
<title>Carregando filtros de plugins</title>
|
|
<programlisting>
|
|
$smarty->load_filter('pre', 'trim'); // load prefilter named 'trim'
|
|
$smarty->load_filter('pre', 'datefooter'); // load another prefilter named 'datefooter'
|
|
$smarty->load_filter('output', 'compress'); // load output filter named 'compress'</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.register.block">
|
|
<title>register_block</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_block</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
|
<paramdef>bool <parameter>cacheable</parameter></paramdef>
|
|
<paramdef>array or null <parameter>cache_attrs</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar dinamicamente blocos de funções de plugins.
|
|
Passe no bloco de nomes de função, seguido por uma chamada de função PHP
|
|
que implemente isso.
|
|
</para>
|
|
|
|
<para>
|
|
A chamada de uma função-php <parameter>impl</parameter> pode ser (a)
|
|
uma string contendo o nome da função ou (b) um array no formato
|
|
<literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo um
|
|
método desta classe.
|
|
</para>
|
|
<para>
|
|
<parameter>$cacheable</parameter> e <parameter>$cache_attrs</parameter> podem ser omitidos na maior parte dos casos. Veja <link linkend="caching.cacheable">Controlando modos de Saída de Cache dos Plugins</link> para obter informações apropriadas.
|
|
</para>
|
|
<example>
|
|
<title>register_block</title>
|
|
<programlisting>
|
|
/* PHP */
|
|
$smarty->register_block("translate", "do_translation");
|
|
|
|
function do_translation ($params, $content, &$smarty, &$repeat) {
|
|
if (isset($content)) {
|
|
$lang = $params['lang'];
|
|
// do some translation with $content
|
|
return $translation;
|
|
}
|
|
}
|
|
|
|
{* template *}
|
|
{translate lang="br"}
|
|
Hello, world!
|
|
{/translate}</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.register.compiler.function">
|
|
<title>register_compiler_function</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_compiler_function</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
|
<paramdef>bool <parameter>cacheable</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar dinamicamente uma função de plugin compilador.
|
|
Passe no nome da função compilador, seguido pela função
|
|
PHP que implemente isso.
|
|
</para>
|
|
<para>
|
|
A chamada para função-php <parameter>impl</parameter>
|
|
pode ser uma string contendo o nome da função ou (b) um array
|
|
no formato <literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo o método
|
|
desta classe.
|
|
</para>
|
|
<para>
|
|
<parameter>$cacheable</parameter> pode ser omitido na maioria
|
|
dos casos. Veja <link linkend="caching.cacheable">Controlando modos de Saída de Cache dos Plugins</link>
|
|
para obter informações apropriadas.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.register.function">
|
|
<title>register_function</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_function</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
|
<paramdef>bool <parameter>cacheable</parameter></paramdef>
|
|
<paramdef>array or null <parameter>cache_attrs</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar funções de plugins dinamicamente para o template.
|
|
Passe no template o nome da função,
|
|
seguido pelo nome da função PHP que implemente isso.
|
|
</para>
|
|
<para>
|
|
A chamada para função-php <parameter>impl</parameter> pode ser (a)
|
|
uma string contendo o nome da função ou (b) um array no formato
|
|
<literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo um método
|
|
desta classe.
|
|
</para>
|
|
<para>
|
|
<parameter>$cacheable</parameter> e <parameter>$cache_attrs</parameter> podem ser omitidos na maioria dos casos. Veja <link linkend="caching.cacheable">Controlando modos de Saída Cache dos Plugins</link> para obter informações apropriadas.
|
|
</para>
|
|
<example>
|
|
<title>register_function</title>
|
|
<programlisting>
|
|
$smarty->register_function("date_now", "print_current_date");
|
|
|
|
function print_current_date ($params) {
|
|
extract($params);
|
|
if(empty($format))
|
|
$format="%b %e, %Y";
|
|
return strftime($format,time());
|
|
}
|
|
|
|
// agora você pode usar isso no Smarty para mostrar a data atual: {date_now}
|
|
// ou, {date_now format="%Y/%m/%d"} para formatar isso.</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.register.modifier">
|
|
<title>register_modifier</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_modifier</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para modificar dinamicamente plugins registrados.
|
|
Passe no template o nome do modificador, seguido da função PHP
|
|
que implemente isso.
|
|
</para>
|
|
<para>
|
|
A chamada da função-php <parameter>impl</parameter>
|
|
pode ser (a) uma strin contendo o nome da função
|
|
ou (b) um array no formato
|
|
<literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo um método desta classe.
|
|
</para>
|
|
|
|
<example>
|
|
<title>register_modifier</title>
|
|
<programlisting>
|
|
// let's map PHP's stripslashes function to a Smarty modifier.
|
|
|
|
$smarty->register_modifier("sslash","stripslashes");
|
|
|
|
// now you can use {$var|sslash} to strip slashes from variables</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.register.object">
|
|
<title>register_object</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_object</function></funcdef>
|
|
<paramdef>string <parameter>object_name</parameter></paramdef>
|
|
<paramdef>object <parameter>$object</parameter></paramdef>
|
|
<paramdef>array <parameter>allowed methods/properties</parameter></paramdef>
|
|
<paramdef>boolean <parameter>format</parameter></paramdef>
|
|
<paramdef>array <parameter>block methods</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Isso é para registrar um objeto para uso no template. Veja a
|
|
<link linkend="advanced.features.objects">seção de objetos</link>
|
|
do manual para examplos.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.register.outputfilter">
|
|
<title>register_outputfilter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_outputfilter</function></funcdef>
|
|
<paramdef>mixed <parameter>function</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar dinamicamente filtros de saída para operações
|
|
na saída do template antes de mostrá-lo. Veja
|
|
<link linkend="advanced.features.outputfilters">Filtros de Saída de Templates</link>
|
|
para maiores informações de como configurar uma
|
|
função de filtro de saída.
|
|
</para>
|
|
<para>
|
|
A chamada da função-php <parameter>function</parameter> pode
|
|
ser (a) uma string contendo um nome de função ou (b) um array no formato
|
|
<literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo um método
|
|
desta classe.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.register.postfilter">
|
|
<title>register_postfilter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_postfilter</function></funcdef>
|
|
<paramdef>mixed <parameter>function</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar dinamicamente pósfiltros para rodar templates
|
|
após eles terem sido compilados. Veja
|
|
<link linkend="advanced.features.postfilters">pósfiltros de template</link> para
|
|
maiores informações de como configurar funções de pósfiltragem.
|
|
</para>
|
|
<para>
|
|
A chamada da função-php <parameter>function</parameter> pode
|
|
ser (a) uma string contendo um nome de função ou (b) um array no formato
|
|
<literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo um método
|
|
desta classe.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.register.prefilter">
|
|
<title>register_prefilter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_prefilter</function></funcdef>
|
|
<paramdef>mixed <parameter>function</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar préfiltros dinamicamente para rodar
|
|
templates antes deles serem compilados. Veja <link
|
|
linkend="advanced.features.prefilters">template prefilters</link> para
|
|
maiores informações de como configurar uma função de préfiltragem.
|
|
</para>
|
|
<para>
|
|
A chamada da função-php <parameter>function</parameter> pode
|
|
ser (a) uma string contendo um nome de função ou (b) um array no formato
|
|
<literal>array(&$object, $method)</literal> com
|
|
<literal>&$object</literal> sendo uma referência para um
|
|
objeto e <literal>$method</literal> sendo uma string
|
|
contendo o nome do método ou (c) um array no formato
|
|
<literal>array(&$class, $method)</literal> com
|
|
<literal>$class</literal> sendo um nome de classe e
|
|
<literal>$method</literal> sendo um método
|
|
desta classe.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.register.resource">
|
|
<title>register_resource</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>register_resource</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
<paramdef>array <parameter>resource_funcs</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para registrar dinamicamente um recurso de plugin com a Smarty.
|
|
Passe no nome o recurso e o array de funções
|
|
PHP que implementam isso. Veja
|
|
<link linkend="template.resources">template resources</link>
|
|
para maiores informações de como configurar uma função para retornar
|
|
templates.
|
|
</para>
|
|
<note>
|
|
<title>Notas Técnicas</title>
|
|
<para>
|
|
Um nome de recurso deve ter ao menos dois caracteres de comprimento.
|
|
Um caracter do nome de recurso irá ser ignorado e usado como parte do
|
|
path do arquivo como, $smarty->display('c:/path/to/index.tpl');
|
|
</para>
|
|
</note>
|
|
<para>
|
|
A função-php-array <parameter>resource_funcs</parameter>
|
|
deve ter 4 ou 5 elementos. Com 4 elementos os elementos são
|
|
as functions-callbacks para as respectivas funções "source",
|
|
"timestamp", "secure" e "trusted" de recurso.
|
|
Com 5 elementos o primeiro elemento tem que ser um objeto por referência
|
|
ou um nome de classe do objeto ou uma classe implementando o recurso e os 4
|
|
elementos seguintes tem que ter os nomes de métodos
|
|
implementando "source", "timestamp",
|
|
"secure" e "trusted".
|
|
</para>
|
|
<example>
|
|
<title>register_resource</title>
|
|
<programlisting>
|
|
$smarty->register_resource("db", array("db_get_template",
|
|
"db_get_timestamp",
|
|
"db_get_secure",
|
|
"db_get_trusted"));</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.trigger.error">
|
|
<title>trigger_error</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>trigger_error</function></funcdef>
|
|
<paramdef>string <parameter>error_msg</parameter></paramdef>
|
|
<paramdef>[int <parameter>level</parameter>]</paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Essa função pode ser usada para saída de uma mensagem de erro usando Smarty.
|
|
O parâmetro <parameter>level</parameter> pode ser um dos valores usados
|
|
para a função de php trigger_error(), ex.: E_USER_NOTICE,
|
|
E_USER_WARNING, etc. Por padrão é E_USER_WARNING.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="api.template.exists">
|
|
<title>template_exists</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>bool <function>template_exists</function></funcdef>
|
|
<paramdef>string <parameter>template</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Essa função checa se o template especificado existe. Isso pode
|
|
aceitar um path para o template no filesystem ou um recurso de string
|
|
especificando o template.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.block">
|
|
<title>unregister_block</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_block</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para desregistrar dinamicamente um bloco de funções de plugin.
|
|
Passe no bloco o nome da função.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.compiler.function">
|
|
<title>unregister_compiler_function</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_compiler_function</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use essa função para desregistrar uma função de compilador. Passe
|
|
o nome da função de compilador.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.function">
|
|
<title>unregister_function</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_function</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para desregistrar dinamicamente uma função de plugin do template.
|
|
Passe no template o nome da função.
|
|
</para>
|
|
<example>
|
|
<title>unregister_function</title>
|
|
<programlisting>
|
|
// nós não queremos que designers template tenham acesso aos nossos arquivos do sistema
|
|
|
|
$smarty->unregister_function("fetch");</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.unregister.modifier">
|
|
<title>unregister_modifier</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_modifier</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para desregistrar dincamimente um modificador de plugin.
|
|
Passe no template o nome do modificador.
|
|
</para>
|
|
<example>
|
|
<title>unregister_modifier</title>
|
|
<programlisting>
|
|
// nós não queremos que designers de template usem strip tags para os elementos
|
|
|
|
$smarty->unregister_modifier("strip_tags");</programlisting>
|
|
</example>
|
|
</sect1>
|
|
<sect1 id="api.unregister.object">
|
|
<title>unregister_object</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_object</function></funcdef>
|
|
<paramdef>string <parameter>object_name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para desregistrar um objeto.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.outputfilter">
|
|
<title>unregister_outputfilter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_outputfilter</function></funcdef>
|
|
<paramdef>string <parameter>function_name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para desregistrar dinamicamente um filtro de saída.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.postfilter">
|
|
<title>unregister_postfilter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_postfilter</function></funcdef>
|
|
<paramdef>string <parameter>function_name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para dinamicamente desregistrar um pósfiltro.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.prefilter">
|
|
<title>unregister_prefilter</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_prefilter</function></funcdef>
|
|
<paramdef>string <parameter>function_name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para dinamicamente desregistrar um préfiltro.
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="api.unregister.resource">
|
|
<title>unregister_resource</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>void <function>unregister_resource</function></funcdef>
|
|
<paramdef>string <parameter>name</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Use isso para dinamicamente desregistrar um recurso de plugin.
|
|
Passe no parâmetro nome o nome do recurso.
|
|
</para>
|
|
<example>
|
|
<title>unregister_resource</title>
|
|
<programlisting>
|
|
$smarty->unregister_resource("db");</programlisting>
|
|
</example>
|
|
</sect1>
|
|
</chapter>
|
|
<!-- 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
|
|
-->
|
|
|