Files
smarty/docs/pt_BR/designers/language-builtin-functions/language-function-insert.xml
nlopess f8014929e5 fix revision tags
@@arg0@
2004-10-03 09:04:23 +00:00

147 lines
6.0 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: thomasgm Status: ready -->
<sect1 id="language.function.insert">
<title>insert</title>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Nome do Atributo</entry>
<entry>Tipo</entry>
<entry>Obrigatório</entry>
<entry>Padrão</entry>
<entry>Descrição</entry>
</row>
</thead>
<tbody>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>Sim</entry>
<entry><emphasis>n/d</emphasis></entry>
<entry>O nome da função insert (insert_name)</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Não</entry>
<entry><emphasis>n/d</emphasis></entry>
<entry>O nome da variável que
irá receber a saída</entry>
</row>
<row>
<entry>script</entry>
<entry>string</entry>
<entry>Não</entry>
<entry><emphasis>n/d</emphasis></entry>
<entry>O nome de um script php que será incluido
antes que a função insert seja chamada</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[var type]</entry>
<entry>Não</entry>
<entry><emphasis>n/d</emphasis></entry>
<entry>Variável para passar para a função insert</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Tags insert funcionam parecido com as tags include, exceto que as tags
insert não vão para o cache quando <link
linkend="caching">caching</link> esta ativado. Ela será
executada a cada invocação do template.
</para>
<para>
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.
</para>
<example>
<title>função insert</title>
<programlisting>
{* exemplo de como obter um banner *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}</programlisting>
</example>
<para>
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.
</para>
<para>
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.
</para>
<note>
<title>Nota</title>
<para>
definir a saída para uma variável não é
útil quando o cache esta ativo.
</para>
</note>
<para>
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.
</para>
<para>
O objeto Smarty é passado como segundo argumento. Deste modo
você pode refenciar o objeto Smarty
de dentro da função.
</para>
<note>
<title>Nota Tecnica</title>
<para>
É possível ter partes do template fora do cache.
se você tiver <link linkend="caching">caching</link>
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.
</para>
</note>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->