smarty template engine
Saturday, May 17, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


insert

Nome do AtributoTipoObrigatórioPadrãoDescrição
namestringSimn/dO nome da função insert (insert_name)
assignstringNãon/dO nome da variável que irá receber a saída
scriptstringNãon/dO nome de um script php que será incluido antes que a função insert seja chamada
[var ...][var type]Nãon/dVariável para passar para a função insert

Tags insert funcionam parecido com as tags include, exceto que as tags insert não vão para o cache quando caching esta ativado. Ela será executada a cada invocação do template.

Digamos que você tenha um template com um banner no topo da página. O banner pode conter uma mistura de html, imagens, flash, etc. Assim nós não podemos usar um link estatico aqui, e nós não queremos que este conteúdo fique no cache junto com a página. E aí que entra a tag insert: o template conhece os valores #banner_location_id# e #site_id# (obtidos de um arquivo de configuração), e precisa chamar uma função para obter o conteúdo do banner.

Exemplo 7-10. função insert

{* exemplo de como obter um banner *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}

Neste exemplo, nós estamos usando o nome "getBanner" e passando os parâmetros #banner_location_id# e #site_id#. O Smarty irá procurar por uma função chamada insert_getBanner() na sua aplicação PHP, passando os valores de #banner_location_id# e #site_id# como primeiro argumento em uma matriz associativa. Todos os nomes de função insert em sua aplicação devem ser precedidas por "insert_" para prevenir possíveis problemas com nomes de funções repetidos. Sua função insert_getBanner() deve fazer alguma coisa com os valores passados e retornar os resultados. Estes resultados são mostrados no template no lugar da tag insert. Neste exemplo, o Smarty irá chamar esta função: insert_getBanner(array("lid" => "12345","sid" => "67890")); e mostrar o resultado retornado no lugar da tag insert.

Se você passar o atributo "assign", a saída da tag insert será dada para esta variável ao invés de ser mostrada no template.

Nota: definir a saída para uma variável não é útil quando o cache esta ativo.

Se você passar o atributo "script", este script php será incluido (apenas uma vez) antes da execução da função insert. Este é o caso onde a função insert não existe ainda, e um script php deve ser incluído antes para faze-la funcionar. O caminho pode ser absoluto ou relativo à variável $trusted_dir. Quando a segurança esta ativada, o script deve estar no local definido na variável $trusted_dir.

O objeto Smarty é passado como segundo argumento. Deste modo você pode refenciar o objeto Smarty de dentro da função.

Nota Tecnica: É possível ter partes do template fora do cache. se você tiver caching ativado, tags insert não estarão no cache. Ela será executada dinamicamente a cada vez que a página seja criada, mesmo com páginas em cache. Isto funciona bem para coisas como banners, pesquisa, previsões do tempo, resultados de pesquisa, áreas de opnião do usuário, etc.




 

credits 

Smarty Copyright © 2002-2008 New Digital Group, Inc.
All rights reserved.
Last updated: Tue Feb 12 09:11:29 2008 CST