mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 02:44:27 +02:00
review of text and changed all examples to CDATA support
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do Atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -40,7 +40,7 @@
|
||||
capture <20> usado para coletar toda a sa<73>da do template em uma vari<72>vel ao inv<6E>s
|
||||
de mostra-lo. Qualquer conte<74>do entre {capture
|
||||
name="foo"} e {/capture} coletado na vari<72>vel especificada no atributo name.
|
||||
O conte<74>do capturado pode ser usado no template a apertir da vari<72>vel especial
|
||||
O conte<74>do capturado pode ser usado no template a partir da vari<72>vel especial
|
||||
$smarty.capture.foo aonde foo <20> o valor passado para o atributo name. Se voc<6F> n<>o
|
||||
passar um atributo name, ent<6E>o ser<65> usado "default". Todos os comandos
|
||||
{capture} devem ter o seu {/capture}. Voc<6F> pode aninhar(colocar um dentro de outro)
|
||||
@@ -66,17 +66,20 @@
|
||||
<example>
|
||||
<title>capturando conte<74>do do template</title>
|
||||
<programlisting>
|
||||
{* we don't want to print a table row unless content is displayed *}
|
||||
<![CDATA[
|
||||
{* n<>s n<>o queremos mostrar uma linha de tabela <20> n<>o ser que haja conte<74>do para ela *}
|
||||
{capture name=banner}
|
||||
{include file="get_banner.tpl"}
|
||||
{include file="pegar_banner.tpl"}
|
||||
{/capture}
|
||||
{if $smarty.capture.banner ne ""}
|
||||
<tr>
|
||||
<td>
|
||||
<tr>
|
||||
<td>
|
||||
{$smarty.capture.banner}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}</programlisting>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</sect1>
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do Atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -23,14 +23,14 @@
|
||||
<entry>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Sim</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome do arquivo de configura<72><61>o para incluir</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>section</entry>
|
||||
<entry>string</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da se<73><65>o a carregar</entry>
|
||||
</row>
|
||||
<row>
|
||||
@@ -56,7 +56,7 @@
|
||||
<entry>
|
||||
Quando ou n<>o as vari<72>veis s<>o visiveis para o template
|
||||
superior(aquele que chamou este), o mesmo que scope=parent.
|
||||
NOTA: este atributo esta obsoleto pelo atributo scope, mas
|
||||
NOTA: este atributo esta obsoleto devido ao atributo scope, mas
|
||||
ainda <20> suportado. Se scope for indicado, este valor <20> ignorado.
|
||||
</entry>
|
||||
</row>
|
||||
@@ -65,31 +65,33 @@
|
||||
</informaltable>
|
||||
<para>
|
||||
Esta fun<75><6E>o <20> usada para carregar as vari<72>veis de um arquivo de configura<72><61>o
|
||||
dentro de um template. Veja <link linkend="config.files">Config Files</link>
|
||||
para maiores
|
||||
informa<6D><61>es.
|
||||
dentro de um template. Veja <link linkend="config.files">Arquivos de Configura<72><61>o</link>
|
||||
para mais informa<6D><61>es.
|
||||
</para>
|
||||
<example>
|
||||
<title>Fun<EFBFBD><EFBFBD>o config_load</title>
|
||||
|
||||
<programlisting>
|
||||
{config_load file="colors.conf"}
|
||||
<![CDATA[
|
||||
{config_load file="cores.conf"}
|
||||
|
||||
<html>
|
||||
<title>{#pageTitle#}</title>
|
||||
<body bgcolor="{#bodyBgColor#}">
|
||||
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
|
||||
<tr bgcolor="{#rowBgColor#}">
|
||||
<td>First</td>
|
||||
<td>Last</td>
|
||||
<td>Address</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html></programlisting>
|
||||
<html>
|
||||
<title>{#tituloPagina#}</title>
|
||||
<body bgcolor="{#cordeFundo}">
|
||||
<table border="{#tamanhoBordaTabela}" bgcolor="{#cordeFundotabela#}">
|
||||
<tr bgcolor="{#cordeFundoLinha#}">
|
||||
<td>First</td>
|
||||
<td>Last</td>
|
||||
<td>Address</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Arquivos de configura<72><61>o podem conter se<73><65>es tamb<6D>m. Voce pode carregar
|
||||
Arquivos de configura<72><61>o podem conter se<73><65>es tamb<6D>m. Voc<EFBFBD> pode carregar
|
||||
vari<72>veis de uma se<73><65>o adicionando o atributo
|
||||
<emphasis>section</emphasis>.
|
||||
</para>
|
||||
@@ -102,20 +104,23 @@
|
||||
<example>
|
||||
<title>Fun<EFBFBD><EFBFBD>o config_load com se<73><65>es</title>
|
||||
<programlisting>
|
||||
{config_load file="colors.conf" section="Customer"}
|
||||
<![CDATA[
|
||||
{config_load file="cores.conf" section="Consumidor"}
|
||||
|
||||
<html>
|
||||
<title>{#pageTitle#}</title>
|
||||
<body bgcolor="{#bodyBgColor#}">
|
||||
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
|
||||
<tr bgcolor="{#rowBgColor#}">
|
||||
<td>First</td>
|
||||
<td>Last</td>
|
||||
<td>Address</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html></programlisting>
|
||||
<html>
|
||||
<title>{#tituloPagina#}</title>
|
||||
<body bgcolor="{#cordeFundo}">
|
||||
<table border="{#tamanhoBordaTabela}" bgcolor="{#cordeFundotabela#}">
|
||||
<tr bgcolor="{#cordeFundoLinha#}">
|
||||
<td>First</td>
|
||||
<td>Last</td>
|
||||
<td>Address</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do Atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -23,14 +23,14 @@
|
||||
<entry>from</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Sim</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da matriz que voc<6F> estar<61> pegando os elementos</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>item</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Yes</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da vari<72>vel
|
||||
que <20> o elemento atual</entry>
|
||||
</row>
|
||||
@@ -38,14 +38,14 @@
|
||||
<entry>key</entry>
|
||||
<entry>string</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da vari<72>vel que <20> a chave atual</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome do loop foreach para acessar as
|
||||
propriedades foreach</entry>
|
||||
</row>
|
||||
@@ -73,49 +73,58 @@
|
||||
<example>
|
||||
<title>foreach</title>
|
||||
<programlisting>
|
||||
|
||||
<![CDATA[
|
||||
{* este exemplo ir<69> mostrar todos os valores da matriz $custid *}
|
||||
{foreach from=$custid item=curr_id}
|
||||
id: {$curr_id}<br>
|
||||
id: {$curr_id}<br>
|
||||
{/foreach}
|
||||
|
||||
MOSTRA:
|
||||
|
||||
id: 1000<br>
|
||||
id: 1001<br>
|
||||
id: 1002<br></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
id: 1000<br>
|
||||
id: 1001<br>
|
||||
id: 1002<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>foreach key</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* A key cont<6E>m a chave para cada valor do loop
|
||||
|
||||
A defini<6E><69>o <EFBFBD> alo assim:
|
||||
A defini<6E><69>o se parece com isso:
|
||||
|
||||
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
|
||||
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
|
||||
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
|
||||
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
|
||||
|
||||
*}
|
||||
|
||||
{foreach name=outer item=contact from=$contacts}
|
||||
{foreach key=key item=item from=$contact}
|
||||
{$key}: {$item}<br>
|
||||
{$key}: {$item}<br>
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
|
||||
MOSTRA:
|
||||
|
||||
phone: 1<br>
|
||||
fax: 2<br>
|
||||
cell: 3<br>
|
||||
phone: 555-4444<br>
|
||||
fax: 555-3333<br>
|
||||
cell: 760-1234<br></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
phone: 1<br>
|
||||
fax: 2<br>
|
||||
cell: 3<br>
|
||||
phone: 555-4444<br>
|
||||
fax: 555-3333<br>
|
||||
cell: 760-1234<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
Loop foreach tamb<6D>m tem as suas pr<70>prias vari<72>veis para manipilar a as propriedades
|
||||
Loop foreach tamb<6D>m tem as suas pr<70>prias vari<72>veis para manipilar as propriedades
|
||||
foreach. Estas s<>o indicadas assim: {$smarty.foreach.foreachname.varname} com
|
||||
foreachname sendo o nome especificado no atributo
|
||||
<emphasis>name</emphasis> do foreach.
|
||||
|
@@ -3,20 +3,134 @@
|
||||
<sect1 id="language.function.if">
|
||||
<title>if,elseif,else</title>
|
||||
<para>
|
||||
Comandos if no Smarty tem muito da mesma flexibilidade do php,
|
||||
com algumas adi<EFBFBD><EFBFBD>es para a ferramenta de template.
|
||||
Comandos {if} no Smarty tem muito da mesma flexibilidade do php,
|
||||
com algumas caracter<EFBFBD>sticas <20> mais para o sistema de template.
|
||||
Todo <emphasis>if</emphasis> deve ter o seu
|
||||
<emphasis>/if</emphasis>. <emphasis>else</emphasis> e
|
||||
<emphasis>elseif</emphasis> tamb<6D>m s<>o permitidos. "eq", "ne","neq",
|
||||
"gt", "lt", "lte", "le", "gte" "ge","is even","is odd", "is not
|
||||
even","is not odd","not","mod","div by","even by","odd
|
||||
by","==","!=",">", "<","<=",">=" s<>o todos os qualificadores
|
||||
de condi<64><69>o v<>lidos, e ddevem estar separados
|
||||
dos elementos em roda por espa<70>o.
|
||||
<emphasis>elseif</emphasis> tamb<6D>m s<>o permitidos. Todos os
|
||||
condicionais do PHP s<>o reconhecidos, tais como ||, or, &&, and, etc.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A seguir est<73> uma lsita dos qualificadores, que devem estar separados dos elementos
|
||||
por espa<70>o. Note que itens listado entre [conchetes] s<>o opcionais. Os equivalentes
|
||||
em PHP s<>o mostrados quando aplic<69>veis.
|
||||
</para>
|
||||
<informaltable frame="all">
|
||||
<tgroup cols="4">
|
||||
<colspec colname="qualifier" align="center" />
|
||||
<colspec colname="alternates" align="center" />
|
||||
<colspec colname="example" />
|
||||
<colspec colname="meaning" />
|
||||
<colspec colname="php" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Qualificador</entry>
|
||||
<entry>Alternativas</entry>
|
||||
<entry>Exemplo de sintaxe</entry>
|
||||
<entry>Significado</entry>
|
||||
<entry>Equivalente no PHP</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>==</entry>
|
||||
<entry>eq</entry>
|
||||
<entry>$a eq $b</entry>
|
||||
<entry>iguais</entry>
|
||||
<entry>==</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>!=</entry>
|
||||
<entry>ne, neq</entry>
|
||||
<entry>$a neq $b</entry>
|
||||
<entry>n<EFBFBD>o iguais</entry>
|
||||
<entry>!=</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>></entry>
|
||||
<entry>gt</entry>
|
||||
<entry>$a gt $b</entry>
|
||||
<entry>maior que</entry>
|
||||
<entry>></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><</entry>
|
||||
<entry>lt</entry>
|
||||
<entry>$a lt $b</entry>
|
||||
<entry>menor que</entry>
|
||||
<entry><</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>>=</entry>
|
||||
<entry>gte, ge</entry>
|
||||
<entry>$a ge $b</entry>
|
||||
<entry>maior ou igual <20></entry>
|
||||
<entry>>=</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><=</entry>
|
||||
<entry>lte, le</entry>
|
||||
<entry>$a le $b</entry>
|
||||
<entry>menor ou igual <20></entry>
|
||||
<entry><=</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>!</entry>
|
||||
<entry>not</entry>
|
||||
<entry>not $a</entry>
|
||||
<entry>nega<EFBFBD><EFBFBD>o (unary)</entry>
|
||||
<entry>!</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>%</entry>
|
||||
<entry>mod</entry>
|
||||
<entry>$a mod $b</entry>
|
||||
<entry>m<EFBFBD>dulo</entry>
|
||||
<entry>%</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] div by</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not div by 4</entry>
|
||||
<entry>divis<EFBFBD>vel por</entry>
|
||||
<entry>$a % $b == 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] even</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not even</entry>
|
||||
<entry>[not] an even number (unary)</entry>
|
||||
<entry>$a % 2 == 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] even by</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not even by $b</entry>
|
||||
<entry>grouping level [not] even</entry>
|
||||
<entry>($a / $b) % 2 == 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] odd</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not odd</entry>
|
||||
<entry>[not] an odd number (unary)</entry>
|
||||
<entry>$a % 2 != 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] odd by</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not odd by $b</entry>
|
||||
<entry>[not] an odd grouping</entry>
|
||||
<entry>($a / $b) % 2 != 0</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<example>
|
||||
<title>comandos if</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{if $name eq "Fred"}
|
||||
Welcome Sir.
|
||||
{elseif $name eq "Wilma"}
|
||||
@@ -43,7 +157,7 @@
|
||||
|
||||
|
||||
{* parenteses s<>o permitidos *}
|
||||
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
|
||||
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
|
||||
...
|
||||
{/if}
|
||||
|
||||
@@ -63,7 +177,7 @@
|
||||
...
|
||||
{/if}
|
||||
|
||||
{* test if var is divisible by 4 *}
|
||||
{* verifica se a vari<72>vel <20> divis<69>vel por 4 *}
|
||||
{if $var is div by 4}
|
||||
...
|
||||
{/if}
|
||||
@@ -77,7 +191,9 @@
|
||||
{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}
|
||||
{if $var is even by 3}
|
||||
...
|
||||
{/if}</programlisting>
|
||||
{/if}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do Atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -45,18 +45,29 @@
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<note>
|
||||
<title>Nota T<>cnica</title>
|
||||
<para>
|
||||
include_php est<73> quase sendo retirado do Smarty, voc<6F> pode obter a mesma funcionalidade
|
||||
usando uma fun<75><6E>o customizada em um template. A <20>nica raz<61>o para usar o include_php <20>
|
||||
se voc<6F> realmente precisar deixar fun<75><6E>o php fora do diret<65>rio de plugin ou c<>digo da
|
||||
sua aplica<63><61>o. Veja a se<73><65>o
|
||||
<link linkend="tips.componentized.templates">templates componentizados</link>
|
||||
para mais detalhes.
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
Tags include_php s<>o usadas para incluir um script php no seu template.
|
||||
Se a seguran<61>a estiver ativada, ent<6E>o o script php deve estar localizado
|
||||
no caminho $trusted_dir. A tag include_php deve ter o atributo
|
||||
"file", o qual cont<6E>m o caminho para o arquivo php a ser inclu<6C>do,
|
||||
ou relativo a $trusted_dir, ou um caminho absoluto.
|
||||
no diret<EFBFBD>rio especificado na vari<72>vel $trusted_dir. A tag include_php
|
||||
deve ter o atributo "file", o qual cont<6E>m o caminho para o arquivo php
|
||||
inclu<EFBFBD>do, pode ser um camiho tanto absoluto ou relativo a $trusted_dir.
|
||||
</para>
|
||||
<para>
|
||||
include_php <20> um bom meio de manipular templates com componentes,
|
||||
e mante o c<>digo PHP separado dos arquivos de template. Vamos dizer
|
||||
include_php <20> um bom meio de manipular templates componentizados,
|
||||
e manter o c<>digo PHP separado dos arquivos de template. Digamos
|
||||
que voc<6F> tenha um template que mostre a navega<67><61>o do seu site, o qual
|
||||
<09> prenchido automaticamente a partir de um banco de dados. Voc<6F> pode
|
||||
<09> preenchido automaticamente a partir de um banco de dados. Voc<6F> pode
|
||||
manter a sua l<>gica PHP que obt<62>m os dados em um diret<65>rio separado,
|
||||
e inclui-la no topo do template. Agora voc<6F> pode incluir este template
|
||||
em qualquer lugar sem se preocupar se a informa<6D><61>o do banco de dados foi
|
||||
@@ -82,29 +93,32 @@
|
||||
<example>
|
||||
<title>Fun<EFBFBD><EFBFBD>o include_php</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
load_nav.php
|
||||
-------------
|
||||
|
||||
<?php
|
||||
<?php
|
||||
|
||||
// carrega vari<72>veis de um banco de dados mysql e define ela para o template
|
||||
// carrega vari<72>veis de um banco de dados mysql e define elas para o template
|
||||
require_once("MySQL.class.php");
|
||||
$sql = new MySQL;
|
||||
$sql->query("select * from site_nav_sections order by name",SQL_ALL);
|
||||
$this->assign('sections',$sql->record);
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
|
||||
index.tpl
|
||||
---------
|
||||
|
||||
{* caminho absoluto ou relativo a $trusted_dir *}
|
||||
{include_php file="/path/to/load_nav.php"}
|
||||
{include_php file="/caminho/para/load_nav.php"}
|
||||
|
||||
{foreach item="curr_section" from=$sections}
|
||||
<a href="{$curr_section.url}">{$curr_section.name}</a><br>
|
||||
{/foreach}</programlisting>
|
||||
<a href="{$curr_section.url}">{$curr_section.name}</a><br>
|
||||
{/foreach}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do Atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -23,14 +23,14 @@
|
||||
<entry>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Sim</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome do arquivo de template a incluir</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome de uma vari<72>vel que ir<69>
|
||||
conter toda a sa<73>da do template</entry>
|
||||
</row>
|
||||
@@ -38,32 +38,35 @@
|
||||
<entry>[var ...]</entry>
|
||||
<entry>[var type]</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>Vari<EFBFBD>vel para passar localmente para o template</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Tags include s<>o usados para incluir outros templates no template
|
||||
atual. Quaisquer vari<72>veis dispon<6F>veis no template atual tamb<6D>m esta
|
||||
dispon<6F>vel dentro do template incluido. A tag include deve ter o atributo
|
||||
Tags include s<>o usadas para incluir outros templates no template
|
||||
atual. Quaisquer vari<72>veis dispon<6F>veis no template atual tamb<6D>m estar<EFBFBD>o
|
||||
dispon<6F>veis junto com template inclu<EFBFBD>do. A tag include deve ter o atributo
|
||||
"file", o qual cont<6E>m o caminho do arquivo a incluir.
|
||||
</para>
|
||||
<para>
|
||||
Voc<6F> pode opcionalmente passar o atributo <emphasis>assign</emphasis>,
|
||||
o qual ir<69> especificar o nome de uma vari<72>vel de template para a qual
|
||||
conter<65> toda a sa<EFBFBD>da de <emphasis>include</emphasis> ao
|
||||
inv<6E>s de mostra-la.
|
||||
conter<65> todo o conte<EFBFBD>do do <emphasis>include</emphasis> ao
|
||||
inv<6E>s de mostr<EFBFBD>-lo.
|
||||
</para>
|
||||
<example>
|
||||
<title>function include</title>
|
||||
<programlisting>
|
||||
{include file="header.tpl"}
|
||||
<![CDATA[
|
||||
{include file="cabecalho.tpl"}
|
||||
|
||||
{* O corpo do template vai aqui *}
|
||||
{* O conte<EFBFBD>do do template vem aqui *}
|
||||
|
||||
{include file="footer.tpl"}</programlisting>
|
||||
{include file="rodape.tpl"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Voc<6F> pode tamb<6D>m passar vari<72>veis para o template inclu<6C>do como atributos.
|
||||
@@ -75,31 +78,37 @@
|
||||
<example>
|
||||
<title>Fun<EFBFBD><EFBFBD>o include passando vari<72>veis</title>
|
||||
<programlisting>
|
||||
{include file="header.tpl" title="Main Menu" table_bgcolor="#c0c0c0"}
|
||||
<![CDATA[
|
||||
{include file="cabecalho.tpl" title="Menu Principal" table_bgcolor="#c0c0c0"}
|
||||
|
||||
{* O corpo de template vai aqui *}
|
||||
{* O conte<EFBFBD>do de template vem aqui *}
|
||||
|
||||
{include file="footer.tpl" logo="http://my.domain.com/logo.gif"}</programlisting>
|
||||
{include file="rodape.tpl" logo="http://meu.dominio.com/logo.gif"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Use a sintaxe para <link
|
||||
Use a sintaxe de <link
|
||||
linkend="template.resources">template resources</link> para
|
||||
incluir arquivos fora do diret<65>rio $template_dir.
|
||||
</para>
|
||||
<example>
|
||||
<title>Exemplos de recursos para a fun<75><6E>o include</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* caminho absoluto *}
|
||||
{include file="/usr/local/include/templates/header.tpl"}
|
||||
{include file="/usr/local/include/templates/cabecalho.tpl"}
|
||||
|
||||
{* caminho absoluto (mesma coisa) *}
|
||||
{include file="file:/usr/local/include/templates/header.tpl"}
|
||||
{* caminho absoluto (idem) *}
|
||||
{include file="file:/usr/local/include/templates/cabecalho.tpl"}
|
||||
|
||||
{* caminho absoluto do windows (DEVE usar o prefixo "file:") *}
|
||||
{include file="file:C:/www/pub/templates/header.tpl"}
|
||||
{include file="file:C:/www/pub/templates/cabecalho.tpl"}
|
||||
|
||||
{* incluir a partir do recurso de template chamado "db" *}
|
||||
{include file="db:header.tpl"}</programlisting>
|
||||
{include file="db:header.tpl"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do Atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -23,14 +23,14 @@
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Sim</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da fun<75><6E>o insert (insert_name)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da vari<72>vel que
|
||||
ir<69> receber a sa<73>da</entry>
|
||||
</row>
|
||||
@@ -38,7 +38,7 @@
|
||||
<entry>script</entry>
|
||||
<entry>string</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome de um script php que ser<65> incluido
|
||||
antes que a fun<75><6E>o insert seja chamada</entry>
|
||||
</row>
|
||||
@@ -46,7 +46,7 @@
|
||||
<entry>[var ...]</entry>
|
||||
<entry>[var type]</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>Vari<EFBFBD>vel para passar para a fun<75><6E>o insert</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
@@ -59,18 +59,18 @@
|
||||
executada a cada invoca<63><61>o do template.
|
||||
</para>
|
||||
<para>
|
||||
Vamos dizer que voc<6F> tenha um template com um banner em cima. O
|
||||
banner pode conter qualquer mistura de html, imagens, flash, etc.
|
||||
Assin n<>s n<>o podemos usar uma liga<EFBFBD><EFBFBD>o estatica aqui, e n<>s n<>o
|
||||
queremos que este conte<74>do fique no cache com a p<>gina. Aqui vem a tag
|
||||
Digamos que voc<6F> 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<74>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<72><61>o), e precisa chamar
|
||||
uma fun<75><6E>o para obter o conte<74>do do banner.
|
||||
</para>
|
||||
<example>
|
||||
<title>function insert</title>
|
||||
<title>fun<EFBFBD><EFBFBD>o insert</title>
|
||||
<programlisting>
|
||||
{* example of fetching a banner *}
|
||||
{* exemplo de como obter um banner *}
|
||||
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
@@ -82,28 +82,34 @@
|
||||
aplica<63><61>o devem ser precedidas por "insert_" para prevenir poss<73>veis
|
||||
problemas com nomes de fun<75><6E>es repetidos. Sua fun<75><6E>o insert_getBanner()
|
||||
deve fazer alguma coisa com os valores passados e retornar os resultados.
|
||||
Estes resultados s<>o mostrados no template em lugar da tag insert.
|
||||
Estes resultados s<>o mostrados no template no lugar da tag insert.
|
||||
Neste exemplo, o Smarty ir<69> chamar esta fun<75><6E>o:
|
||||
insert_getBanner(array("lid" => "12345","sid" => "67890"));
|
||||
e mostrar o resultado retornado no lugar da tag insert.
|
||||
</para>
|
||||
<para>
|
||||
Se voc<6F> der o atributo "assign", a sa<73>da da tag insert ser<65>
|
||||
Se voc<6F> passar o atributo "assign", a sa<73>da da tag insert ser<65>
|
||||
dada para esta vari<72>vel ao inv<6E>s de ser mostrada
|
||||
no template. Nota: definir a sa<73>da para uma vari<72>vel n<>o <20>
|
||||
no template.
|
||||
</para>
|
||||
<note>
|
||||
<title>Nota</title>
|
||||
<para>
|
||||
definir a sa<73>da para uma vari<72>vel n<>o <20>
|
||||
<20>til quando o cache esta ativo.
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
Se voc<6F> der o atributo "script", este script php ser<65> incluido
|
||||
Se voc<6F> passar o atributo "script", este script php ser<65> incluido
|
||||
(apenas uma vez) antes da execu<63><75>o da fun<75><6E>o insert. Este
|
||||
<20> o caso onde a fun<75><6E>o insert n<>o existe ainda, e um script
|
||||
php deve ser inclu<6C>do antes para faze-la funcionar. O caminho pode
|
||||
ser absoluto ou relativo a $trusted_dir. Quando a seguran<61>a esta
|
||||
ativada, o script deve estar em $trusted_dir.
|
||||
ser absoluto ou relativo <EFBFBD> vari<72>vel $trusted_dir. Quando a seguran<61>a esta
|
||||
ativada, o script deve estar no local definido na vari<72>vel $trusted_dir.
|
||||
</para>
|
||||
<para>
|
||||
O objeto Smarty <20> passado como segundo argumento. Desde modo
|
||||
poc<EFBFBD> pode refenciar o objeto Smarty
|
||||
O objeto Smarty <20> passado como segundo argumento. Deste modo
|
||||
voc<EFBFBD> pode refenciar o objeto Smarty
|
||||
de dentro da fun<75><6E>o.
|
||||
</para>
|
||||
<note>
|
||||
@@ -114,7 +120,7 @@
|
||||
ativado, tags insert n<>o estar<61>o no cache. Ela ser<65> 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,
|
||||
clima, resultados de pesquisa, areas de opni<6E>o do usu<73>rio, etc.
|
||||
previs<EFBFBD>es do tempo, resultados de pesquisa, <EFBFBD>reas de opni<6E>o do usu<73>rio, etc.
|
||||
</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
@@ -3,21 +3,25 @@
|
||||
<sect1 id="language.function.ldelim">
|
||||
<title>ldelim,rdelim</title>
|
||||
<para>
|
||||
ldelim e rdelim s<>o usados para mostrar os delimitadores literalmente,
|
||||
no nosso caso "{" ou "}". A ferramente de template sempre
|
||||
tenta interpretar os delimitadores, ent<6E>o este <20> o meio de contornar isso.
|
||||
ldelim e rdelim s<>o usados para mostrar os delimitadores de templates literalmente,
|
||||
no nosso caso "{" ou "}". Ou voc<6F> pode usar {literal}{/literal} para
|
||||
interpretar blocos de texto literalmente. Veja tamb<6D>m {$smarty.ldelim} e {$smarty.rdelim}
|
||||
</para>
|
||||
<example>
|
||||
<title>ldelim, rdelim</title>
|
||||
<programlisting>
|
||||
{* isto ir<69> mostrar os delimitadore no template *}
|
||||
<![CDATA[
|
||||
{* isto far<61> com que os delimitadores de template sejam tratados literalmente *}
|
||||
|
||||
{ldelim}funcname{rdelim} is how functions look in Smarty!
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
{funcname} is how functions look in Smarty!</programlisting>
|
||||
{ldelim}funcname{rdelim} <EFBFBD> como a fun<75><6E>o aparecer no Smarty!
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>O exemplo acima exibir<69>:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{funcname} <20> como a fun<75><6E>o aparecer no Smarty
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -3,20 +3,21 @@
|
||||
<sect1 id="language.function.literal">
|
||||
<title>literal</title>
|
||||
<para>
|
||||
Tags literal permitem que um bloco de dados seja tomado literalmente,
|
||||
n<>o sendo interpretado pelo smarty. Isto <20> <EFBFBD>til
|
||||
para coisas como se<73><65>es javascript, aonde podem haver
|
||||
chaves("{}") e coisas assim que possam confundir
|
||||
o interpretador do template.
|
||||
Qualquer coisa dentro das {literal}{/literal} n<>o ser<65> interpretado, mas mostrado como estiver.
|
||||
Tags literal permitem que um bloco de dados seja tratado literalmente, ou seja,
|
||||
n<>o <EFBFBD> interpretado pelo Smarty. Isto <20> tipicamente usado com blocos de c<>digo
|
||||
javascript ou folhas de estilo (stylesheet), que <20>s vezes cont<6E>m chaves
|
||||
que podem entrar em conflito com o delimitador de sintaxe. Qualquer coisa entre
|
||||
{literal}{/literal} n<>o <20> interpretado, mas <20> mostrado. Se voc<6F> precisa que
|
||||
tags de templates sejam embutidas em um bloco literal, use {ldelim}{rdelim}.
|
||||
</para>
|
||||
<example>
|
||||
<title>Tags literal</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{literal}
|
||||
<script language=javascript>
|
||||
<script language=javascript>
|
||||
|
||||
<!--
|
||||
<!--
|
||||
function isblank(field) {
|
||||
if (field.value == '')
|
||||
{ return false; }
|
||||
@@ -26,10 +27,12 @@
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// -->
|
||||
// -->
|
||||
|
||||
</script>
|
||||
{/literal}</programlisting>
|
||||
</script>
|
||||
{/literal}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -3,19 +3,22 @@
|
||||
<sect1 id="language.function.php">
|
||||
<title>php</title>
|
||||
<para>
|
||||
Tags php permitem que voc<EFBFBD> adicione c<EFBFBD>digo php diretamente no template.
|
||||
N<EFBFBD>o ser<65> escapado, n<>o importando a defini<6E><69>o de <link
|
||||
linkend="variable.php.handling">$php_handling</link>. Isto
|
||||
<EFBFBD> apenas para usu<73>rios avan<61>ados e normalmente n<>o <20> necess<73>rio.
|
||||
Tags php permitem que c<>digos php sejam embutidos diretamente nos templates.
|
||||
Eles n<EFBFBD>o ser<65>o interpretados, n<>o importando a defini<6E><69>o de
|
||||
<link linkend="variable.php.handling">$php_handling</link>. Esta op<6F><70>o <20>
|
||||
somente para usu<73>rios avan<61>ados e normalmente n<>o <20> necess<73>ria.
|
||||
</para>
|
||||
<example>
|
||||
<title>Tags php</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{php}
|
||||
// incluindo um script php
|
||||
// diretamente no template.
|
||||
include("/path/to/display_weather.php");
|
||||
{/php}</programlisting>
|
||||
include("/caminho/para/condicoes_do_tempo.php");
|
||||
{/php}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<row>
|
||||
<entry>Nome do atributo</entry>
|
||||
<entry>Tipo</entry>
|
||||
<entry>Requerido</entry>
|
||||
<entry>Obrigat<EFBFBD>rio</entry>
|
||||
<entry>Padr<EFBFBD>o</entry>
|
||||
<entry>Descri<EFBFBD><EFBFBD>o</entry>
|
||||
</row>
|
||||
@@ -23,14 +23,14 @@
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Sim</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da se<73><65>o</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>loop</entry>
|
||||
<entry>[$variable_name]</entry>
|
||||
<entry>Sim</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry><emphasis>n/d</emphasis></entry>
|
||||
<entry>O nome da vari<72>vel para determinar o
|
||||
n<>mero de intera<72><61>es</entry>
|
||||
</row>
|
||||
@@ -41,10 +41,10 @@
|
||||
<entry><emphasis>0</emphasis></entry> <entry>A posi<73><69>o
|
||||
do <20>ndice que a se<73><65>o vai come<6D>ar. Se o valor
|
||||
<09> negativo, a posi<73><69>o de inicio <20> calculada a partir
|
||||
do final da matriz. For exemplo, se houverem
|
||||
sete valores na matriz e start for -2, o
|
||||
do final da matriz. Por exemplo, se houverem
|
||||
sete valores na matriz e 'start' for -2, o
|
||||
<09>ndice inicial <20> 5. Valores inv<6E>lidos (valores fora do
|
||||
tamanho da matriz) s<>o automaticamente truncados
|
||||
tamanho da matriz) s<>o automaticamente corrigidos
|
||||
para o valor v<>lido mais pr<70>ximo.</entry>
|
||||
</row>
|
||||
<row>
|
||||
@@ -52,8 +52,8 @@
|
||||
<entry>integer</entry>
|
||||
<entry>N<EFBFBD>o</entry>
|
||||
<entry><emphasis>1</emphasis></entry>
|
||||
<entry>O valor do passo que ser<65> usado para o loop
|
||||
na matriz. Por exemplo, step=2 ir<69> realizar o loop com
|
||||
<entry>O valor do passo que ser<65> usado para percorrer
|
||||
a matriz. Por exemplo, step=2 ir<69> percorrer
|
||||
os <20>ndices 0,2,4, etc. Se step for negativo, ele ir<69> caminhar
|
||||
pela matriz de tr<74>s para frente.</entry>
|
||||
</row>
|
||||
@@ -76,149 +76,170 @@
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
sections de template s<>o usada para realizar um loop por uma matriz. Todas as tags
|
||||
<emphasis>section</emphasis> devem ter as suas
|
||||
<emphasis>/section</emphasis>. Par<61>metros requeridos s<>o
|
||||
<emphasis>name</emphasis> e <emphasis>loop</emphasis>. O nome
|
||||
de section pode ser o que voc<6F> quiser, feito de letras,
|
||||
n<>meros e sublinhados. Sections podem ser aninhadas, e os nomes das section
|
||||
aninhadas devem ser diferentes um dos outros. A vari<72>vel do loop
|
||||
(normalmente uma matriz de valores) determina o n<>mero de vezes do
|
||||
loop da section. Quando estiver mostrando uma vari<72>vel dentro de uma section,
|
||||
o nome da section deve estar ao lado da vari<72>vel dentro de conchetes
|
||||
[]. <emphasis>sectionelse</emphasis> <20>
|
||||
executado quando n<>o houverem valores para a vari<72>vel de loop.
|
||||
Os 'sections' de template s<>o usados para percorrer os dados de uma matriz.
|
||||
Todas as tags <emphasis>section</emphasis> devem ser finalizadas com <emphasis>/section</emphasis>.
|
||||
Os par<61>metros obrigat<61>rios s<>o <emphasis>name</emphasis> e <emphasis>loop</emphasis>.
|
||||
O nome da 'section' pode ser o que voc<6F> quiser, contendo letras, n<>meros e sublinhados.
|
||||
As 'sections' podem ser aninhadas, e os nomes das sections devem ser <20>nicos. A vari<72>vel
|
||||
'loop' (normalmente uma matriz de valores) determina o n<>mero de vezes que a section
|
||||
ser<65> percorrida. Quando estiver exibindo uma vari<72>vel dentro de uma section,
|
||||
o nome da section deve estar ao lado da vari<72>vel dentro de conchetes [].
|
||||
<emphasis>sectionelse</emphasis> <20> executado quando n<>o houver valores na
|
||||
vari<72>vel 'loop'.
|
||||
</para>
|
||||
<example>
|
||||
<title>section</title>
|
||||
<programlisting>
|
||||
|
||||
{* este exemplo ir<69> mostrar todos os valores de $custid array *}
|
||||
{section name=customer loop=$custid}
|
||||
id: {$custid[customer]}<br>
|
||||
<![CDATA[
|
||||
{* este exemplo ir<69> mostrar todos os valores da matriz $custid *}
|
||||
{section name=consumidor loop=$custid}
|
||||
id: {$custid[consumidor]}<br>
|
||||
{/section}
|
||||
|
||||
MOSTRA:
|
||||
|
||||
id: 1000<br>
|
||||
id: 1001<br>
|
||||
id: 1002<br></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
id: 1000<br>
|
||||
id: 1001<br>
|
||||
id: 1002<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>loop de vari<72>vel section</title>
|
||||
<programlisting>
|
||||
{* a vari<72>vel de loo<6F>p determina o n<>mero de vezes do loop.
|
||||
Voc<6F> pode acessar qualquer vari<72>vel do template dentro da section.
|
||||
Este exemplo assume que $custid, $name e $address s<>o todas
|
||||
<![CDATA[
|
||||
{* a vari<72>vel 'loop' somente determina o n<>mero de vezes que ir<69> percorrer a matriz.
|
||||
Voc<EFBFBD> pode acessar qualquer vari<72>vel do template dentro da section.
|
||||
Este exemplo assume que $custid, $nome e $endereco s<>o todas
|
||||
matrizes contendo o mesmo n<>mero de valores *}
|
||||
{section name=customer loop=$custid}
|
||||
id: {$custid[customer]}<br>
|
||||
name: {$name[customer]}<br>
|
||||
address: {$address[customer]}<br>
|
||||
<p>
|
||||
|
||||
{section name=consumidor loop=$custid}
|
||||
id: {$custid[consumidor]}<br>
|
||||
nome: {$nome[consumidor]}<br>
|
||||
endere<72>o: {$endereco[customer]}<br>
|
||||
<p>
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
id: 1000<br>
|
||||
name: John Smith<br>
|
||||
address: 253 N 45th<br>
|
||||
<p>
|
||||
id: 1001<br>
|
||||
name: Jack Jones<br>
|
||||
address: 417 Mulberry ln<br>
|
||||
<p>
|
||||
id: 1002<br>
|
||||
name: Jane Munson<br>
|
||||
address: 5605 apple st<br>
|
||||
<p></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
id: 1000<br>
|
||||
nome: John Smith<br>
|
||||
endere<EFBFBD>o: 253 N 45th<br>
|
||||
<p>
|
||||
id: 1001<br>
|
||||
nome: Jack Jones<br>
|
||||
endere<EFBFBD>o: 417 Mulberry ln<br>
|
||||
<p>
|
||||
id: 1002<br>
|
||||
nome: Jane Munson<br>
|
||||
endere<EFBFBD>o: 5605 apple st<br>
|
||||
<p>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Nomes de section</title>
|
||||
<programlisting>
|
||||
{* o nome de section pode ser o que voc<6F> quiser,
|
||||
e <20> usado para referenciar os dados dentro da section *}
|
||||
{section name=mydata loop=$custid}
|
||||
id: {$custid[mydata]}<br>
|
||||
name: {$name[mydata]}<br>
|
||||
address: {$address[mydata]}<br>
|
||||
<p>
|
||||
{/section}</programlisting>
|
||||
<![CDATA[
|
||||
{* o nome da se<73><65>o pode ser o que voc<6F> qusier,
|
||||
e <20> usado para referenciar os dados contido na se<73><65>o *}
|
||||
|
||||
{section name=meusdados loop=$custid}
|
||||
id: {$custid[meusdados]}<br>
|
||||
nome: {$nome[meusdados]}<br>
|
||||
endere<72>o: {$endereco[meusdados]}<br>
|
||||
<p>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>sections aninhadas</title>
|
||||
<programlisting>
|
||||
{* sections podem ser aninhadas t<>o profundamente quanto voc<6F> quiser. Com sections aninhadas,
|
||||
voc<6F> pode acessar estruturas de dados complexas, como matriz multi-dimensionais.
|
||||
Neste exemplo, $contact_type[customer] <20> uma matriz de
|
||||
tipos de contato para o custumer atual. *}
|
||||
<![CDATA[
|
||||
{* sections podem ser aninhadas at<EFBFBD> o n<>vel que voc<6F> quiser. Com sections aninhadas,
|
||||
voc<EFBFBD> pode acessar complexas estruturas de dados, tais como matrizes multi-dimensionais.
|
||||
Neste exemplo, $contact_type[customer] <20> uma matriz contendo os tipos de contatos
|
||||
do consumidor atualmente selecionado. *}
|
||||
|
||||
{section name=customer loop=$custid}
|
||||
id: {$custid[customer]}<br>
|
||||
name: {$name[customer]}<br>
|
||||
address: {$address[customer]}<br>
|
||||
id: {$custid[customer]}<br>
|
||||
name: {$name[customer]}<br>
|
||||
address: {$address[customer]}<br>
|
||||
{section name=contact loop=$contact_type[customer]}
|
||||
{$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br>
|
||||
{$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br>
|
||||
{/section}
|
||||
<p>
|
||||
<p>
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
id: 1000<br>
|
||||
name: John Smith<br>
|
||||
address: 253 N 45th<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: john@mydomain.com<br>
|
||||
<p>
|
||||
id: 1001<br>
|
||||
name: Jack Jones<br>
|
||||
address: 417 Mulberry ln<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jack@mydomain.com<br>
|
||||
<p>
|
||||
id: 1002<br>
|
||||
name: Jane Munson<br>
|
||||
address: 5605 apple st<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jane@mydomain.com<br>
|
||||
<p></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
id: 1000<br>
|
||||
name: John Smith<br>
|
||||
address: 253 N 45th<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: john@mydomain.com<br>
|
||||
<p>
|
||||
id: 1001<br>
|
||||
name: Jack Jones<br>
|
||||
address: 417 Mulberry ln<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jack@mydomain.com<br>
|
||||
<p>
|
||||
id: 1002<br>
|
||||
name: Jane Munson<br>
|
||||
address: 5605 apple st<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jane@mydomain.com<br>
|
||||
<p>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>sections e matrizes associativas</title>
|
||||
<programlisting>
|
||||
{* Este <20> um exemplo de mostrar os dados de matriz associativa
|
||||
dentro da section *}
|
||||
{section name=customer loop=$contacts}
|
||||
name: {$contacts[customer].name}<br>
|
||||
home: {$contacts[customer].home}<br>
|
||||
cell: {$contacts[customer].cell}<br>
|
||||
e-mail: {$contacts[customer].email}<p>
|
||||
<![CDATA[
|
||||
{* Este <20> um exemplo de exibi<62><69>o de uma matriz associativa
|
||||
dentro de uma se<73><65>o *}
|
||||
|
||||
{section name=consumidor loop=$contatos}
|
||||
nome: {$contatos[consumidor].nome}<br>
|
||||
telefone: {$contatos[consumidor].telefone}<br>
|
||||
celular: {$contatos[consumidor].celular}<br>
|
||||
e-mail: {$contatos[consumidor].email}<p>
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
name: John Smith<br>
|
||||
home: 555-555-5555<br>
|
||||
cell: 555-555-5555<br>
|
||||
e-mail: john@mydomain.com<p>
|
||||
name: Jack Jones<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jack@mydomain.com<p>
|
||||
name: Jane Munson<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jane@mydomain.com<p></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
name: John Smith<br>
|
||||
home: 555-555-5555<br>
|
||||
cell: 555-555-5555<br>
|
||||
e-mail: john@mydomain.com<p>
|
||||
name: Jack Jones<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jack@mydomain.com<p>
|
||||
name: Jane Munson<br>
|
||||
home phone: 555-555-5555<br>
|
||||
cell phone: 555-555-5555<br>
|
||||
e-mail: jane@mydomain.com<p>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
|
||||
@@ -226,52 +247,61 @@ e-mail: jane@mydomain.com<p></programlisting>
|
||||
<example>
|
||||
<title>sectionelse</title>
|
||||
<programlisting>
|
||||
{* sectionelse ir<69> executar se n<>o houverem mais valores $custid *}
|
||||
{section name=customer loop=$custid}
|
||||
id: {$custid[customer]}<br>
|
||||
<![CDATA[
|
||||
{* sectionelse ir<69> executar se n<>o houverem mais valores em $custid *}
|
||||
|
||||
{section name=consumidor loop=$custid}
|
||||
id: {$custid[consumidor]}<br>
|
||||
{sectionelse}
|
||||
there are no values in $custid.
|
||||
{/section}</programlisting>
|
||||
n<>o h<> valores em $custid.
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Sections tamb<6D>m tem as suas pr<70>prias vari<72>veis que manipulam as propriedaes section.
|
||||
Estas s<>o indicadas assim: {$smarty.section.sectionname.varname}
|
||||
Sections tamb<6D>m tem as suas pr<70>prias vari<72>veis que manipulam as propriedades da section.
|
||||
Estas s<>o indicadas assim: {$smarty.section.nomesection.nomevariavel}
|
||||
</para>
|
||||
<note>
|
||||
<title>Nota</title>
|
||||
<para>
|
||||
NOTA: a partir do Smarty 1.5.0, a sintaxe para as vari<72>veis de propriedades de section
|
||||
mudou de {%sectionname.varname%} para
|
||||
{$smarty.section.sectionname.varname}. A sintaxe antiga ainda <20> suportada,
|
||||
mas voc<6F> ir<69> ver referencias apenas a nova sintaxe nos
|
||||
exemplos do manual.
|
||||
A partir do Smarty 1.5.0, a sintaxe para as vari<72>veis de propriedades da section
|
||||
mudou de {%nomesecao.nomevariavel%} para {$smarty.section.nomesection.nomevariavel}. A
|
||||
sintaxe antiga ainda <20> suportada, mas voc<6F> ver<65> refer<65>ncias somente <20> nova sintaxe no
|
||||
manual.
|
||||
</para>
|
||||
</note>
|
||||
<sect2 id="section.property.index">
|
||||
<title>index</title>
|
||||
<para>
|
||||
index <20> usado para mostrar o <20>ndice atual do loop, come<6D>ando em zero
|
||||
(ou pelo atributo start se dado), e incrementando por um (ou pelo
|
||||
atributo step se dado).
|
||||
(ou pelo atributo start caso tenha sido definido), e incrementado por um
|
||||
(ou pelo atributo step caso tenha sido definido).
|
||||
</para>
|
||||
<note>
|
||||
<title>Nota T<>cnica</title>
|
||||
<title>Nota T<>cnica:</title>
|
||||
<para>
|
||||
Se as propriedades section n<>o for modificada,
|
||||
ent<EFBFBD>o isto funciona igual a propriedade iteration da section,
|
||||
exceto que come<6D>a em 0 ao inv<6E>s de 1.
|
||||
Se as propriedades 'start' e 'step' da section n<>o foram modificadas,
|
||||
elas ir<69>o funcionar da mesma maneira que a propriedade 'interation' da
|
||||
section funcionam, exceto que ela come<EFBFBD>a do 0 ao inv<6E>s de 1.
|
||||
</para>
|
||||
</note>
|
||||
<example>
|
||||
<title>section property index</title>
|
||||
<title>propriedade index da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{$smarty.section.customer.index} id: {$custid[customer]}<br>
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
0 id: 1000<br>
|
||||
1 id: 1001<br>
|
||||
2 id: 1002<br>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{$smarty.section.consumidor.index} id: {$custid[consumidor]}<br>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
0 id: 1000<br>
|
||||
1 id: 1001<br>
|
||||
2 id: 1002<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
@@ -279,28 +309,31 @@ e-mail: jane@mydomain.com<p></programlisting>
|
||||
<title>index_prev</title>
|
||||
<para>
|
||||
index_prev <20> usado para mostrar o <20>ndice anterior do loop.
|
||||
No primeiro loop, isto <20> definido como -1.
|
||||
No primeiro loop, o valor dele <20> -1.
|
||||
</para>
|
||||
<example>
|
||||
<title>section property index_prev</title>
|
||||
<title>propriedade index_prev da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{$smarty.section.customer.index} id: {$custid[customer]}<br>
|
||||
{* FYI, $custid[customer.index] and $custid[customer] are identical in meaning *}
|
||||
{if $custid[customer.index_prev] ne $custid[customer.index]}
|
||||
The customer id changed<br>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{$smarty.section.consumidor.index} id: {$custid[consumidor]}<br>
|
||||
{* Para sua informa<6D><61>o, $custid[consumidor.index] e $custid[consumidor] tem o mesmo significado *}
|
||||
{if $custid[consumidor.index_prev] ne $custid[consumidor.index]}
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
0 id: 1000<br>
|
||||
The customer id changed<br>
|
||||
1 id: 1001<br>
|
||||
The customer id changed<br>
|
||||
2 id: 1002<br>
|
||||
The customer id changed<br>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
0 id: 1000<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
1 id: 1001<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
2 id: 1002<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
@@ -309,28 +342,31 @@ e-mail: jane@mydomain.com<p></programlisting>
|
||||
<para>
|
||||
index_next <20> usado para mostrar o pr<70>ximo indice do loop. No <20>ltimo loop,
|
||||
isto ainda <20> um mais o <20>ndice atual( respeitando a defini<6E><69>o
|
||||
do atributo step, se dado.)
|
||||
do atributo step, caso tenha sido definido.)
|
||||
</para>
|
||||
<example>
|
||||
<title>section property index_next</title>
|
||||
<title>propriedade index_next section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{$smarty.section.customer.index} id: {$custid[customer]}<br>
|
||||
{* FYI, $custid[customer.index] and $custid[customer] are identical in meaning *}
|
||||
{if $custid[customer.index_next] ne $custid[customer.index]}
|
||||
The customer id will change<br>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{$smarty.section.consumidor.index} id: {$custid[consumidor]}<br>
|
||||
{* Para sua informa<6D><61>o, $custid[consumidor.index] e $custid[consumidor] tem o mesmo significado *}
|
||||
{if $custid[consumidor.index_next] ne $custid[consumidor.index]}
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
0 id: 1000<br>
|
||||
The customer id will change<br>
|
||||
1 id: 1001<br>
|
||||
The customer id will change<br>
|
||||
2 id: 1002<br>
|
||||
The customer id will change<br>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
0 id: 1000<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
1 id: 1001<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
2 id: 1002<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
@@ -339,36 +375,42 @@ e-mail: jane@mydomain.com<p></programlisting>
|
||||
<para>
|
||||
iteration <20> usado para mostrar a intera<72><61>o atual do loop.
|
||||
</para>
|
||||
<note>
|
||||
<title>Nota:</title>
|
||||
<para>
|
||||
NOTA: isto n<>o <20> afetado pelas propriedades start, step e
|
||||
max, diferentemente das propriedade index. Iteration tamb<EFBFBD>m come<6D>a com 1
|
||||
ao inv<6E>s de 0 como index. rownum <20> um apelido para iteration,
|
||||
elas funcionam de modo identico.
|
||||
'interation' n<>o <20> afetado pelas propriedades start, step e max da section,
|
||||
diferentemente da propriedade index. Interation diferente de 'index' come<6D>a
|
||||
com 1 ao inv<6E>s de 0. 'rownum' <20> um sin<EFBFBD>nimo de 'interation', eles exercem a
|
||||
mesma fun<75><6E>o.
|
||||
</para>
|
||||
</note>
|
||||
<example>
|
||||
<title>section property iteration</title>
|
||||
<title>propriedade interation da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid start=5 step=2}
|
||||
current loop iteration: {$smarty.section.customer.iteration}<br>
|
||||
{$smarty.section.customer.index} id: {$custid[customer]}<br>
|
||||
{* FYI, $custid[customer.index] and $custid[customer] are identical in meaning *}
|
||||
{if $custid[customer.index_next] ne $custid[customer.index]}
|
||||
The customer id will change<br>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid start=5 step=2}
|
||||
intera<72><61>o atual do loop: {$smarty.section.consumidor.iteration}<br>
|
||||
{$smarty.section.consumidor.index} id: {$custid[consumidor]}<br>
|
||||
{* Para sua informa<6D><61>o, $custid[consumidor.index] e $custid[consumidor] tem o mesmo significado *}
|
||||
{if $custid[consumidor.index_next] ne $custid[consumidor.index]}
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
current loop iteration: 1
|
||||
5 id: 1000<br>
|
||||
The customer id will change<br>
|
||||
current loop iteration: 2
|
||||
7 id: 1001<br>
|
||||
The customer id will change<br>
|
||||
current loop iteration: 3
|
||||
9 id: 1002<br>
|
||||
The customer id will change<br>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
intera<EFBFBD><EFBFBD>o atual do loop: 1
|
||||
5 id: 1000<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
intera<EFBFBD><EFBFBD>o atual do loop: 2
|
||||
7 id: 1001<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
intera<EFBFBD><EFBFBD>o atual do loop: 3
|
||||
9 id: 1002<br>
|
||||
O id do consumidor ir<69> mudar<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
@@ -379,62 +421,66 @@ e-mail: jane@mydomain.com<p></programlisting>
|
||||
<20> a primeira.
|
||||
</para>
|
||||
<example>
|
||||
<title>section property first</title>
|
||||
<title>propriedade first da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{if $smarty.section.customer.first}
|
||||
<table>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{if $smarty.section.consumidor.first}
|
||||
<table>
|
||||
{/if}
|
||||
|
||||
<tr><td>{$smarty.section.customer.index} id:
|
||||
{$custid[customer]}</td></tr>
|
||||
<tr><td>{$smarty.section.consumidor.index} id: {$custid[consumidor]}</td></tr>
|
||||
|
||||
{if $smarty.section.customer.last}
|
||||
</table>
|
||||
{if $smarty.section.consumidor.last}
|
||||
</table>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
<table>
|
||||
<tr><td>0 id: 1000</td></tr>
|
||||
<tr><td>1 id: 1001</td></tr>
|
||||
<tr><td>2 id: 1002</td></tr>
|
||||
</table>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<table>
|
||||
<tr><td>0 id: 1000</td></tr>
|
||||
<tr><td>1 id: 1001</td></tr>
|
||||
<tr><td>2 id: 1002</td></tr>
|
||||
</table>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 id="section.property.last">
|
||||
<title>last</title>
|
||||
<para>
|
||||
last <20> definido como true de a intera<72><61>o atual da
|
||||
last <20> definido como true se a intera<72><61>o atual da
|
||||
section <20> a <20>ltima.
|
||||
</para>
|
||||
<example>
|
||||
<title>section property last</title>
|
||||
<title>propriedade last da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{if $smarty.section.customer.first}
|
||||
<table>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{if $smarty.section.consumidor.first}
|
||||
<table>
|
||||
{/if}
|
||||
|
||||
<tr><td>{$smarty.section.customer.index} id:
|
||||
{$custid[customer]}</td></tr>
|
||||
<tr><td>{$smarty.section.consumidor.index} id: {$custid[consumidor]}</td></tr>
|
||||
|
||||
{if $smarty.section.customer.last}
|
||||
</table>
|
||||
{if $smarty.section.consumidor.last}
|
||||
</table>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
<table>
|
||||
<tr><td>0 id: 1000</td></tr>
|
||||
<tr><td>1 id: 1001</td></tr>
|
||||
<tr><td>2 id: 1002</td></tr>
|
||||
</table>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<table>
|
||||
<tr><td>0 id: 1000</td></tr>
|
||||
<tr><td>1 id: 1001</td></tr>
|
||||
<tr><td>2 id: 1002</td></tr>
|
||||
</table>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
@@ -442,106 +488,120 @@ e-mail: jane@mydomain.com<p></programlisting>
|
||||
<title>rownum</title>
|
||||
<para>
|
||||
rownum <20> usado para mostrar a intera<72><61>o atual do loop,
|
||||
come<6D>ando em um. <20> um apelido para iteration,
|
||||
elas funcionam de modo identico.
|
||||
come<6D>ando em um. <20> um sin<EFBFBD>nimo de iteration,
|
||||
eles exercem a mesma fun<75><6E>o.
|
||||
</para>
|
||||
<example>
|
||||
<title>section property rownum</title>
|
||||
<title>propriedade rownum da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{$smarty.section.customer.rownum} id: {$custid[customer]}<br>
|
||||
{/section}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
1 id: 1000<br>
|
||||
2 id: 1001<br>
|
||||
3 id: 1002<br>
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{$smarty.section.consumidor.rownum} id: {$custid[consumidor]}<br>
|
||||
{/section}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
1 id: 1000<br>
|
||||
2 id: 1001<br>
|
||||
3 id: 1002<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 id="section.property.loop">
|
||||
<title>loop</title>
|
||||
<para>
|
||||
loop <20> usado para mostrar o <20>ltimo n<>mero do <20>ndice do loop desta
|
||||
section. Isto pode ser usado dentro ou depois de section.
|
||||
loop <20> usado para exibir o n<>mero do <20>ltimo <20>ndice que a section percorreu.
|
||||
Ele pode ser usado dentro ou ap<EFBFBD>s o t<>rmino da section.
|
||||
</para>
|
||||
<example>
|
||||
<title>section property index</title>
|
||||
<title>propridade index da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid}
|
||||
{$smarty.section.customer.index} id: {$custid[customer]}<br>
|
||||
{/section}
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid}
|
||||
{$smarty.section.consumidor.index} id: {$custid[consumidor]}<br>
|
||||
{/section}
|
||||
|
||||
There were {$smarty.section.customer.loop} customers shown above.
|
||||
Foram mostrados {$smarty.section.customer.loop} consumidores acima.
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
0 id: 1000<br>
|
||||
1 id: 1001<br>
|
||||
2 id: 1002<br>
|
||||
|
||||
MOSTRA:
|
||||
|
||||
0 id: 1000<br>
|
||||
1 id: 1001<br>
|
||||
2 id: 1002<br>
|
||||
|
||||
There were 3 customers shown above.
|
||||
Foram mostrados 3 consumidores acima.
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 id="section.property.show">
|
||||
<title>show</title>
|
||||
<para>
|
||||
<emphasis>show</emphasis> <20> usado como par<61>metro para section.
|
||||
<emphasis>show</emphasis> <20> um valor booleano, true ou false. Se
|
||||
false, a section n<>o ser<65> mostrada. Se existir um sectionelse
|
||||
presente, esta ser<65> alternativamente mostrado.
|
||||
<emphasis>show</emphasis> <20> usado como um par<EFBFBD>metro da section. <emphasis>show</emphasis>
|
||||
<09> um valor booleano, verdadeiro ou falso. Caso seja falso, a section n<>o ser<65> mostrada.
|
||||
Se existir uma sectionelse presente, ela ser<65> exibida.
|
||||
</para>
|
||||
<example>
|
||||
<title>section attribute show</title>
|
||||
<title>atributo show da section</title>
|
||||
<programlisting>
|
||||
{* $show_customer_info deve ser passada da aplica<63><61>o PHP,
|
||||
para regular quando mostrar ou n<>o mostrar esta section *}
|
||||
{section name=customer loop=$custid show=$show_customer_info}
|
||||
{$smarty.section.customer.rownum} id: {$custid[customer]}<br>
|
||||
{/section}
|
||||
<![CDATA[
|
||||
{* $mostrar_info_consumidor talvez tenha que ser enviada pela
|
||||
aplica<63><61>o PHP, para decidir quando mostrar ou n<>o mostrar esta section *}
|
||||
|
||||
{if $smarty.section.customer.show}
|
||||
the section was shown.
|
||||
{else}
|
||||
the section was not shown.
|
||||
{/if}
|
||||
{section name=consumidor loop=$custid show=$mostrar_info_consumidor}
|
||||
{$smarty.section.consumidor.rownum} id: {$custid[consumidor]}<br>
|
||||
{/section}
|
||||
|
||||
{if $smarty.section.consumidor.show}
|
||||
a section foi mostrada.
|
||||
{else}
|
||||
a section n<>o foi mostrada.
|
||||
{/if}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
1 id: 1000<br>
|
||||
2 id: 1001<br>
|
||||
3 id: 1002<br>
|
||||
|
||||
MOSTRA:
|
||||
|
||||
1 id: 1000<br>
|
||||
2 id: 1001<br>
|
||||
3 id: 1002<br>
|
||||
|
||||
the section was shown.
|
||||
a section foi mostrada.
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 id="section.property.total">
|
||||
<title>total</title>
|
||||
<para>
|
||||
total <20> usado para mostrar o n<>mero de intera<72><61>es que esta section ter<EFBFBD>.
|
||||
Isto pode ser usado dentro ou depois da section.
|
||||
total <20> usado para exibir o n<>mero de intera<72><61>es que esta section ir<EFBFBD> percorrer.
|
||||
Ela pode ser usada dentro ou ap<EFBFBD>s a section.
|
||||
</para>
|
||||
<example>
|
||||
<title>section property total</title>
|
||||
<title>propriedade total da section</title>
|
||||
<programlisting>
|
||||
{section name=customer loop=$custid step=2}
|
||||
{$smarty.section.customer.index} id: {$custid[customer]}<br>
|
||||
{/section}
|
||||
<![CDATA[
|
||||
{section name=consumidor loop=$custid step=2}
|
||||
{$smarty.section.consumidor.index} id: {$custid[consumidor]}<br>
|
||||
{/section}
|
||||
|
||||
There were {$smarty.section.customer.total} customers shown above.
|
||||
Foram mostrados {$smarty.section.customer.loop} consumidores acima.
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRA:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
0 id: 1000<br>
|
||||
2 id: 1001<br>
|
||||
4 id: 1002<br>
|
||||
|
||||
MOSTRA:
|
||||
|
||||
0 id: 1000<br>
|
||||
2 id: 1001<br>
|
||||
4 id: 1002<br>
|
||||
|
||||
There were 3 customers shown above.
|
||||
Foram mostrados 3 consumidores acima.
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
|
@@ -3,53 +3,57 @@
|
||||
<sect1 id="language.function.strip">
|
||||
<title>strip</title>
|
||||
<para>
|
||||
V<>rias vezes web designers tem problemas com espa<70>os em branco e
|
||||
carriage returns afetam a sa<EFBFBD>da do HTML (browser
|
||||
"features"), assim voc<6F> tem que colocar todas as suas tags juntas para ter
|
||||
os resultados desejados. Isto normalmente termina em um
|
||||
template ileg<65>vel ou que n<>o se consegue ler.
|
||||
Muitas vezes web designers tem problemas com espa<70>os em branco e
|
||||
caracteres especiais (carriage returns) afetam a exibi<EFBFBD><EFBFBD>o do HTML
|
||||
("caracter<65>sticas" do navegador), assim voc<6F> <EFBFBD> obrigado <20> colocar todas
|
||||
as suas tags juntas para obter os resultados esperados. Isso geralmente
|
||||
acaba tornando o template ileg<65>vel ou n<EFBFBD>o manipul<75>vel.
|
||||
</para>
|
||||
<para>
|
||||
Tudo dentro de {strip}{/strip} no Smarty tem retirados os espa<70>os em branco
|
||||
e carriage returns no inicio e final das linhas
|
||||
antes que sejam mostrados. Deste modo voc<6F> pode manter seu template
|
||||
leg<65>vel, e n<>o se preocupar com o espa<EFBFBD>o estra causando
|
||||
Tudo entre as tags {strip}{/strip} no Smarty tem seus espa<70>os extras
|
||||
ou caracteres especiais (carriage returns) removidos no in<EFBFBD>cio e fim das
|
||||
linhas antes de elas serem exibidas. Deste modo voc<6F> pode manter seu
|
||||
template leg<EFBFBD>vel, e n<>o se preocupar com espa<70>os extras causando
|
||||
problemas.
|
||||
</para>
|
||||
<note>
|
||||
<title>Nota T<>cnica</title>
|
||||
<para>
|
||||
{strip}{/strip} n<>o afeta o conte<74>do das vari<72>veis de template.
|
||||
Veja <link linkend="language.modifier.strip">strip modifier
|
||||
function</link>.
|
||||
Veja <link linkend="language.modifier.strip">modificador strip</link>.
|
||||
</para>
|
||||
</note>
|
||||
<example>
|
||||
<title>strip tags</title>
|
||||
<programlisting>
|
||||
{* o seguinte estar<61> tudo junto em uma linha na sa<73>da *}
|
||||
<![CDATA[
|
||||
{* o c<>digo abaixo ser<65> convertido em uma linha na hora da exibi<62><69>o *}
|
||||
{strip}
|
||||
<table border=0>
|
||||
<tr>
|
||||
<td>
|
||||
<A HREF="{$url}">
|
||||
<font color="red">This is a test</font>
|
||||
</A>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border=0>
|
||||
<tr>
|
||||
<td>
|
||||
<A HREF="{$url}">
|
||||
<font color="red">Isto <20> um teste</font>
|
||||
</A>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/strip}
|
||||
|
||||
|
||||
MOSTRA:
|
||||
|
||||
<table border=0><tr><td><A HREF="http://my.domain.com"><font color="red">This is a test</font></A></td></tr></table></programlisting>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>MOSTRAR<EFBFBD>:</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<table border=0><tr><td><A HREF="http://meu.dominio.com"><font color="red">Isto <20> um teste</font></A></td></tr></table>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Note que no exemplo acima, todas as linhas come<6D>am e terminam
|
||||
com tags HTML. Tenha cuidado que todas as linhas ficam juntas.
|
||||
Se voc<6F> tiver texto simples no inicio ou no final de uma linha,
|
||||
ele estar<EFBFBD> junto, e pode n<>o ser o resultado desejado.
|
||||
Observe que no exemplo acima, todas as linhas come<6D>am e terminam com tags HTML.
|
||||
Esteja ciente para que todas as linhas fiquem juntas.
|
||||
Se voc<6F> tiver texto simples no in<EFBFBD>cio ou final de uma linha,
|
||||
ele ser<EFBFBD> juntado na hora da convers<72>o e pode causar resultados
|
||||
n<>o desejados.
|
||||
</para>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
Reference in New Issue
Block a user