insertNome do AtributoTipoObrigatórioPadrãoDescriçãonamestringSimn/dO nome da função insert (insert_name)assignstringNãon/dO nome da variável que
irá receber a saídascriptstringNã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.
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.