wiki:WF/Metodos

Version 1 (modified by trac, 17 years ago) (diff)

--

append

----

void append (mixed var)

void append (string varname, mixed var)

void append (string varname, mixed var, boolean merge)

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.

Notas Técnicas: 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.

Exemplo 13-1. append

passing name/value pairs

$smarty->append("Name","Fred");

$smarty->append("Address",$address);

passing an associative array

$smarty->append(array("city" => "Lincoln","state" => "Nebraska"));

append_by_ref


void append_by_ref (string varname, mixed var)

void append_by_ref (string varname, mixed var, boolean merge)

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.

Notas Técnicas: 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.

Exemplo 13-2. append_by_ref

appending name/value pairs

$smarty->append_by_ref("Name",$myname);

$smarty->append_by_ref("Address",$address);

assign


void assign (mixed var)

void assign (string varname, mixed var)

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.

Exemplo 13-3. assign

passing name/value pairs

$smarty->assign("Name","Fred");

$smarty->assign("Address",$address);

passing an associative array

$smarty->assign(array("city" => "Lincoln","state" => "Nebraska"));

assign_by_ref


void assign_by_ref (string varname, mixed var)

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.

Notas Técnicas: 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.

Exemplo 13-4. assign_by_ref

passing name/value pairs

$smarty->assign_by_ref("Name",$myname);

$smarty->assign_by_ref("Address",$address);

clear_all_assign


void clear_all_assign ()

Isso limpa o valor de todas as variáveis fixadas.

Exemplo 13-5. clear_all_assign

clear all assigned variables

$smarty->clear_all_assign();

clear_all_cache


void clear_all_cache (int expire time)

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.

Exemplo 13-6. clear_all_cache

clear the entire cache

$smarty->clear_all_cache();

clear_assign


void clear_assign (string var)

Isso limpa o valor de uma variável fixada. Isso pode ser um valor simples, ou um array de valores.

Exemplo 13-7. clear_assign

clear a single variable

$smarty->clear_assign("Name");

clear multiple variables

$smarty->clear_assign(array("Name","Address","Zip"));

clear_cache


void clear_cache ( [string template [, string cache id [, string compile id [, int expire time]]]])

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

Exemplo 13-8. clear_cache

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");

clear_compiled_tpl


void clear_compiled_tpl (string tpl_file)

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.

Exemplo 13-9. clear_compiled_tpl

clear a specific template resource

$smarty->clear_compiled_tpl("index.tpl");

clear entire compile directory

$smarty->clear_compiled_tpl();

clear_config


void clear_config ( [string var])

Isso limpa todas as variáveis de configuração fixadas. Se um nome de variável é fornecido, somente esta variável é apagada.

Exemplo 13-10. clear_config

clear all assigned config variables.

$smarty->clear_config();

clear one variable

$smarty->clear_config('foobar');

config_load


void config_load ( string file [, string section])

Isso carrega o arquivo de configuração de dados e fixa-o para o template. Isso funciona idêntico a função config_load.

Notas Técnicas: À 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 force_compile e compile_check parâmetros de configuração.

Exemplo 13-11. config_load

load config variables and assign them

$smarty->config_load('my.conf');

load a section

$smarty->config_load('my.conf','foobar');

display


void display ( string template [, string cache_id [, string compile_id]])

Isso mostra o template. Fornecendo um válido template resource tipo e path. Como um segundo parâmetro opcional, você pode passar um cache id. Veja o caching section para maiores informações.

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 $compile_id ao invés de passar isso para cada chamada de display().

Exemplo 13-12. display

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");

Use a sintaxe para template resources para mostrar arquivos fora do $template_dir directory.

Exemplo 13-13. Exemplos de recursos da função display

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");

fetch


string fetch ( string template [, string cache_id [, string compile_id]])

Isso retorna a saída do template ao invés de mostrá-lo. Fornecendo um tipo ou path válido template resource. Como um segundo parâmetro opcional, você pode passar o cache id. Veja o caching section para maiores informações.

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 $compile_id ao invés de passá-la para cada chamada de fetch().

Exemplo 13-14. fetch

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;

get_config_vars


array get_config_vars ( [string varname])

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.

Exemplo 13-15. get_config_vars

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);

get_registered_object


array get_registered_object (string object_name)

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.

Exemplo 13-16. get_registered_object

function smarty_block_foo($params, &$smarty) {

if (isset[$paramsobject?]) {

get reference to registered object

$obj_ref =& $smarty->&get_registered_object($paramsobject?);

use $obj_ref is now a reference to the object

}

}

get_template_vars


array get_template_vars ( [string varname])

Isso retorna o valor de uma variável fixada. Se nenhum parâmetro é dado, um array de todas as variávels fixadas é retornado.

Exemplo 13-17. get_template_vars

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);

is_cached


void is_cached (string template, [string cache_id])

Isso retorna true se há um cache válido para esse template. Isso somente funciona se caching está setado para true.

Exemplo 13-18. is_cached

$smarty->caching = true;

if(!$smarty->is_cached("index.tpl")) {

do database calls, assign vars here

}

$smarty->display("index.tpl");

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.

Exemplo 13-19. is_cached with multiple-cache template

$smarty->caching = true;

if(!$smarty->is_cached("index.tpl","FrontPage?")) {

do database calls, assign vars here

}

$smarty->display("index.tpl","FrontPage?");

