Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

insert

Nome do Atributo Tipo Obrigatório Padrão Descrição
name string Sim n/d O nome da função insert (insert_name)
assign string Não n/d O nome da variável que irá receber a saída
script string Não n/d O nome de um script php que será incluido antes que a função insert seja chamada
[var ...] [var type] Não n/d Variá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.

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