Get Smarty

Donate

Paypal

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.

Comments
No comments for this page.

Advertisement