load_filter


void load_filter (string type, string name)

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

Exemplo 13-20. Carregando filtros de plugins

$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'

register_block


void register_block (string name, mixed impl, bool cacheable, array or null cache_attrs)

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.

A chamada de uma função-php impl pode ser (a) uma string contendo o nome da função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

$cacheable e $cache_attrs podem ser omitidos na maior parte dos casos. Veja Controlando modos de Saída de Cache dos Plugins para obter informações apropriadas.

Exemplo 13-21. register_block

/* PHP */

$smarty->register_block("translate", "do_translation");

function do_translation ($params, $content, &$smarty, &$repeat) {

if (isset($content)) {

$lang = $paramslang?;

do some translation with $content

return $translation;

}

}

{* template *}

{translate lang="br"}

Hello, world!

{/translate}

register_compiler_function


void register_compiler_function (string name, mixed impl, bool cacheable)

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.

A chamada para função-php impl pode ser uma string contendo o nome da função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo o método desta classe.

$cacheable pode ser omitido na maioria dos casos. Veja Controlando modos de Saída de Cache dos Plugins para obter informações apropriadas.

register_function


void register_function (string name, mixed impl, bool cacheable, array or null cache_attrs)

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.

A chamada para função-php impl pode ser (a) uma string contendo o nome da função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

$cacheable e $cache_attrs podem ser omitidos na maioria dos casos. Veja Controlando modos de Saída Cache dos Plugins para obter informações apropriadas.

Exemplo 13-22. register_function

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

register_modifier


void register_modifier (string name, mixed impl)

Use isso para modificar dinamicamente plugins registrados. Passe no template o nome do modificador, seguido da função PHP que implemente isso.

A chamada da função-php impl pode ser (a) uma strin contendo o nome da função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

Exemplo 13-23. register_modifier

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

register_object


void register_object (string object_name, object $object, array allowed methods/properties, boolean format, array block methods)

Isso é para registrar um objeto para uso no template. Veja a seção de objetos do manual para examplos.

register_outputfilter


void register_outputfilter (mixed function)

Use isso para registrar dinamicamente filtros de saída para operações na saída do template antes de mostrá-lo. Veja Filtros de Saída de Templates para maiores informações de como configurar uma função de filtro de saída.

A chamada da função-php function pode ser (a) uma string contendo um nome de função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

register_postfilter


void register_postfilter (mixed function)

Use isso para registrar dinamicamente pósfiltros para rodar templates após eles terem sido compilados. Veja pósfiltros de template para maiores informações de como configurar funções de pósfiltragem.

A chamada da função-php function pode ser (a) uma string contendo um nome de função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

register_prefilter


void register_prefilter (mixed function)

Use isso para registrar préfiltros dinamicamente para rodar templates antes deles serem compilados. Veja template prefilters para maiores informações de como configurar uma função de préfiltragem.

A chamada da função-php function pode ser (a) uma string contendo um nome de função ou (b) um array no formato array(&$object, $method) com &$object sendo uma referência para um objeto e $method sendo uma string contendo o nome do método ou (c) um array no formato array(&$class, $method) com $class sendo um nome de classe e $method sendo um método desta classe.

register_resource


void register_resource (string name, array resource_funcs)

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 template resources para maiores informações de como configurar uma função para retornar templates.

Notas Técnicas: 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');

A função-php-array resource_funcs 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".

Exemplo 13-24. register_resource

$smarty->register_resource("db", array("db_get_template",

"db_get_timestamp",

"db_get_secure",

"db_get_trusted"));

trigger_error


void trigger_error (string error_msg, [int level])

Essa função pode ser usada para saída de uma mensagem de erro usando Smarty. O parâmetro level 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.

template_exists


bool template_exists (string template)

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.

unregister_block


void unregister_block (string name)

Use isso para desregistrar dinamicamente um bloco de funções de plugin. Passe no bloco o nome da função.

unregister_compiler_function


void unregister_compiler_function (string name)

Use essa função para desregistrar uma função de compilador. Passe o nome da função de compilador.

unregister_function


void unregister_function (string name)

Use isso para desregistrar dinamicamente uma função de plugin do template. Passe no template o nome da função.

Exemplo 13-25. unregister_function

nós não queremos que designers template tenham acesso aos nossos arquivos do sistema

$smarty->unregister_function("fetch");

unregister_modifier


void unregister_modifier (string name)

Use isso para desregistrar dincamimente um modificador de plugin. Passe no template o nome do modificador.

Exemplo 13-26. unregister_modifier

nós não queremos que designers de template usem strip tags para os elementos

$smarty->unregister_modifier("strip_tags");

unregister_object


void unregister_object (string object_name)

Use isso para desregistrar um objeto.

unregister_outputfilter


void unregister_outputfilter (string function_name)

Use isso para desregistrar dinamicamente um filtro de saída.

unregister_postfilter


void unregister_postfilter (string function_name)

Use isso para dinamicamente desregistrar um pósfiltro.

unregister_prefilter


void unregister_prefilter (string function_name)

Use isso para dinamicamente desregistrar um préfiltro.

unregister_resource


void unregister_resource (string name)

Use isso para dinamicamente desregistrar um recurso de plugin. Passe no parâmetro nome o nome do recurso.

Exemplo 13-27. unregister_resource

$smarty->unregister_resource("db");