diff --git a/docs/pt_BR/appendixes.sgml b/docs/pt_BR/appendixes.sgml
deleted file mode 100644
index e10488b5..00000000
--- a/docs/pt_BR/appendixes.sgml
+++ /dev/null
@@ -1,404 +0,0 @@
-
- Apêndices
-
- Localização de Erros
-
-
- erros de Smarty/PHP
-
- O Smarty pode obter muitos erros tais como, atributos de tags perdidos ou nomes de variáveis
- mal formadas. Se isto acontece, você verá
- um erro como segue:
-
-
-
-Erros do Smarty
-
-Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah'
- in /path/to/smarty/Smarty.class.php on line 1041
-
-Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name
- in /path/to/smarty/Smarty.class.php on line 1041
-
-
-
- O Smarty te mostra o nome do template, o número da linha e o erro.
- Depois disso, o erro consiste do número da linha da classe Smarty em que o erro
- ocorreu.
-
-
-
- Há certos erros que o smarty não pode entender, tais como um um fechamento de tags errado.
- Estes tipos de erros normalmente
- termina na interpretação de erros do tempo de compilação do PHP.
-
-
-
-Erros de análise do PHP
-
-Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75
-
-
-
- Quando você encontra um erro de análise de PHP, o número da linha do erro corresponderá ao
- script PHP compilado, não o template em si. Normalmente você pode no template localizar o
- erro de sintaxe. Aqui algumas coisas para você procurar:
- falta de fechamento de tags para {if}{/if} ou
- {section}{/section}, ou sintaxe da lógica dentro de uma tag {if}.
- Se você não encontra o erro, você pode ter
- que abrir o arquivo PHP compilado e ir até o numero da linha exibido, no local onde o erro correspondente
- está no template.
-
-
-
-
- Dicas & Truques
-
-
-
- Manipulação de Variável Vazia
-
- Quando você quer algumas vezes imprimir um valor que você definir para uma variável vazia
- ao invés de imprimir nada, tal como imprimindo " " a fim de que plano de fundo de tabelas
- funcionem corretamente. Muitos usariam uma instrução {if} para manipular isto, mas há um
- macete com o Smarty, usando o modificador de variável
- default.
-
-
-Imprimindo quando uma variável está vazia
-
-
-{* A forma mais longa *}
-
-{if $title eq ""}
-
-{else}
- {$title}
-{/if}
-
-
-{* A forma mais simples *}
-
-{$title|default:" "}
-
-
-
-
- Manipulação do valor padrão de Variável
-
- Se uma variável é usada freqüentemente em seus templates, aplicando o modificador
- default toda vez que ela é mencionado pode evitar um bit desagradável. Você pode remediar isto
- pela atribuição de um valor padrão para a variável com a função
- assign.
-
-
-Atribuindo o valor padrão para uma variável de template
-
-{* faça isto em algum lugar no topo de seu template *}
-{assign var="titulo" value=$titulo|default:"sem título"}
-
-{* Se o $titulo estava vazio, ele agora contém o valor "sem titulo" quando você exibí-lo *}
-{$title}
-
-
-
- Passando a variável titulo para o template de cabeçalho
-
- Quando a maioria de seus templates usam os mesmos cabeçalhos e mesmos rodapés, é
- comum dividi-los um em cada template e então incluí-los. Mas o que fazer se o
- cabeçalho precisa ter um titulo diferente, dependendo de que página ele está vindo?
- Você pode passar o titulo para o
- cabeçalho quando ele é incluído.
-
-
-Passando a variável titulo para o template de cabeçalho
-
-
-mainpage.tpl
-------------
-
-{include file="header.tpl" titulo="Página Principal"}
-{* O corpo do template vem aqui *}
-{include file="footer.tpl"}
-
-
-archives.tpl
-------------
-
-{config_load file="archive_page.conf"}
-{include file="header.tpl" titulo=#archivePageTitle#}
-{* O corpo do template vem aqui *}
-{include file="footer.tpl"}
-
-
-header.tpl
-----------
-<HTML>
-<HEAD>
-<TITLE>{$titulo|default:"BC News"}</TITLE>
-</HEAD>
-<BODY>
-
-
-footer.tpl
-----------
-</BODY>
-</HTML>
-
-
- Quando a página principal é atraída, o título da "Página Principal" é passado para o template
- header.tpl, e será subseqüencialmente usado com o título. Quando a página de arquivamento é atraída,
- o título será "Archives". Note no exemplo de archive, nós estamos usando uma variável do arquivo
- archives_page.conf ao invés de uma variável codificada rígida.
- Também note que "BC news" é exibida se
- a variável $titulo não está definida,
- usando o modificador de variável default.
-
-
-
- Datas
-
- Como uma regra básica, sempre passe datas para o smarty como timestamps. Isto permite ao
- desenhista de template utilizar date_format
- para controle completo sobre a formatação de data,
- e também facilita a comparação de datas se
- necessário.
-
-
- NOTA: No Smarty 1.4.0, você pode passar datas para o Smarty como timestamps unix,
- mysql, ou qualquer outra data interpretável por strtotime().
-
-
-Usando date_format
-
-{$startDate|date_format}
-
-SAÍDA:
-
-Jan 4, 2001
-
-
-{$startDate|date_format:"%Y/%m/%d"}
-
-SAÍDA:
-
-2001/01/04
-
-
-{if $date1 < $date2}
- ...
-{/if}
-
-
- Quando usando {html_select_date} em um template, o programador normalmente vai querer converter
- a saída de um formulário de volta para o formato de timestamp. Aqui está uma função para ajudar
- com isso.
-
-
-Convertendo elementos em forma de data de volta para um timestamp
-
-// isto assume que a forma de seus elementos são nomeadas como
-// startDate_Day, startDate_Month, startDate_Year
-
-$startDate = makeTimeStamp($startDate_Year,$startDate_Month,$startDate_Day);
-
-function makeTimeStamp($year="",$month="",$day="")
-{
- if(empty($year))
- $year = strftime("%Y");
- if(empty($month))
- $month = strftime("%m");
- if(empty($day))
- $day = strftime("%d");
-
- return mktime(0,0,0,$month,$day,$year);
-}
-
-
-
- WAP/WML
-
- Os templates WAP/WML requerem um cabeçalho de Content-Type de PHP para ser passado junto com
- template. A forma mais fácil de fazer isto seria escrever uma função customizada que imprime
- o cabeçalho. Se você está usando sistema de caching, esse não funcionará, então nós faremos isso
- usando a tag de insert (lembre que tags de insert não são "cached!") Certifique-se que não há saída
- para o navegador antes do template,
- senão o cabeçalho irá falhar.
-
-
-Usando insert para escrever um cabeçalho WML Content-Type
-
-// esteja certo que o apache está configurado para as extensões .wml !
-// ponha esta função em algum lugar de sua aplicação, ou em Smarty.addons.php
-function insert_header() {
- // esta função espera o argumento $content
- extract(func_get_arg(0));
- if(empty($content))
- return;
- header($content);
- return;
-}
-
-// seu template Smarty _deve_ começar com a insert tag, olha o exemplo:
-
-{insert name=header content="Content-Type: text/vnd.wap.wml"}
-
-<?xml version="1.0"?>
-<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
-
-<!-- begin new wml deck -->
-<wml>
-<!-- begin first card -->
-<card>
-<do type="accept">
-<go href="#two"/>
-</do>
-<p>
-Bem-vindo ao WAP com Smarty!
-Pressione OK para continuar...
-</p>
-</card>
-<!-- begin second card -->
-<card id="two">
-<p>
-Bem fácil isso, não é?
-</p>
-</card>
-</wml>
-
-
-
- Templates componentizados
-
- Esta dica é um pouco de hack, mas ainda é uma idéia limpa.
- Use-a por seu próprio risco. ;-)
-
-
- Tradicionalmente, programar templates em suas aplicações segue esta forma:
- Primeiro, você acumula suas variáveis dentro de sua aplicação PHP, (talvez com requisições
- de banco de dados.) Então, você instancia seu objeto Smarty, atribui valores às variáveis
- e exibe o template. Por exemplo nós temos um registrador de estoque em nosso template.
- Nós coletaríamos os dados estocagem em nossa aplicação, então damos valor a estas variáveis
- no template e o exibimos. Agora isso seria legal
- se você adicionasse este registrador de
- armazenamento (stock ticker) para qualquer aplicação simplesmente incluindo o template, e sem
- se preocupar com a busca de dados mais a frente?
-
-
- Você pode embutir o PHP dentro de seus templates com as tags {php}{/php}.
- Com isto, você pode configurar templates independentes, tendo a sua própria
- estrutura de dados para dar valor às suas próprias variáveis. Com a lógica embutida
- dessa forma, você pode manter a lógica do template & junto. Desta maneira não é
- importante de onde o fonte do
- template está vindo, ele está sempre junto como um componente.
-
-
-Template componentizado
-
-{* Smarty *}
-
-{php}
-
- // configurar nossa função para buscar dados armazenados
- function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
- // ponha a lógica aqui que procura $ticker_name
- // e $ticker_price de algum recurso
- }
-
- // chama a função
- fetch_ticker("YHOO",$ticker_name,$ticker_price);
-
- // passando valores às variáveis de template
- $this->assign("ticker_name",$ticker_name);
- $this->assign("ticker_price",$ticker_price);
-
-{/php}
-
-Nome do Estoque: {$ticker_name} Preço do Estoque: {$ticker_price}
-
-
- No Smarty 1.5.0, há até uma forma mais limpa. Você pode incluir o php em seus templates com
- a tag {include_php ...}.
- Desta forma você pode manter a lógica do PHP separada da lógica do
- template. Veja a função include_php para
- mais informação.
-
-
-Template componentizado com include_php
-
-load_ticker.php
----------------
-
-<?php
- // configura nossa função para buscar os dados armazenados
- function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
- // ponha aqui a lógica que procura $ticker_name
- // e $ticker_price de algum recurso
- }
-
- // chama a função
- fetch_ticker("YHOO",$ticker_name,$ticker_price);
-
- // passar valores para as variáveis de template
- $this->assign("ticker_name",$ticker_name);
- $this->assign("ticker_price",$ticker_price);
-?>
-
-
-index.tpl
----------
-
-{* Smarty *}
-
-{include_php file="load_ticker.php"}
-
-Nome do Estoque: {$ticker_name} Preço do Estoque: {$ticker_price}
-
-
-
- Ofuscando endereços de E-mail
-
- Você deseja saber como seu endereço de E-mail consegue entrar em tantas listas de email de spam?
- A única forma de spammers coletar endereços de E-mail é de páginas da web. Para ajudar a combater
- este problema, você pode fazer o seu endereço de E-mail aparecer em javascript misturado no
- código HTML, mesmo assim ele aparecerá e funcionará corretamente no navegador. Isto é feito com
- o plugin mailto.
-
-
-Exemplo de ofuscamento de um Endereço de E-mail
-
-
-index.tpl
----------
-
-envia inquisição para
-{mailto address=$EmailAddress encode="javascript" subject="Olá"}
-
-
-
-
- Nota técnica
-
- Este método não é 100% a prova de falha. Um spammer poderia criar um programa
- para coletar o e-mail e para decodificar estes valores, mas não é muito comum.
-
-
-
-
-
- Recursos
-
- A homepage do Smarty está localizada em http://smarty.php.net/.
- Você pode entrar na lista de email enviando um e-mail para
- smarty-general-subscribe@lists.php.net. Um arquivo da lista de e-mail pode ser
- visto em http://marc.theaimsgroup.com/?l=smarty&r=1&w=2
-
-
-
- BUGS
-
- Verifique o arquivo de BUGS que vêm com a última distribuição do Smarty, ou
- verifique o website.
-
-
-
diff --git a/docs/pt_BR/bookinfo.xml b/docs/pt_BR/bookinfo.xml
new file mode 100755
index 00000000..bf4a24de
--- /dev/null
+++ b/docs/pt_BR/bookinfo.xml
@@ -0,0 +1,39 @@
+
+
+
+ Smarty - the compiling PHP template engine
+
+
+ MonteOhrt <monte@ispi.net>
+
+
+ AndreiZmievski <andrei@php.net>
+
+
+ &build-date;
+
+ 2001-2004
+ ispi of Lincoln, Inc.
+
+
+
+
diff --git a/docs/pt_BR/designers.sgml b/docs/pt_BR/designers.sgml
deleted file mode 100644
index 2e92d2a5..00000000
--- a/docs/pt_BR/designers.sgml
+++ /dev/null
@@ -1,5882 +0,0 @@
-
- Smarty para Designers de Template
-
-
- Sintaxe Básica
-
- Todas as tags de template do Smarty estão fechadas com delimitadores.
- Por padrão, estes delimitadores são { e
- }, mas eles podem ser mudados.
-
-
- Para estes exemplos, nós iremos assumir que você está usando os
- delimitadores padrão. No Smarty, todo o conteúdo fora dos delimitadores é
- mostrado como conteúdo estatico, ou sem modificações. Quando o Smarty encontra
- tags de template, ele tenta interpreta-las, e então mostra a saída
- apropriada em seu lugar.
-
-
-
- Comentários
-
- Comentários de template são cercados por asteriscos, e são cercados por
- delimitadores, assim: {* este é um comentário *}.
- Comentários Smarty não são mostrado na saída final do template.
- Eles são usados para fazer notas internas nos templates.
-
-
- Comentários
-
-{* Smarty *}
-
-{* inclui o arquivo header aqui *}
-{include file="header.tpl"}
-
-{include file=$includeFile}
-
-{include file=#includeFile#}
-
-{* Mostra listas dropdown *}
-<SELECT name=company>
-{html_options values=$vals selected=$selected output=$output}
-</SELECT>
-
-
-
-
- Funções
-
- Cada tag Smarty mostra uma
- variável ou utiliza algum tipo de
- função. Funções são processadas e mostradas colocando-se a função e seus
- atributos entre delimitadores, assim: {funcname
- attr1="val" attr2="val"}.
-
-
- Sintaxe de funções
-
-{config_load file="colors.conf"}
-
-{include file="header.tpl"}
-
-{if $highlight_name}
- Welcome, <font color="{#fontColor#}">{$name}!</font>
-{else}
- Welcome, {$name}!
-{/if}
-
-{include file="footer.tpl"}
-
-
- Ambas as funções internas e as funções customizadas tem a mesma sintaxe nos
- templates. Funções internas são o funcionamento do Smarty,
- assim como if, section e
- strip. Elas não podem ser modificadas. Funções customizadas
- são funções adicionais implementadas por plugins. Elas podem ser modificadas
- como você quiser, ou você pode adionar novas. html_options e
- html_select_date são exemplos de funções customizadas.
-
-
-
-
- Atributos
-
- A maioria das funções levam atributos que especificam ou modificam o seu
- funcionamento. Atributos para funções Smarty são muito parecidos como
- atributos HTML. Valores estáticos são precisam estar entre aspas,
- mas é recomendados para strings literais. Variáveis também podem ser
- usadas, e não precisam estar entre aspas.
-
-
- Alguns atributos requerem valores booleanos (true ou false). Estes podem
- ser especificados sem aspas true,
- on, e yes, ou
- false, off, e
- no.
-
-
- Sintaxe de atributos de funções
-
-{include file="header.tpl"}
-
-{include file=$includeFile}
-
-{include file=#includeFile#}
-
-{html_select_date display_days=yes}
-
-<SELECT name=company>
-{html_options values=$vals selected=$selected output=$output}
-</SELECT>
-
-
-
- Colocando Variáveis em Aspas Duplas
-
- Smarty irá reconhecer variáveis entre aspas duplas enquanto
- as variáveis conterem apenas números, letras, sublinhados e conchetes
- []. Com qualquer outro caractere (pontos, referencia de objetos, etc.) as variáveis
- devem estar entre apóstrofos.
-
-
- Sintaxe entre aspas
-
-EXEMPLOS DE SINTAXE:
-{func var="test $foo test"} <-- vê $foo
-{func var="test $foo_bar test"} <-- vê $foo_bar
-{func var="test $foo[0] test"} <-- vê $foo[0]
-{func var="test $foo[bar] test"} <-- vê $foo[bar]
-{func var="test $foo.bar test"} <-- vê $foo (not $foo.bar)
-{func var="test `$foo.bar` test"} <-- vê $foo.bar
-
-EXEMPLOS PRATICOS:
-{include file="subdir/$tpl_name.tpl"} <-- irá substituir $tpl_name com o valor
-{cycle values="one,two,`$smarty.config.myval`"} <-- deve ter apóstrofos
-
-
-
- Matemática
-
- Matemática pode ser aplicada diretamente em valores de variáveis.
-
-
- Exemplos de matemática
-
-{$foo+1}
-
-{$foo*$bar}
-
-{* alguns exemplos mais complicados *}
-
-{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
-
-{if ($foo+$bar.test%$baz*134232+10+$b+10)}
-
-{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
-
-{assign var="foo" value="`$foo+$bar`"}
-
-
-
-
-
-
- Variáveis
-
- O Smarty tem vários tipos diferentes de variáveis. O tipo de variável depende de
- de qual símbolo esta prefixada(ou cercada).
-
-
-
- Variáveis no Smarty podem ser mostradas diretamente ou usada como argumentos para
- atributos de funções e modificadores, dentro de expressões condicionais, etc.
- Para mostrar uma variável, simplesmente coloque ela entre delimitadores sendo que
- ela seja a única coisa entre eles. Exemplos:
-
-{$Name}
-
-{$Contacts[row].Phone}
-
-<body bgcolor="{#bgcolor#}">
-
-
-
- Variáveis definidas do PHP
-
- Variáveis que são definidas do PHP são referenciadas precedendo elas
- com um sinal de sifrão $. Variáveis definidas dentro do template
- com a função assign
- também são mostradas desta maneira.
-
-
-
- Variáveis definidas
-
-Hello {$firstname}, glad to see you could make it.
-<p>
-Your last login was on {$lastLoginDate}.
-
-MOSTRA:
-
-Hello Doug, glad to see you could make it.
-<p>
-Your last login was on January 11th, 2001.
-
-
-
- Associative arrays
-
- Você também pode referenciar matrizes associativas que são definidas no PHP
- especificando a chave depois do símbolo '.'
- (ponto).
-
-
-Acessando variáveis de matriz associativa
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('Contacts',
- array('fax' => '555-222-9876',
- 'email' => 'zaphod@slartibartfast.com',
- 'phone' => array('home' => '555-444-3333',
- 'cell' => '555-111-1234')));
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$Contacts.fax}<br>
-{$Contacts.email}<br>
-{* you can print arrays of arrays as well *}
-{$Contacts.phone.home}<br>
-{$Contacts.phone.cell}<br>
-
-MOSTRA:
-
-555-222-9876<br>
-zaphod@slartibartfast.com<br>
-555-444-3333<br>
-555-111-1234<br>
-
-
-
- Índices de Matrizes
-
- Você pode referencia matrizes pelo seu índice, muito
- parecido com a sintaxe nativa do PHP.
-
-
-Acesando matrizes por seus índices
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('Contacts',
- array('555-222-9876',
- 'zaphod@slartibartfast.com',
- array('555-444-3333',
- '555-111-1234')));
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$Contacts[0]}<br>
-{$Contacts[1]}<br>
-{* you can print arrays of arrays as well *}
-{$Contacts[2][0]}<br>
-{$Contacts[2][1]}<br>
-
-MOSTRA:
-
-555-222-9876<br>
-zaphod@slartibartfast.com<br>
-555-444-3333<br>
-555-111-1234<br>
-
-
-
- Objetos
-
- Propriedades de objetos definidos do PHP podem ser referenciados
- especificando-se o nome da propriedade depois do símbolo '->'.
-
-
-Acessando propriedades de objetos
-
-name: {$person->name}<br>
-email: {$person->email}<br>
-
-MOSTRA:
-
-name: Zaphod Beeblebrox<br>
-email: zaphod@slartibartfast.com<br>
-
-
-
-
-
- Variáveis carregadas de arquivos de configuração
-
- Variáveis que são carregadas de arquivos de configuração são referenciadas
- colocando-se elas entre cancelas (#), ou com a variável smarty
- $smarty.config.
- A segunda sintaxe é útil para coloca-las
- entre aspas em um atributo.
-
-
-
-Variáveis de configuração
-
-foo.conf:
-
-pageTitle = "This is mine"
-bodyBgColor = "#eeeeee"
-tableBorderSize = "3"
-tableBgColor = "#bbbbbb"
-rowBgColor = "#cccccc"
-
-index.tpl:
-
-{config_load file="foo.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>
-
-index.tpl: (sintaxe alternativa)
-
-{config_load file="foo.conf"}
-<html>
-<title>{$smarty.config.pageTitle}</title>
-<body bgcolor="{$smarty.config.bodyBgColor}">
-<table border="{$smarty.config.tableBorderSize}" bgcolor="{$smarty.config.tableBgColor}">
-<tr bgcolor="{$smarty.config.rowBgColor}">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
-</tr>
-</table>
-</body>
-</html>
-
-
-SAÍDA: (mesma para ambos exemplos)
-
-<html>
-<title>This is mine</title>
-<body bgcolor="#eeeeee">
-<table border="3" bgcolor="#bbbbbb">
-<tr bgcolor="#cccccc">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
-</tr>
-</table>
-</body>
-</html>
-
-
- Variáveis de um arquivo de configuração não podem ser usadas até
- que sejam carregadas de um arquivo de configuração. Este procedimento
- é explicado posteriormente neste documento em
- config_load.
-
-
-
-
- A variável reservada {$smarty}
-
- A variável reservada {$smarty} pode ser utilizada para acessar variáveis
- especiais do template. Segue uma lista completa.
-
-
-
- Variáveis Request
-
- Variáveis request como get, post, cookies, server,
- environment, e session podem ser acessadas como mostrado
- nos exemplos abaixo:
-
-
-
- Mostrando váriáveis request
-
-{* mostra o valor de page da URL (GET) http://www.domain.com/index.php?page=foo *}
-{$smarty.get.page}
-
-{* mostra a variável "page" de um formulário (POST) *}
-{$smarty.post.page}
-
-{* mostra o valor do cookie "username" *}
-{$smarty.cookies.username}
-
-{* mostra a variável do servidor "SERVER_NAME" *}
-{$smarty.server.SERVER_NAME}
-
-{* mostra a variável de ambiente do sistema "PATH" *}
-{$smarty.env.PATH}
-
-{* mostra a variável de session do php "id" *}
-{$smarty.session.id}
-
-{* mostra a variável "username" da união de get/post/cookies/server/env *}
-{$smarty.request.username}
-
-
-
-
- {$smarty.now}
-
- O timestamp atual pode ser acessado com {$smarty.now}.
- O número reflete o número de segundos passados desde o assim chamado
- Epoch (1 de Janeiro de 1970) e pode ser passado diretamente para o
- modificador date_format para mostrar a data.
-
-
-
-Usando {$smarty.now}
-
-{* usa o modificador date_format para mostrar a data e hora atuais *}
-{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
-
-
-
- {$smarty.const}
-
- Você pode acessar o valor de constantes PHP diretamente.
-
-
-
-Usando {$smarty.const}
-
-{$smarty.const._MY_CONST_VAL}
-
-
-
-
- {$smarty.capture}
-
- A saída capturada via {capture}..{/capture} pode ser acessada usando a variável
- {$smarty}. Veja a a seção sobre
- capture para um exemplo.
-
-
-
-
- {$smarty.config}
-
- A variável {$smarty} pode ser usada para referir variáveis de configuração carregadas.
- {$smarty.config.foo} é um sinonimo para {#foo#}. Veja a seção sobre
- config_load para um exemplo.
-
-
-
-
- {$smarty.section}, {$smarty.foreach}
-
- A variável {$smarty} pode ser usada para se referir a propriedades 'section' e
- 'foreach' de loop. Veja a documentação sobre
- section e
- foreach.
-
-
-
-
- {$smarty.template}
-
- Esta variável contém o nome do template
- atual que esta sendo processado.
-
-
-
-
-
-
-
- Modificadores de variáveis
-
- Modificadores de variáveis podem ser aplicados a variáveis, funções customizadas
- ou strings. Para aplicar um modificador, especifique o valor seguido por
- |(pipe) e o nome do modificador. Um modificador aceita
- parâmetros adicionais que afetam o seu funcionamento. Estes parâmetros seguem
- o nome do modificador e são separados por : (dois pontos).
-
-
- Exemplo de modificador
-
-{* Transforma para maiúsculas *}
-<h2>{$title|upper}</h2>
-
-{* Trunca o $topic para 40 caracteres usa ... no final *}
-Topic: {$topic|truncate:40:"..."}
-
-{* formata uma string literal *}
-{"now"|date_format:"%Y/%m/%d"}
-
-{* aplica um modificador para uma função customizada *}
-{mailto|upper address="me@domain.dom"}
-
-
- Se você aplicar um modificador para uma matriz ao invés de o valor de uma variável,
- o modificador vai ser aplicado em cada valor desta matriz. Se você realmente quiser
- que o funciona em uma matriz inteira, você deve colocar um simbolo
- @ antes do nome do modificador, assim como:
- {$articleTitle|@count} (isto irá mostrar o número de elementos
- na matriz $articleTitle.)
-
-
- Modificadores podem ser carregados automaticamente a partir do seu $plugins_dir (veja também:
- Naming
- Conventions) ou podem ser registrados explicitamente (veja: register_modifier).
- Adicionalmente, todas as funções do php podem ser utilizadas como
- modificadores implicitamente. (O exemplo
- @count acima usa atualmente a função count
- do php e não um modificador do Smarty). Usar funções do
- php como modificadores tem dois pequenos problemas: Primeiro, algumas
- vezes a ordem dos parâmetros da função não é a desejavel
- ({"%2.f"|sprintf:$float} atualmente funciona, mas pede algo
- mais intuitivo {Por exemplo:
- $float|string_format:"%2.f"} que é provido pela distribuição
- do Smarty). Segundo: com $security ativado, todas as funções do
- php que sejam utilizados como modificadores devem ser declaradas como
- confiáveis na matriz
- $security_settings['MODIFIER_FUNCS'].
-
-
-
- capitalize
-
- Isto é usado para converter para maiúsculas a primeira letra de todas as palavras em uma variável.
-
-
- capitalize
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Police begin campaign to rundown jaywalkers.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|capitalize}
-
-SAÍDA:
-
-Police begin campaign to rundown jaywalkers.
-Police Begin Campaign To Rundown Jaywalkers.
-
-
-
- count_characters
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- boolean
- Não
- false
- Isto determina quando incluir ou não os espaços em
- branco na contagem.
-
-
-
-
-
- Isto é usado para contar o número de caracteres em uma variável.
-
-
-count_characters
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|count_characters}
-{$articleTitle|count_characters:true}
-MOSTRA:
-
-Cold Wave Linked to Temperatures.
-29
-32
-
-
-
- cat
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- cat
- Descrição
-
-
-
-
- 1
- string
- Não
- empty
- Este é o valor para concatenar com a variável dada.
-
-
-
-
-
- Este valor é concatenado com a variável dada.
-
-
-cat
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Psychics predict world didn't end");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle|cat:" yesterday."}
-
-MOSTRA:
-
-Psychics predict world didn't end yesterday.
-
-
-
- count_paragraphs
-
- Isto é usado para contar o número de paragrafos em uma variável.
-
-
-count_paragraphs
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "War Dims Hope for Peace. Child's Death Ruins
-Couple's Holiday.\n\nMan is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|count_paragraphs}
-
-MOSTRA:
-
-War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.
-
-Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.
-2
-
-
-
- count_sentences
-
- Isto é usado para contar o número de sentenças em uma variável.
-
-
-count_sentences
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|count_sentences}
-
-MOSTRA:
-
-Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.
-2
-
-
-
- count_words
-
- Isto é usado para contar o número de palavras em uma variável.
-
-
-count_words
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|count_words}
-
-MOSTRA:
-
-Dealers Will Hear Car Talk at Noon.
-7
-
-
-
- date_format
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Não
- %b %e, %Y
- Este é o formato para a data mostrada.
-
-
- 2
- string
- Não
- n/a
- Esta é a data padrão se a entrada estiver vazia.
-
-
-
-
-
- Isto formata a data e hora no formato strftime() indicado.
- Datas podem ser passadas para o Smarty como timestamps unix, timestamps mysql,
- ou qualquer string composta de mês dia ano(interpretavel por strtotime).
- Designers podem então usar date_format para ter um controle completo da formatação
- da data. Se a data passada para date_format estiver vazia e um segundo parâmetro
- for passado, este será usado como a data
- para formatar.
-
-
-date_format
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('yesterday', strtotime('-1 day'));
-$smarty->display('index.tpl');
-
-index.tpl:
-
-
-{$smarty.now|date_format}
-{$smarty.now|date_format:"%A, %B %e, %Y"}
-{$smarty.now|date_format:"%H:%M:%S"}
-{$yesterday|date_format}
-{$yesterday|date_format:"%A, %B %e, %Y"}
-{$yesterday|date_format:"%H:%M:%S"}
-
-MOSTRA:
-
-Feb 6, 2001
-Tuesday, February 6, 2001
-14:33:00
-Feb 5, 2001
-Monday, February 5, 2001
-14:33:00
-
-
-date_format conversion specifiers
-
-%a - nome do dia da semana abreviado de acordo com o local atual
-
-%A - nome do dia da semana inteiro de acordo com o local atual
-
-%b - nome do mês abreviado de acordo com o local atual
-
-%B - nome do mês inteiro de acordo com o local atual
-
-%c - representação preferencial de data e hora para o local atual
-
-%C - ano com dois dígitos (o ano dividido por 100 e truncado para um inteiro, intervalo de 00 a 99)
-
-%d - dia do mês como um número decimal (intervalo de 00 a 31)
-
-%D - o mesmo que %m/%d/%y
-
-%e - dia do mês como um número decimal, um único dígito é precedido por um
-espaço (intervalo de 1 a 31)
-
-%g - ano baseado na semana, sem o século [00,99]
-
-%G - ano baseado na semana, incluindo o século [0000,9999]
-
-%h - o mesmo que %b
-
-%H - hora como um número decimal usando um relógio de 24 horas (intervalo de 00 a 23)
-
-%I - hora como um número decimal usando um relógio de 12 horas (intervalo de 01 a 12)
-
-%j - dia do ano como um número decimal (intervalo de 001 a 366)
-
-%k - hora (relógio de 24 horas) digítos únicos são precedidos por um espaço em branco (intervalo de 0 a 23)
-
-%l - hora como um número decimal usando um relógio de 12 horas, digítos unicos são precedidos
-por um espaço em branco (intervalo de 1 a 12)
-
-%m - mês como número decimal (intervalo de 01 a 12)
-
-%M - minuto como um número decimal
-
-%n - caractere de nova linha
-
-%p - ou `am' ou `pm' de acordo com o valor de hora dado, ou as strings correspondentes ao local atual
-
-%r - hora na notação a.m. e p.m.
-
-%R - hora na notação de 24 horas
-
-%S - segundo como número decimal
-
-%t - caractere tab
-
-%T - hora atual, igual a %H:%M:%S
-
-%u - dia da semana como um número decimal [1,7], com 1 representando segunda-feira
-
-%U - número da semana do ano atual como um número decimal, começando com o primeiro domingo como primeiro dia da primeira semana
-
-%V - número da semana do ano atual como um número decimal de acordo com The ISO 8601:1988,
-intervalo de 01 a 53, aonde a semana 1 é a primeira semana que tenha pelo menos quatro dias no ano atual, sendo domingo o primeiro dia da semana.
-
-%w - dia da semana como decimal, domingo sendo 0
-
-%W - número da semana do ano atual como número decimal, começando com a primeira segunda como primeiro dia da primeira semana
-
-%x - representação preferencial da data para o local atualsem a hora
-
-%X - representação preferencial da hora para o local atual sem a data
-
-%y - ano como número decimal sem o século (intervalo de 00 a 99)
-
-%Y - ano como número decimal incluindo o século
-
-%Z - zona horária ou nome ou abreviação
-
-%% - um caractere `%'
-
-
-NOTA PARA PROGRAMADORES: date_format é essencialmente um wrapper para a função strftime() do PHP.
-Você deverá ter mais ou menos especificadores de conversão disponíveis de acordo com a
-função strftime() do sistema operacional aonde o PHP foi compilado. De uma olhada
-na página de manual do seu sistema para uma lista completa dos especificadores válidos.
-
-
-
-
- default
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Não
- vazio
- Este é o valor padrão para mostrar se a variável
- estiver vazia.
-
-
-
-
-
- Isto é usado para definir um valor padrão para uma variável. Se a variável estiver
- vazia ou não for definida, o valor padrão dado é mostrado.
- Default usa um argumento.
-
-
-default
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle|default:"no title"}
-{$myTitle|default:"no title"}
-
-MOSTRA:
-
-Dealers Will Hear Car Talk at Noon.
-no title
-
-
-
- escape
-
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Valores Possíveis
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Não
- html,htmlall,url,quotes,hex,hexentity,javascript
- html
- Este é o formato de escape para usar.
-
-
-
-
-
- Este é usado para escapar html, url, aspas simples em uma variável que já não esteja
- escapada, escapar hex, hexentity ou javascript.
- Por padrão, é escapado
- o html da variável.
-
-
-escape
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|escape}
-{$articleTitle|escape:"html"} {* escapa & " ' < > *}
-{$articleTitle|escape:"htmlall"} {* escapa todas as entidades html *}
-{$articleTitle|escape:"url"}
-{$articleTitle|escape:"quotes"}
-<a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>
-
-MOSTRA:
-
-'Stiff Opposition Expected to Casketless Funeral Plan'
-'Stiff Opposition Expected to Casketless Funeral Plan'
-'Stiff Opposition Expected to Casketless Funeral Plan'
-'Stiff Opposition Expected to Casketless Funeral Plan'
-%27Stiff+Opposition+Expected+to+Casketless+Funeral+Plan%27
-\'Stiff Opposition Expected to Casketless Funeral Plan\'
-<a href="mailto:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net</a>
-
-
-
- indent
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- integer
- Não
- 4
- Isto define com quantos
- caracteres endentar.
-
-
- 2
- string
- Não
- (um espaço)
- Isto define qual caractere usado para endentar.
-
-
-
-
-
- Isto endenta uma string em cada linha, o padrão é 4. Como
- parâmetro opcional, você pode especificar o número de caracteres para
- endentar. Como segundo parâmetro opcional, você pode especificar o caractere
- usado para endentar. (Use "\t" para tabs.)
-
-
-indent
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'NJ judge to rule on nude beach.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-
-{$articleTitle|indent}
-
-{$articleTitle|indent:10}
-
-{$articleTitle|indent:1:"\t"}
-
-MOSTRA:
-
-NJ judge to rule on nude beach.
-Sun or rain expected today, dark tonight.
-Statistics show that teen pregnancy drops off significantly after 25.
-
- NJ judge to rule on nude beach.
- Sun or rain expected today, dark tonight.
- Statistics show that teen pregnancy drops off significantly after 25.
-
- NJ judge to rule on nude beach.
- Sun or rain expected today, dark tonight.
- Statistics show that teen pregnancy drops off significantly after 25.
-
- NJ judge to rule on nude beach.
- Sun or rain expected today, dark tonight.
- Statistics show that teen pregnancy drops off significantly after 25.
-
-
-
- lower
-
- Isto é usado para converter para minúsculas uma variável.
-
-
-lower
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|lower}
-
-MOSTRA:
-
-Two Convicts Evade Noose, Jury Hung.
-two convicts evade noose, jury hung.
-
-
-
- nl2br
-
- Todas as quebras de linha serão convertidas para <br /> na variável
- data. Isto é equivalente a função nl2br() do PHP.
-
-
-nl2br
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Sun or rain expected\ntoday, dark tonight");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle|nl2br}
-
-MOSTRA:
-
-Sun or rain expected<br />today, dark tonight
-
-
-
- regex_replace
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Sim
- n/a
- Esta é a expressão regular a ser substituída.
-
-
- 2
- string
- Sim
- n/a
- Esta é a string que irá substituir a expressão regular.
-
-
-
-
-
- Uma expressão regular para localizar e substituir na variável. Use a sintaxe
- para preg_replace() do manual do PHP.
-
-
-regex_replace
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{* replace each carriage return, tab & new line with a space *}
-
-{$articleTitle}
-{$articleTitle|regex_replace:"/[\r\t\n]/":" "}
-
-MOSTRA:
-
-Infertility unlikely to
- be passed on, experts say.
-Infertility unlikely to be passed on, experts say.
-
-
-
- replace
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Sim
- n/a
- Esta é a string a ser substituida.
-
-
- 2
- string
- Sim
- n/a
- Esta é a string que irá substituir.
-
-
-
-
-
- Um simples localizar e substituir.
-
-
-replace
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Child's Stool Great for Use in Garden.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|replace:"Garden":"Vineyard"}
-{$articleTitle|replace:" ":" "}
-
-OUTPUT:
-
-Child's Stool Great for Use in Garden.
-Child's Stool Great for Use in Vineyard.
-Child's Stool Great for Use in Garden.
-
-
-
- spacify
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Não
- um espaço
- O que é inserido entre cada caractere
- da variável.
-
-
-
-
-
- Insere um espaço entre cada caractere de uma variável.
- Você pode opcionalmente passar um caractere (ou uma string) diferente para inserir.
-
-
-spacify
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|spacify}
-{$articleTitle|spacify:"^^"}
-
-OUTPUT:
-
-Something Went Wrong in Jet Crash, Experts Say.
-S o m e t h i n g W e n t W r o n g i n J e t C r a s h , E x p e r t s S a y .
-S^^o^^m^^e^^t^^h^^i^^n^^g^^ ^^W^^e^^n^^t^^ ^^W^^r^^o^^n^^g^^ ^^i^^n^^ ^^J^^e^^t^^ ^^C^^r^^a^^s^^h^^,^^ ^^E^^x^^p^^e^^r^^t^^s^^ ^^S^^a^^y^^.
-
-
-
- string_format
-
-
-
-
-
-
-
-
-
- Posição do parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- string
- Sim
- n/a
- Este é o formato para ser usado. (sprintf)
-
-
-
-
-
- Este é um meio para formatar strings, como números decimais e outros.
- Use a sintaxe para sprintf para a formatação.
-
-
-string_format
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('number', 23.5787446);
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$number}
-{$number|string_format:"%.2f"}
-{$number|string_format:"%d"}
-
-MOSTRA:
-
-23.5787446
-23.58
-24
-
-
-
- strip
-
- Isto substitui todos os espaços repetidos, novas linhas e tabs por
- um único espaço ou a string indicada.
-
-
- Nota
-
- Se você quer substituir blocos de texto do template, use a função strip.
-
-
-
-strip
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Grandmother of\neight makes\t hole in one.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|strip}
-{$articleTitle|strip:" "}
-
-MOSTRA:
-
-Grandmother of
-eight makes hole in one.
-Grandmother of eight makes hole in one.
-Grandmother of eight makes hole in one.
-
-
-
- strip_tags
-
- Isto retira as tags de marcação, basicamente tudo entre < e >.
-
-
-strip_tags
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Blind Woman Gets <font face=\"helvetica\">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|strip_tags}
-
-MOSTRA:
-
-Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.
-Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
-
-
-
- truncate
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- integer
- Não
- 80
- Este determina para
- quantos caracteres truncar.
-
-
- 2
- string
- Não
- ...
- Este é o texto para adicionar se truncar.
-
-
- 3
- boolean
- Não
- false
- Isto determina quando truncar ou não ao final de uma
- palavra(false), ou no caractere exato (true).
-
-
-
-
-
- Isto trunca a variável para uma quantidade de caracteres, o padrão é 80.
- Como segundo parâmetro opcional, você pode especificar uma string para mostrar
- ao final se a variável foi truncada. Os caracteres da string são incluídos no tamanho
- original para a truncagem. por padrão, truncate irá tentar cortar ao final de uma palavra.
- Se você quizer cortar na quantidade exata de caracteres, passe o terceiro
- parâmetro, que é opcional,
- como true.
-
-
-truncate
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|truncate}
-{$articleTitle|truncate:30}
-{$articleTitle|truncate:30:""}
-{$articleTitle|truncate:30:"---"}
-{$articleTitle|truncate:30:"":true}
-{$articleTitle|truncate:30:"...":true}
-
-MOSTRA:
-
-Two Sisters Reunite after Eighteen Years at Checkout Counter.
-Two Sisters Reunite after Eighteen Years at Checkout Counter.
-Two Sisters Reunite after...
-Two Sisters Reunite after
-Two Sisters Reunite after---
-Two Sisters Reunite after Eigh
-Two Sisters Reunite after E...
-
-
-
- upper
-
- Isto é usado para converter para maiúsculas uma variável.
-
-
-upper
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|upper}
-
-MOSTRA:
-
-If Strike isn't Settled Quickly it may Last a While.
-IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
-
-
-
- wordwrap
-
-
-
-
-
-
-
-
-
- Posição do Parâmetro
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- 1
- integer
- Não
- 80
- Isto determina em
- quantas colunas quebrar.
-
-
- 2
- string
- Não
- \n
- Esta é a string usada para quebrar.
-
-
- 3
- boolean
- Não
- false
- Isto determina quando quebrar ou não ao final de uma palavra
- (false), ou no caractere exato (true).
-
-
-
-
-
- Isto quebra uma string para uma largura de coluna, o padrão é 80.
- Como segundo parâmetro opcional, você pode especificar a string que será usada
- para quebrar o texto para a próxima linha
- (o padrão é um retorno de carro \n).
- Por padrão, wordwrap irá tentar quebrar ao final de uma palavra. Se
- você quiser quebrar no tamanho exato de caracteres, passe o terceiro parâmetro, que é opcional, como true.
-
-
-wordwrap
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', "Blind woman gets new kidney from dad she hasn't seen in years.");
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-
-{$articleTitle|wordwrap:30}
-
-{$articleTitle|wordwrap:20}
-
-{$articleTitle|wordwrap:30:"<br>\n"}
-
-{$articleTitle|wordwrap:30:"\n":true}
-
-MOSTRA:
-
-Blind woman gets new kidney from dad she hasn't seen in years.
-
-Blind woman gets new kidney
-from dad she hasn't seen in
-years.
-
-Blind woman gets new
-kidney from dad she
-hasn't seen in
-years.
-
-Blind woman gets new kidney<br>
-from dad she hasn't seen in years.
-
-Blind woman gets new kidney fr
-om dad she hasn't seen in year
-s.
-
-
-
-
-
-
- Combinando Modificadores
-
- Você pode aplicar qualquer número de modificadores para uma variável. Eles serão
- aplicados na ordem que eles foram combinados, da esquerda para a direita. Eles
- devem ser separados com um caractere | (pipe).
-
-
- Combinando Modificadores
-
-index.php:
-
-$smarty = new Smarty;
-$smarty->assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.');
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{$articleTitle}
-{$articleTitle|upper|spacify}
-{$articleTitle|lower|spacify|truncate}
-{$articleTitle|lower|truncate:30|spacify}
-{$articleTitle|lower|spacify|truncate:30:". . ."}
-
-
-MOSTRA:
-
-Smokers are Productive, but Death Cuts Efficiency.
-S M O K E R S A R E P R O D U C T I V E , B U T D E A T H C U T S E F F I C I E N C Y .
-s m o k e r s a r e p r o d u c t i v e , b u t d e a t h c u t s...
-s m o k e r s a r e p r o d u c t i v e , b u t . . .
-s m o k e r s a r e p. . .
-
-
-
-
-
- Funções Embutidas
-
- O Smarty vem com várias funções embutidas. Funções embutidas fazem parte
- da linguagem de template. Você não pode criar funções personalizadas com
- o mesmo nome, nem pode modificar as funções embutidas.
-
-
- capture
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Não
- default
- O nome do bloco capturado
-
-
- assign
- string
- Não
- n/a
- O nome da variável para dar o valor da saída capturada
-
-
-
-
-
- capture é usado para coletar toda a saída do template em uma variável ao invés
- de mostra-lo. Qualquer conteúdo entre {capture
- name="foo"} e {/capture} coletado na variável especificada no atributo name.
- O conteúdo capturado pode ser usado no template a apertir da variável especial
- $smarty.capture.foo aonde foo é o valor passado para o atributo name. Se você não
- passar um atributo name, então será usado "default". Todos os comandos
- {capture} devem ter o seu {/capture}. Você pode aninhar(colocar um dentro de outro)
- comandos capture.
-
-
- Nota Tecnica
-
- Smarty 1.4.0 - 1.4.4 coloca o conteúdo capturado dentro da variável
- chamada $return. A partir do 1.4.5, este funcionamento foi mudado
- para usar o atributo name, então atualize os seus templates de acordo.
-
-
-
-
- Tenha cuidado quando capturar a saída do comando insert.
- Se você tiver o cache em on e você tiver comandos insert
- que você espera que funcione com conteúdo do cache,
- não capture este conteúdo.
-
-
-
-
- capturando conteúdo do template
-
-{* we don't want to print a table row unless content is displayed *}
-{capture name=banner}
-{include file="get_banner.tpl"}
-{/capture}
-{if $smarty.capture.banner ne ""}
- <tr>
- <td>
- {$smarty.capture.banner}
- </td>
- </tr>
-{/if}
-
-
-
-
- config_load
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- file
- string
- Sim
- n/a
- O nome do arquivo de configuração para incluir
-
-
- section
- string
- Não
- n/a
- O nome da seção a carregar
-
-
- scope
- string
- Não
- local
-
- Como o escopo das variáveis carregadas é tratado,
- o qual deve ser um entre local, parent ou global. local
- indica que as variáveis são carregadas no contexto do
- template local apenas. parent indica que as variáveis são carregadas
- no contexto atual e no template que o chamou. global indica
- que as variáveis estão
- disponíveis para todos os templates.
-
-
-
- global
- boolean
- No
- No
-
- Quando ou não as variá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
- ainda é suportado. Se scope for indicado, este valor é ignorado.
-
-
-
-
-
-
- Esta função é usada para carregar as variáveis de um arquivo de configuração
- dentro de um template. Veja Config Files
- para maiores
- informações.
-
-
-Função config_load
-
-
-{config_load file="colors.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>
-
-
- Arquivos de configuração podem conter seções também. Voce pode carregar
- variáveis de uma seção adicionando o atributo
- section.
-
-
- NOTA: Config file sections e a função embutida de
- template section não tem nada a ver um com o outro,
- eles apenas tem uma mesma
- convenção de nomes.
-
-
-Função config_load com seções
-
-{config_load file="colors.conf" section="Customer"}
-
-<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>
-
-
-
- foreach,foreachelse
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- from
- string
- Sim
- n/a
- O nome da matriz que você estará pegando os elementos
-
-
- item
- string
- Yes
- n/a
- O nome da variável
- que é o elemento atual
-
-
- key
- string
- Não
- n/a
- O nome da variável que é a chave atual
-
-
- name
- string
- Não
- n/a
- O nome do loop foreach para acessar as
- propriedades foreach
-
-
-
-
-
- Loops foreach são uma alternativa para loops
- section. foreach é usado
- para pegar cada elemento de uma matriz associativa simples.
- A sintaxe para foreach é muito mais simples do que
- section, mas tem a desvantagem de poder ser usada
- apenas para uma única matriz. Tags foreach devem ter
- seu par /foreach. Os parâmetros requeridos são
- from e item. O nome do loop
- foreach pode ser qualquer coisa que você queira, feito de letras, números
- e sublinhados. Loops foreach
- podem ser aninhados, e o nome dos loops aninhados devem ser diferentes
- um dos outros. A variável from (normalmente uma
- matriz de valores) determina o número de vezes do loop
- foreach.
- foreachelse é executado quando não houverem mais valores
- na variável from.
-
-
-foreach
-
-
-{* este exemplo irá mostrar todos os valores da matriz $custid *}
-{foreach from=$custid item=curr_id}
- id: {$curr_id}<br>
-{/foreach}
-
-MOSTRA:
-
-id: 1000<br>
-id: 1001<br>
-id: 1002<br>
-
-
-
-foreach key
-
-{* A key contém a chave para cada valor do loop
-
-A definição é alo assim:
-
-$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>
- {/foreach}
-{/foreach}
-
-MOSTRA:
-
-phone: 1<br>
-fax: 2<br>
-cell: 3<br>
-phone: 555-4444<br>
-fax: 555-3333<br>
-cell: 760-1234<br>
-
-
-
- Loop foreach também tem as suas próprias variáveis para manipilar a as propriedades
- foreach. Estas são indicadas assim: {$smarty.foreach.foreachname.varname} com
- foreachname sendo o nome especificado no atributo
- name do foreach.
-
-
-
-
- iteration
-
- iteration é usado para mostrar a interação atual do loop.
-
-
- Iteration sempre começa em 1 e
- é incrementado um a um em cada interação.
-
-
-
-
- first
-
- first é definido como true se a interação atual
- do foreach for a primeira.
-
-
-
-
- last
-
- last é definido como true se a interação atual
- do foreach for a última.
-
-
-
-
- show
-
- show é usado como parâmetro para o foreach.
- show é um valor booleano, true ou false. Se
- false, o foreach não será mostrado. Se tiver um foreachelse
- presente, este será alternativamente mostrado.
-
-
-
-
- total
-
- total é usado para mostrar o número de interações do
- foreach. Isto pode ser usado dentro ou depois do foreach.
-
-
-
-
-
-
-
-
-
- include
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- file
- string
- Sim
- n/a
- O nome do arquivo de template a incluir
-
-
- assign
- string
- Não
- n/a
- O nome de uma variável que irá
- conter toda a saída do template
-
-
- [var ...]
- [var type]
- Não
- n/a
- Variável para passar localmente para o template
-
-
-
-
-
- Tags include são usados para incluir outros templates no template
- atual. Quaisquer variáveis disponíveis no template atual também esta
- disponível dentro do template incluido. A tag include deve ter o atributo
- "file", o qual contém o caminho do arquivo a incluir.
-
-
- Você pode opcionalmente passar o atributo assign,
- o qual irá especificar o nome de uma variável de template para a qual
- conterá toda a saída de include ao
- invés de mostra-la.
-
-
-function include
-
-{include file="header.tpl"}
-
-{* O corpo do template vai aqui *}
-
-{include file="footer.tpl"}
-
-
- Você pode também passar variáveis para o template incluído como atributos.
- Quaisquer variáveis passadas para um template incluído como atributos
- estão disponíveis somente dentro do escopo do template incluído.
- As variáveis passadas como atributos sobrescrevem as variáveis de
- template atuais, no caso de ambas terem o mesmo nome.
-
-
-Função include passando variáveis
-
-{include file="header.tpl" title="Main Menu" table_bgcolor="#c0c0c0"}
-
-{* O corpo de template vai aqui *}
-
-{include file="footer.tpl" logo="http://my.domain.com/logo.gif"}
-
-
- Use a sintaxe para template resources para
- incluir arquivos fora do diretório $template_dir.
-
-
-Exemplos de recursos para a função include
-
-{* caminho absoluto *}
-{include file="/usr/local/include/templates/header.tpl"}
-
-{* caminho absoluto (mesma coisa) *}
-{include file="file:/usr/local/include/templates/header.tpl"}
-
-{* caminho absoluto do windows (DEVE usar o prefixo "file:") *}
-{include file="file:C:/www/pub/templates/header.tpl"}
-
-{* incluir a partir do recurso de template chamado "db" *}
-{include file="db:header.tpl"}
-
-
-
- include_php
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- file
- string
- Sim
- n/a
- O nome do arquivo php a incluir
-
-
- once
- boolean
- Não
- true
- Quando incluir ou não o arquivo php mais de uma vez se
- incluído várias vezes
-
-
- assign
- string
- Não
- n/a
- O nome da variável
- que receberá a saída do arquivo php
-
-
-
-
-
- Tags include_php são usadas para incluir um script php no seu template.
- Se a segurança estiver ativada, então o script php deve estar localizado
- no caminho $trusted_dir. A tag include_php deve ter o atributo
- "file", o qual contém o caminho para o arquivo php a ser incluído,
- ou relativo a $trusted_dir, ou um caminho absoluto.
-
-
- include_php é um bom meio de manipular templates com componentes,
- e mante o código PHP separado dos arquivos de template. Vamos dizer
- que você tenha um template que mostre a navegação do seu site, o qual
- é prenchido automaticamente a partir de um banco de dados. Você pode
- manter a sua lógica PHP que obtém os dados em um diretório separado,
- e inclui-la no topo do template. Agora você pode incluir este template
- em qualquer lugar sem se preocupar se a informação do banco de dados foi
- obtida antes de usar.
-
-
- Por padrão, os arquivos php são incluídos apenas uma vez mesmo
- se incluídos várias vezes no template. Você pode especificar que ele
- seja incluído todas as vezes com o atributo once.
- Definindo once para false irá incluir o script php a cada vez que
- ele seja incluído no template.
-
-
- Você pode opcionalmente passar o atributo assign,
- o qual irá especificar uma variável de template a qual irá conter
- toda a saída de
- include_php em vez de mostra-la.
-
-
- O objeto smarty esta disponível como $this dentro do
- script php que você incluiu.
-
-
-Função include_php
-
-load_nav.php
--------------
-
-<?php
-
- // carrega variáveis de um banco de dados mysql e define ela 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"}
-
-{foreach item="curr_section" from=$sections}
- <a href="{$curr_section.url}">{$curr_section.name}</a><br>
-{/foreach}
-
-
-
- insert
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Sim
- n/a
- O nome da função insert (insert_name)
-
-
- assign
- string
- Não
- n/a
- O nome da variável que
- irá receber a saída
-
-
- script
- string
- Não
- n/a
- O nome de um script php que será incluido
- antes que a função insert seja chamada
-
-
- [var ...]
- [var type]
- Não
- n/a
- 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.
-
-
- Vamos dizer que você 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ção estatica aqui, e nós não
- queremos que este conteúdo fique no cache com a página. Aqui vem 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.
-
-
-function insert
-
-{* example of fetching a 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 em 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ê der 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ê der 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 a $trusted_dir. Quando a segurança esta
- ativada, o script deve estar em $trusted_dir.
-
-
- O objeto Smarty é passado como segundo argumento. Desde modo
- pocê 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,
- clima, resultados de pesquisa, areas de opnião do usuário, etc.
-
-
-
-
- if,elseif,else
-
- Comandos if no Smarty tem muito da mesma flexibilidade do php,
- com algumas adições para a ferramenta de template.
- Todo if deve ter o seu
- /if. else e
- elseif també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ção válidos, e ddevem estar separados
- dos elementos em roda por espaço.
-
-
-comandos if
-
-{if $name eq "Fred"}
- Welcome Sir.
-{elseif $name eq "Wilma"}
- Welcome Ma'am.
-{else}
- Welcome, whatever you are.
-{/if}
-
-{* um exemplo com "or" *}
-{if $name eq "Fred" or $name eq "Wilma"}
- ...
-{/if}
-
-{* o mesmo que acima *}
-{if $name == "Fred" || $name == "Wilma"}
- ...
-{/if}
-
-{* a seguinte sintaxe não irá funcionar, qualificadores de condição
- devem estar separados dos elementos em torno por espaços *}
-{if $name=="Fred" || $name=="Wilma"}
- ...
-{/if}
-
-
-{* parenteses são permitidos *}
-{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
- ...
-{/if}
-
-{* você pode também colocar funções php *}
-{if count($var) gt 0}
- ...
-{/if}
-
-{* testa se o valor é par ou impar *}
-{if $var is even}
- ...
-{/if}
-{if $var is odd}
- ...
-{/if}
-{if $var is not odd}
- ...
-{/if}
-
-{* test if var is divisible by 4 *}
-{if $var is div by 4}
- ...
-{/if}
-
-{* test if var is even, grouped by two. i.e.,
-0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc. *}
-{if $var is even by 2}
- ...
-{/if}
-
-{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}
-{if $var is even by 3}
- ...
-{/if}
-
-
-
- ldelim,rdelim
-
- 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ão este é o meio de contornar isso.
-
-
-ldelim, rdelim
-
-{* isto irá mostrar os delimitadore no template *}
-
-{ldelim}funcname{rdelim} is how functions look in Smarty!
-
-
-MOSTRA:
-
-{funcname} is how functions look in Smarty!
-
-
-
- literal
-
- Tags literal permitem que um bloco de dados seja tomado literalmente,
- não sendo interpretado pelo smarty. Isto é útil
- para coisas como seçõ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á interpretado, mas mostrado como estiver.
-
-
-Tags literal
-
-{literal}
- <script language=javascript>
-
- <!--
- function isblank(field) {
- if (field.value == '')
- { return false; }
- else
- {
- document.loginform.submit();
- return true;
- }
- }
- // -->
-
- </script>
-{/literal}
-
-
-
- php
-
- Tags php permitem que você adicione código php diretamente no template.
- Não será escapado, não importando a definição de $php_handling. Isto
- é apenas para usuários avançados e normalmente não é necessário.
-
-
-Tags php
-
-{php}
- // incluindo um script php
- // diretamente no template.
- include("/path/to/display_weather.php");
-{/php}
-
-
-
- section,sectionelse
-
-
-
-
-
-
-
-
-
- Nome do atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Sim
- n/a
- O nome da seção
-
-
- loop
- [$variable_name]
- Sim
- n/a
- O nome da variável para determinar o
- número de interações
-
-
- start
- integer
- Não
- 0A posição
- do índice que a seção vai começar. Se o valor
- é negativo, a posição de inicio é calculada a partir
- do final da matriz. For exemplo, se houverem
- sete valores na matriz e start for -2, o
- índice inicial é 5. Valores inválidos (valores fora do
- tamanho da matriz) são automaticamente truncados
- para o valor válido mais próximo.
-
-
- step
- integer
- Não
- 1
- O valor do passo que será usado para o loop
- na matriz. Por exemplo, step=2 irá realizar o loop com
- os índices 0,2,4, etc. Se step for negativo, ele irá caminhar
- pela matriz de trás para frente.
-
-
- max
- integer
- Não
- 1
- Define o número máximo de loops
- para a section.
-
-
- show
- boolean
- Não
- true
- Determina quando mostrar ou não esta section
-
-
-
-
-
- sections de template são usada para realizar um loop por uma matriz. Todas as tags
- section devem ter as suas
- /section. Parâmetros requeridos são
- name e loop. O nome
- de section pode ser o que você 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ável do loop
- (normalmente uma matriz de valores) determina o número de vezes do
- loop da section. Quando estiver mostrando uma variável dentro de uma section,
- o nome da section deve estar ao lado da variável dentro de conchetes
- []. sectionelse é
- executado quando não houverem valores para a variável de loop.
-
-
-section
-
-
-{* este exemplo irá mostrar todos os valores de $custid array *}
-{section name=customer loop=$custid}
- id: {$custid[customer]}<br>
-{/section}
-
-MOSTRA:
-
-id: 1000<br>
-id: 1001<br>
-id: 1002<br>
-
-
-
-loop de variável section
-
-{* a variável de loo´p determina o número de vezes do loop.
- Vocâ pode acessar qualquer variável do template dentro da section.
- Este exemplo assume que $custid, $name e $address 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}
-
-
-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>
-
-
-
-Nomes de section
-
-{* o nome de section pode ser o que você quiser,
- e é 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}
-
-
-
-sections aninhadas
-
-{* sections podem ser aninhadas tão profundamente quanto você quiser. Com sections aninhadas,
- você pode acessar estruturas de dados complexas, como matriz multi-dimensionais.
- Neste exemplo, $contact_type[customer] é uma matriz de
- tipos de contato para o custumer atual. *}
-{section name=customer loop=$custid}
- 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>
- {/section}
- <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>
-
-
-
-sections e matrizes associativas
-
-{* Este é 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>
-{/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>
-
-
-
-
-
-sectionelse
-
-{* sectionelse irá executar se não houverem mais valores $custid *}
-{section name=customer loop=$custid}
- id: {$custid[customer]}<br>
-{sectionelse}
- there are no values in $custid.
-{/section}
-
-
- Sections também tem as suas próprias variáveis que manipulam as propriedaes section.
- Estas são indicadas assim: {$smarty.section.sectionname.varname}
-
-
- NOTA: a partir do Smarty 1.5.0, a sintaxe para as variáveis de propriedades de section
- mudou de {%sectionname.varname%} para
- {$smarty.section.sectionname.varname}. A sintaxe antiga ainda é suportada,
- mas você irá ver referencias apenas a nova sintaxe nos
- exemplos do manual.
-
-
- index
-
- index é usado para mostrar o índice atual do loop, começando em zero
- (ou pelo atributo start se dado), e incrementando por um (ou pelo
- atributo step se dado).
-
-
- Nota Técnica
-
- Se as propriedades section não for modificada,
- então isto funciona igual a propriedade iteration da section,
- exceto que começa em 0 ao invés de 1.
-
-
-
- section property index
-
- {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>
-
-
-
-
- index_prev
-
- index_prev é usado para mostrar o índice anterior do loop.
- No primeiro loop, isto é definido como -1.
-
-
- section property index_prev
-
- {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>
- {/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>
-
-
-
-
- index_next
-
- index_next é usado para mostrar o próximo indice do loop. No último loop,
- isto ainda é um mais o índice atual( respeitando a definição
- do atributo step, se dado.)
-
-
- section property index_next
-
- {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>
- {/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>
-
-
-
-
- iteration
-
- iteration é usado para mostrar a interação atual do loop.
-
-
- NOTA: isto não é afetado pelas propriedades start, step e
- max, diferentemente das propriedade index. Iteration também começa com 1
- ao invés de 0 como index. rownum é um apelido para iteration,
- elas funcionam de modo identico.
-
-
- section property iteration
-
- {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>
- {/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>
-
-
-
-
- first
-
- first é definido como true se a interação atual da section
- é a primeira.
-
-
- section property first
-
- {section name=customer loop=$custid}
- {if $smarty.section.customer.first}
- <table>
- {/if}
-
- <tr><td>{$smarty.section.customer.index} id:
- {$custid[customer]}</td></tr>
-
- {if $smarty.section.customer.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>
-
-
-
-
- last
-
- last é definido como true de a interação atual da
- section é a última.
-
-
- section property last
-
- {section name=customer loop=$custid}
- {if $smarty.section.customer.first}
- <table>
- {/if}
-
- <tr><td>{$smarty.section.customer.index} id:
- {$custid[customer]}</td></tr>
-
- {if $smarty.section.customer.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>
-
-
-
-
- rownum
-
- rownum é usado para mostrar a interação atual do loop,
- começando em um. É um apelido para iteration,
- elas funcionam de modo identico.
-
-
- section property rownum
-
- {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>
-
-
-
-
- loop
-
- loop é usado para mostrar o último número do índice do loop desta
- section. Isto pode ser usado dentro ou depois de section.
-
-
- section property index
-
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {/section}
-
- There were {$smarty.section.customer.loop} customers shown above.
-
- MOSTRA:
-
- 0 id: 1000<br>
- 1 id: 1001<br>
- 2 id: 1002<br>
-
- There were 3 customers shown above.
-
-
-
-
- show
-
- show é usado como parâmetro para section.
- show é um valor booleano, true ou false. Se
- false, a section não será mostrada. Se existir um sectionelse
- presente, esta será alternativamente mostrado.
-
-
- section attribute show
-
- {* $show_customer_info deve ser passada da aplicaçã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}
-
- {if $smarty.section.customer.show}
- the section was shown.
- {else}
- the section was not shown.
- {/if}
-
-
- MOSTRA:
-
- 1 id: 1000<br>
- 2 id: 1001<br>
- 3 id: 1002<br>
-
- the section was shown.
-
-
-
-
- total
-
- total é usado para mostrar o número de interações que esta section terá.
- Isto pode ser usado dentro ou depois da section.
-
-
- section property total
-
- {section name=customer loop=$custid step=2}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {/section}
-
- There were {$smarty.section.customer.total} customers shown above.
-
- MOSTRA:
-
- 0 id: 1000<br>
- 2 id: 1001<br>
- 4 id: 1002<br>
-
- There were 3 customers shown above.
-
-
-
-
-
- strip
-
- Várias vezes web designers tem problemas com espaços em branco e
- carriage returns afetam a saída do HTML (browser
- "features"), assim você tem que colocar todas as suas tags juntas para ter
- os resultados desejados. Isto normalmente termina em um
- template ilegível ou que não se consegue ler.
-
-
- Tudo dentro de {strip}{/strip} no Smarty tem retirados os espaços em branco
- e carriage returns no inicio e final das linhas
- antes que sejam mostrados. Deste modo você pode manter seu template
- legível, e não se preocupar com o espaço estra causando
- problemas.
-
-
- Nota Técnica
-
- {strip}{/strip} não afeta o conteúdo das variáveis de template.
- Veja strip modifier
- function.
-
-
-
-strip tags
-
-{* o seguinte estará tudo junto em uma linha na saída *}
-{strip}
-<table border=0>
- <tr>
- <td>
- <A HREF="{$url}">
- <font color="red">This is a test</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>
-
-
- Note que no exemplo acima, todas as linhas começam e terminam
- com tags HTML. Tenha cuidado que todas as linhas ficam juntas.
- Se você tiver texto simples no inicio ou no final de uma linha,
- ele estará junto, e pode não ser o resultado desejado.
-
-
-
-
-
- Funções Personalizadas
-
- Smarty vem com várias funções personalizadas que você
- pode usar em seus templates.
-
-
- assign
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- var
- string
- Sim
- n/a
- O nome da variável que esta ganhando valor
-
-
- value
- string
- Yes
- n/a
- O valor que esta sendo dado
-
-
-
-
-
- assign é usado para definir valores para variável
- de template durante a execução do template.
-
-
-assign
-
-{assign var="name" value="Bob"}
-
-The value of $name is {$name}.
-
-MOSTRA:
-
-The value of $name is Bob.
-
-
-
- counter
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Não
- default
- O nome do contador
-
-
- start
- number
- Não
- 1
- O número inicial para contar a partir de
-
-
- skip
- number
- Não
- 1
- O intervalo para contar
-
-
- direction
- string
- Não
- up
- A direção para contar (up/down)
-
-
- print
- boolean
- Não
- true
- Quando mostrar ou não o valor
-
-
- assign
- string
- Não
- n/a
- A variável de template que vai
- receber a saída
-
-
-
-
-
- counter é usada para mostrar uma contagem. counter irá se lembrar de
- count em cada interação. Você pode ajustar o número, o intervalo
- e a direção da contagem, assim como detrminar quando
- mostrar ou não a contagem. Você pode ter varios contadores ao
- mesmo tempo, dando um nome único para cada um. Se você não der um nome,
- o nome 'default' será usado.
-
-
- Se você indicar o atributo especial "assign", a saída da função counter
- irá para essa variável de template ao invés de
- ser mostrada no template.
-
-
-counter
-
-{* inicia a contagem *}
-{counter start=0 skip=2 print=false}
-
-{counter}<br>
-{counter}<br>
-{counter}<br>
-{counter}<br>
-
-MOSTRA:
-
-2<br>
-4<br>
-6<br>
-8<br>
-
-
-
- cycle
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Não
- default
- O nome do ciclo
-
-
- values
- mixed
- Sim
- N/A
- Os valores do ciclo, ou uma lista delimitada
- por vírgula (veja o atributo delimiter),
- ou uma matriz de valores.
-
-
- print
- boolean
- Não
- true
- Quando mostrar ou não o valor
-
-
- advance
- boolean
- Não
- true
- Quando avançar ou não para o próximo valor
-
-
- delimiter
- string
- Não
- ,
- O delimitador para usar no atributo values.
-
-
- assign
- string
- Não
- n/a
- A variável de template que
- receberá a saída
-
-
-
-
-
- Cycle é usado para fazer um clico através de um conjunto de valores.
- Isto torna fácil alternar entre duas ou mais cores em uma tabela,
- ou entre uma matriz de valores.
-
-
- Você pode usar o cycle em mais de um conjunto de valores
- no seu template. Dê a cada conjunto de valores
- um nome único.
-
-
- Você pode fazer com que o valor atual não seja mostrado
- definindo o atributo print para false. Isto é útil para
- pular um valor.
-
-
- O atributo advance é usado para repetir um valor. Quando definido
- para false, a próxima chamada para cycle irá mostrar o mesmo valor.
-
-
- Se você indicar o atributo especial "assign", a saída da função
- cycle irá para a variável de template ao invés de ser
- mostrado diretamente no template.
-
-
-cycle
-
-{section name=rows loop=$data}
-<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}">
- <td>{$data[rows]}</td>
-</tr>
-{/section}
-
-MOSTRA:
-
-<tr bgcolor="#eeeeee">
- <td>1</td>
-</tr>
-<tr bgcolor="#d0d0d0">
- <td>2</td>
-</tr>
-<tr bgcolor="#eeeeee">
- <td>3</td>
-</tr>
-
-
-
-
- debug
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- output
- string
- Não
- html
- Tipo de saída, html ou javascript
-
-
-
-
-
- {debug} mostra o console de debug na página. Isto funciona independente
- da definição de debug.
- Já que isto é executado em tempo de execução, isto é capaz apenas de
- mostrar as variáveis definidas, e não os templates
- que estejam em uso. Mas você pode ver todas as variáveis
- disponíveis no escopo do template.
-
-
-
- eval
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- var
- mixed
- Sim
- n/a
- Variável (ou string) para avaliar
-
-
- assign
- string
- Não
- n/a
- A variável de template que
- receberá a saída
-
-
-
-
-
- eval é usado para avaliar uma variável como template. Isto pode ser usado para
- coisas como embutir tags/variáveis de template dentro de variáveis
- ou tags/variáveis dentro de variáveis em um arquivo de configuração.
-
-
- Se você indicar o atributo especial "assign", a saída da função
- eval irá para esta variável de template ao
- invés de aparecer no template.
-
-
- Nota Técnica
-
- Variáveis avaliadas são tratadas igual a templates. Elas seguem
- o mesmo funcionamento para escapar e para segurança como
- se fossem templates.
-
-
-
- Nota Técnica
-
- Variáveis avaliadas são compiladas a cada invocação, as versões
- compiladas não são salvas. Entretando, se você tiver o cache ativado,
- a saída vai ficar no cache junto com o resto do template.
-
-
-
-eval
-
-setup.conf
-----------
-
-emphstart = <b>
-emphend = </b>
-title = Welcome to {$company}'s home page!
-ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
-ErrorState = You must supply a {#emphstart#}state{#emphend#}.
-
-
-index.tpl
----------
-
-{config_load file="setup.conf"}
-
-{eval var=$foo}
-{eval var=#title#}
-{eval var=#ErrorCity#}
-{eval var=#ErrorState# assign="state_error"}
-{$state_error}
-
-MOSTRA:
-
-This is the contents of foo.
-Welcome to Foobar Pub & Grill's home page!
-You must supply a <b>city</b>.
-You must supply a <b>state</b>.
-
-
-
-
-
- fetch
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- file
- string
- Sim
- n/a
- O arquivo, site http ou ftp para obter
-
-
- assign
- string
- Não
- n/a
- A variável de template
- que vai receber a saída
-
-
-
-
-
- fetch é usado para obter arquivos do sistema de arquivos local,
- http ou ftp, e mostrar o seu conteúdo. Se o nome do arquivo começar
- com "http://", a página do web site será obtidae mostrada. Se o
- nome do arquivo começar com "ftp://", o arquivo será obtido do servidor
- ftp e mostrado. Para arquivos locais, o caminho completo do sistema de
- arquivos deve ser dado, ou um caminho relativo ao script php executado.
-
-
- Se você indicar o atributo especial "assign", a saída da função
- fetch irá para uma variável de template ao ivés de
- ser mostrado no template. (novo no Smarty 1.5.0)
-
-
- Nota Técnica
-
- Isto não suporta redirecionamento http, tenha
- certesa de incluir a barra no final aonde necessário.
-
-
-
- Nota Técnica
-
- Se a segurança do template esta ativada e você
- estiver obtendo um arquivo do sistema de arquivos local, isto
- irá permitir apenas arquivos de um dos diretórios
- definidos como seguros. ($secure_dir)
-
-
-
-fetch
-
-{* inclui algum javascript no seu template *}
-{fetch file="/export/httpd/www.domain.com/docs/navbar.js"}
-
-{* embute algum texto sobre o tempo de outro web site *}
-{fetch file="http://www.myweather.com/68502/"}
-
-{* obtém um arquivo de notícias via ftp *}
-{fetch file="ftp://user:password@ftp.domain.com/path/to/currentheadlines.txt"}
-
-{* coloca o conteúdo obtido para uma varável de template *}
-{fetch file="http://www.myweather.com/68502/" assign="weather"}
-{if $weather ne ""}
- <b>{$weather}</b>
-{/if}
-
-
-
- html_checkboxes
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Não
- checkbox
- O nome da lista checkbox
-
-
- values
- array
- Sim, a menos que estaja usando o atributo options
- n/a
- Uma matriz de valores para os botões checkbox
-
-
- output
- array
- Sim, a menos que estaja usando o atributo options
- n/a
- uma matriz de saída para os botões checkbox
-
-
- selected
- string/array
- Não
- empty
- O(s) elemento(s) checkbox marcado(s)
-
-
- options
- matriz
- Sim, a mesnos que esteja usando values e output
- n/a
- Uma matriz associativa de valores e saída
-
-
- separator
- string
- Não
- empty
- string de texto para separar cada checkbox
-
-
- labels
- boolean
- Não
- true
- Adicionar tags <label> para na saída
-
-
-
-
-
- html_checkboxes é uma função personalizada que cria um grupo de
- checkbox com os dados providos. Ela cuida de qual(is) item(s)
- estão selecionado(s) por padrão. Os atributos requeridos são
- values e output, a menos que você use options.
- Toda a saída é compatível com XHTML.
-
-
- Todos os parâmetro que não estejam na lista acima são mostrados
- como pares nome/valor dentro de cada tag <input> criada.
-
-
-html_checkboxes
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('cust_ids', array(1000,1001,1002,1003));
-$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane Johnson','Charlie Brown'));
-$smarty->assign('customer_id', 1001);
-$smarty->display('index.tpl');
-
-
-index.tpl:
-
-{html_checkboxes values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}
-
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('cust_checkboxes', array(
- 1000 => 'Joe Schmoe',
- 1001 => 'Jack Smith',
- 1002 => 'Jane Johnson',
- 1003 => 'Charlie Brown'));
-$smarty->assign('customer_id', 1001);
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{html_checkboxes name="id" options=$cust_checkboxes checked=$customer_id separator="<br />"}
-
-
-MOSTRA: (ambos os exemplos)
-
-<label><input type="checkbox" name="checkbox[]" value="1000" />Joe Schmoe</label><br />
-<label><input type="checkbox" name="checkbox[]" value="1001" checked="checked" />Jack Smith</label><br />
-<label><input type="checkbox" name="checkbox[]" value="1002" />Jane Johnson</label><br />
-<label><input type="checkbox" name="checkbox[]" value="1003" />Charlie Brown</label><br />
-
-
-
- html_image
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- file
- string
- Sim
- n/a
- name/path para a imagem
-
-
- border
- string
- Não
- 0
- tamanho da borda de contorno da imagem
-
-
- height
- string
- Não
- altura atual da imagem
- altura com a qual a imagem deve ser mostrada
-
-
- width
- string
- Não
- largura atual da imagem
- largura com a qual a imagem deve ser mostrada
-
-
- basedir
- string
- Não
- doc root do servidor
- diretório de base a caminhos relativos
-
-
- alt
- string
- Não
- ""
- descrição alternativa da imagem
-
-
- href
- string
- Não
- n/a
- valor href para aonde a imagem será ligada
-
-
-
-
-
- html_image é uma função customizada que gera uma tag HTML para uma imagem.
- A altura e a largura são automaticamente calculadas a partir do arquivo de imagem se
- nenhum valor é fornecido.
-
-
- basedir é o diretório base do qual caminhos relativos de imagens estão baseados.
- Se não fornecido, o document root do servidor (variável de ambiente DOCUMENT_ROOT) é usada
- como o diretório base. Se a segurança está habilitada, o caminho para a imagem deve estar dentro
- de um diretório seguro.
-
-
- href é o valor href para onde a imagem será ligada. Se um link é fornecido,
- uma tag <a href="LINKVALUE"><a> é posta em volta da tag da imagem.
-
-
- Nota Técnica
-
- html_image requer uma ação ao disco para ler a imagem e calcular
- a altura e a largura. Se você não usa caching de template, normalmente é
- melhor evitar html_image e deixar as tags de imagem estáticas para performance
- otimizada.
-
-
-
-html_image
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{html_image file="pumpkin.jpg"}
-{html_image file="/path/from/docroot/pumpkin.jpg"}
-{html_image file="../path/relative/to/currdir/pumpkin.jpg"}
-
-OUTPUT: (possível)
-
-<img src="pumpkin.jpg" alt="" border="0" width="44" height="68" />
-<img src="/path/from/docroot/pumpkin.jpg" alt="" border="0" width="44" height="68" />
-<img src="../path/relative/to/currdir/pumpkin.jpg" alt="" border="0" width="44" height="68" />
-
-
-
-
-
-
-
- html_options
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- values
- array
- Sim, a menos que usando atributos de opções
- n/a
- um array de valores para o menu dropdown
-
-
- output
- array
- Sim, a menos que usando atributos de opções
- n/a
- um array de saída para o menu dropdown
-
-
- selected
- string/array
- Não
- empty
- o elemento do option selecionado
-
-
- options
- associative array
- Sim, a menos que usando valores e saída
- n/a
- um array associativo de valores e saída
-
-
- name
- string
- Não
- empty
- nome do grupo selecionado
-
-
-
-
-
- html_options é uma função customizada que cria um grupo html option com os dados fornecidos.
- Ela está atenta de quais itens são selecionados por definição. Atributos exigidos são valores e
- saída, a menos que você use options
- no lugar.
-
-
- Se um valor dado é um array, ele será tratado como um OPTGROUP html,
- e mostrará os grupos.
- Recursion é suportado com OPTGROUP. Todas as saídas estão compatíveis com XHTML.
-
-
- Se o atributo opcional name é dado, as tags
- <select name="groupname"></select> irão enclausurar a lista de opções.
- Caso contrário apenas a lista de opções é gerada.
-
-
- Todos os parâmetros que não estão na lista acima são exibidos como
- name/value-pairs dentro de <select>-tag. Eles são ignorados se o opcional
- namenão é dado.
-
-
-html_options
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('cust_ids', array(1000,1001,1002,1003));
-$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
-Johnson','Carlie Brown'));
-$smarty->assign('customer_id', 1001);
-$smarty->display('index.tpl');
-
-index.tpl:
-
-<select name=customer_id>
- {html_options values=$cust_ids selected=$customer_id output=$cust_names}
-</select>
-
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('cust_options', array(
- 1001 => 'Taniel Franklin',
- 1002 => 'Fernando Correa',
- 1003 => 'Marcelo Pereira',
- 1004 => 'Charlie Brown'));
-$smarty->assign('customer_id', 1001);
-$smarty->display('index.tpl');
-
-index.tpl:
-
-<select name=customer_id>
- {html_options options=$cust_options selected=$customer_id}
-</select>
-
-
-OUTPUT: (both examples)
-
-<select name=customer_id>
- <option value="1000">Taniel Franklin</option>
- <option value="1001" selected="selected">Fernando Correa</option>
- <option value="1002">Marcelo Pereira</option>
- <option value="1003">Charlie Brown</option>
-</select>
-
-
-
- html_radios
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- name
- string
- Não
- radio
- nome da radio list
-
-
- values
- array
- Sim, a menos que utilizando atributo de opções
- n/a
- um array de valores para radio buttons
-
-
- output
- array
- Sim, a menos que utilizando atributo de opções
- n/a
- um array de saída pra radio buttons
-
-
- checked
- string
- Não
- empty
- O elemento do radio assinalado
-
-
- options
- associative array
- Sim, a menos que utilizando valores e saída
- n/a
- um array associativo de valores e saída
-
-
- separator
- string
- Não
- empty
- string de texto para separae cada item de radio
-
-
-
-
-
- html_radios é uma função customizada que cria grupo de botões de radio html
- com os dados fornecidos. Ele está atento para qual item está selecionado por definição.
- Atributos exigidos são valores e saídas, a menos que você use opções no lugar disso. Toda
- saída é compatível com XHTML.
-
-
- Todos os parâmetros que não estão na lista acima são impressos como
- name/value-pairs de dentro de cada <input>-tags criada.
-
-
-
-html_radios
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('cust_ids', array(1000,1001,1002,1003));
-$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
-Johnson','Carlie Brown'));
-$smarty->assign('customer_id', 1001);
-$smarty->display('index.tpl');
-
-
-index.tpl:
-
-{html_radios values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}
-
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('cust_radios', array(
- 1001 => 'Joe Schmoe',
- 1002 => 'Jack Smith',
- 1003 => 'Jane Johnson',
- 1004 => 'Charlie Brown'));
-$smarty->assign('customer_id', 1001);
-$smarty->display('index.tpl');
-
-
-index.tpl:
-
-{html_radios name="id" options=$cust_radios checked=$customer_id separator="<br />"}
-
-
-OUTPUT: (both examples)
-
-<input type="radio" name="id[]" value="1000">Taniel Fraklin<br />
-<input type="radio" name="id[]" value="1001" checked="checked"><br />
-<input type="radio" name="id[]" value="1002">Marcelo Pereira<br />
-<input type="radio" name="id[]" value="1003">Charlie Brown<br />
-
-
-
- html_select_date
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- prefix
- string
- Não
- Date_
- Com o que prefixar o nome da variável
-
-
- time
- timestamp/YYYY-MM-DD
- Não
- tempo atual no timestamp do unix ou YYYY-MM-DD
- format
- qual date/time para usar
-
-
- start_year
- string
- Não
- ano atual
- o primeiro ano no menu dropdown, ou o
- número do ano, ou relativo ao ano atual (+/- N)
-
-
- end_year
- string
- Não
- da mesma forma que start_year
- o último ano no menu dropdown, ou o
- número do ano, ou relativo ao ano atual (+/- N)
-
-
- display_days
- boolean
- Não
- true
- se mostra os dias ou não
-
-
- display_months
- boolean
- No
- true
- whether to display months or not
-
-
- display_years
- boolean
- Não
- true
- se mostra os anos ou não
-
-
- month_format
- string
- Não
- %B
- qual seria o formato do mês (strftime)
-
-
- day_format
- string
- Não
- %02d
- a saída do dia seria em qual formato (sprintf)
-
-
- day_value_format
- string
- No
- %d
- o valor do dia seria em qual formato (sprintf)
-
-
- year_as_text
- booleano
- Não
- false
- se mostra ou não o ano como texto
-
-
- reverse_years
- booleano
- Não
- false
- mostra os anos na ordem reversa
-
-
- field_array
- string
- Não
- null
-
- se um nome é dado, as caixas de seleção serão exibidos assim que os resultados
- forem devolvidos ao PHP
- na forma de name[Day], name[Year], name[Month].
-
-
-
- day_size
- string
- No
- null
- adiciona o atributo de tamanho para a tag select se for dada
-
-
- month_size
- string
- Não
- null
- adiciona o atributo de tamanho para a tag de select se for dada
-
-
- year_size
- string
- Não
- null
- adiciona o atributo de tamanho para a tag de select se for dada
-
-
- all_extra
- string
- No
- null
- adiciona atributos extras para todas as tags select/input se
- forem dadas
-
-
- day_extra
- string
- Não
- null
- adiciona atributos
- extras para todas as tags select/input se forem dadas
-
-
- month_extra
- string
- Não
- null
- adiciona atributos extras
- para todas as tags select/input se forem dadas
-
-
- year_extra
- string
- Não
- null
- adiciona atributos extras
- para todas as tags select/input se forem dadas
-
-
- field_order
- string
- Não
- MDY
- a ordem para se mostrar os campos
-
-
- field_separator
- string
- Não
- \n
- string exibida entre os diferentes campos
-
-
- month_value_format
- string
- Não
- %m
- formato strftime dos valores do mês, o padrão é
- %m para número de mês.
-
-
-
-
-
- html_select_date é uma função customizada que cria menus dropdowns
- de data para você. Ele pode mostrar algo ou tudo de ano, mês e dia.
-
-
-html_select_date
-
-{html_select_date}
-
-
-OUTPUT:
-
-<select name="Date_Month">
-<option value="1">January</option>
-<option value="2">February</option>
-<option value="3">March</option>
-<option value="4">April</option>
-<option value="5">May</option>
-<option value="6">June</option>
-<option value="7">July</option>
-<option value="8">August</option>
-<option value="9">September</option>
-<option value="10">October</option>
-<option value="11">November</option>
-<option value="12" selected>December</option>
-</select>
-<select name="Date_Day">
-<option value="1">01</option>
-<option value="2">02</option>
-<option value="3">03</option>
-<option value="4">04</option>
-<option value="5">05</option>
-<option value="6">06</option>
-<option value="7">07</option>
-<option value="8">08</option>
-<option value="9">09</option>
-<option value="10">10</option>
-<option value="11">11</option>
-<option value="12">12</option>
-<option value="13" selected>13</option>
-<option value="14">14</option>
-<option value="15">15</option>
-<option value="16">16</option>
-<option value="17">17</option>
-<option value="18">18</option>
-<option value="19">19</option>
-<option value="20">20</option>
-<option value="21">21</option>
-<option value="22">22</option>
-<option value="23">23</option>
-<option value="24">24</option>
-<option value="25">25</option>
-<option value="26">26</option>
-<option value="27">27</option>
-<option value="28">28</option>
-<option value="29">29</option>
-<option value="30">30</option>
-<option value="31">31</option>
-</select>
-<select name="Date_Year">
-<option value="2001" selected>2001</option>
-</select>
-
-
-
-
-html_select_date
-
-
-{* ano de começo e fim pode ser relativo ao ano atual *}
-{html_select_date prefix="StartDate" time=$time start_year="-5" end_year="+1" display_days=false}
-
-OUTPUT: (o ano atual é 2000)
-
-<select name="StartDateMonth">
-<option value="1">January</option>
-<option value="2">February</option>
-<option value="3">March</option>
-<option value="4">April</option>
-<option value="5">May</option>
-<option value="6">June</option>
-<option value="7">July</option>
-<option value="8">August</option>
-<option value="9">September</option>
-<option value="10">October</option>
-<option value="11">November</option>
-<option value="12" selected>December</option>
-</select>
-<select name="StartDateYear">
-<option value="1999">1995</option>
-<option value="1999">1996</option>
-<option value="1999">1997</option>
-<option value="1999">1998</option>
-<option value="1999">1999</option>
-<option value="2000" selected>2000</option>
-<option value="2001">2001</option>
-</select>
-
-
-
- html_select_time
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- prefix
- string
- Não
- Time_
- com o que prefixar o nome da variável
-
-
- time
- timestamp
- Não
- tempo atual
- qual date/time para usar
-
-
- display_hours
- booleano
- Não
- true
- Exibir ou não as horas
-
-
- display_minutes
- booleano
- Não
- true
- Exibir ou não os minutos
-
-
- display_seconds
- booleano
- Não
- true
- Exibir ou não os segundos
-
-
- display_meridian
- booleano
- Não
- true
- Exibir ou não da forma (am/pm)
-
-
- use_24_hours
- booleano
- Não
- true
- Usar ou não relógio de 24 horas
-
-
- minute_interval
- inteiro
- Não
- 1
- intervalo dos números dos minutos do menu dropdown
-
-
- second_interval
- integer
- Não
- 1
- intervalo dos números dos segundos do menu dropdown
-
-
- field_array
- string
- Não
- n/a
- exibe valores para o array deste nome outputs values to array of this name
-
-
- all_extra
- string
- Não
- null
- adiciona atributos
- extras para tags select/input se fornecidas
-
-
- hour_extra
- string
- Não
- null
- adiciona atributos
- extras para tags select/input se fornecidas
-
-
- minute_extra
- string
- Não
- null
- adiciona atributos
- extras para tags select/input tags se fornecidas
-
-
- second_extra
- string
- No
- null
- adiciona atributos
- extras para tags select/input se fornecidas
-
-
- meridian_extra
- string
- Não
- null
- adiciona atributos
- extras para tags select/input se fornecidas
-
-
-
-
-
- html_select_time é uma função cusomizada que cria menus dropdowns de hora para você. Ela pode mostrar
- alguns valores, ou tudo de hora,
- minuto, segundo e ainda formato am/pm
-
-
-html_select_time
-
-{html_select_time use_24_hours=true}
-
-
-OUTPUT:
-
-<select name="Time_Hour">
-<option value="00">00</option>
-<option value="01">01</option>
-<option value="02">02</option>
-<option value="03">03</option>
-<option value="04">04</option>
-<option value="05">05</option>
-<option value="06">06</option>
-<option value="07">07</option>
-<option value="08">08</option>
-<option value="09" selected>09</option>
-<option value="10">10</option>
-<option value="11">11</option>
-<option value="12">12</option>
-<option value="13">13</option>
-<option value="14">14</option>
-<option value="15">15</option>
-<option value="16">16</option>
-<option value="17">17</option>
-<option value="18">18</option>
-<option value="19">19</option>
-<option value="20">20</option>
-<option value="21">21</option>
-<option value="22">22</option>
-<option value="23">23</option>
-</select>
-<select name="Time_Minute">
-<option value="00">00</option>
-<option value="01">01</option>
-<option value="02">02</option>
-<option value="03">03</option>
-<option value="04">04</option>
-<option value="05">05</option>
-<option value="06">06</option>
-<option value="07">07</option>
-<option value="08">08</option>
-<option value="09">09</option>
-<option value="10">10</option>
-<option value="11">11</option>
-<option value="12">12</option>
-<option value="13">13</option>
-<option value="14">14</option>
-<option value="15">15</option>
-<option value="16">16</option>
-<option value="17">17</option>
-<option value="18">18</option>
-<option value="19">19</option>
-<option value="20" selected>20</option>
-<option value="21">21</option>
-<option value="22">22</option>
-<option value="23">23</option>
-<option value="24">24</option>
-<option value="25">25</option>
-<option value="26">26</option>
-<option value="27">27</option>
-<option value="28">28</option>
-<option value="29">29</option>
-<option value="30">30</option>
-<option value="31">31</option>
-<option value="32">32</option>
-<option value="33">33</option>
-<option value="34">34</option>
-<option value="35">35</option>
-<option value="36">36</option>
-<option value="37">37</option>
-<option value="38">38</option>
-<option value="39">39</option>
-<option value="40">40</option>
-<option value="41">41</option>
-<option value="42">42</option>
-<option value="43">43</option>
-<option value="44">44</option>
-<option value="45">45</option>
-<option value="46">46</option>
-<option value="47">47</option>
-<option value="48">48</option>
-<option value="49">49</option>
-<option value="50">50</option>
-<option value="51">51</option>
-<option value="52">52</option>
-<option value="53">53</option>
-<option value="54">54</option>
-<option value="55">55</option>
-<option value="56">56</option>
-<option value="57">57</option>
-<option value="58">58</option>
-<option value="59">59</option>
-</select>
-<select name="Time_Second">
-<option value="00">00</option>
-<option value="01">01</option>
-<option value="02">02</option>
-<option value="03">03</option>
-<option value="04">04</option>
-<option value="05">05</option>
-<option value="06">06</option>
-<option value="07">07</option>
-<option value="08">08</option>
-<option value="09">09</option>
-<option value="10">10</option>
-<option value="11">11</option>
-<option value="12">12</option>
-<option value="13">13</option>
-<option value="14">14</option>
-<option value="15">15</option>
-<option value="16">16</option>
-<option value="17">17</option>
-<option value="18">18</option>
-<option value="19">19</option>
-<option value="20">20</option>
-<option value="21">21</option>
-<option value="22">22</option>
-<option value="23" selected>23</option>
-<option value="24">24</option>
-<option value="25">25</option>
-<option value="26">26</option>
-<option value="27">27</option>
-<option value="28">28</option>
-<option value="29">29</option>
-<option value="30">30</option>
-<option value="31">31</option>
-<option value="32">32</option>
-<option value="33">33</option>
-<option value="34">34</option>
-<option value="35">35</option>
-<option value="36">36</option>
-<option value="37">37</option>
-<option value="38">38</option>
-<option value="39">39</option>
-<option value="40">40</option>
-<option value="41">41</option>
-<option value="42">42</option>
-<option value="43">43</option>
-<option value="44">44</option>
-<option value="45">45</option>
-<option value="46">46</option>
-<option value="47">47</option>
-<option value="48">48</option>
-<option value="49">49</option>
-<option value="50">50</option>
-<option value="51">51</option>
-<option value="52">52</option>
-<option value="53">53</option>
-<option value="54">54</option>
-<option value="55">55</option>
-<option value="56">56</option>
-<option value="57">57</option>
-<option value="58">58</option>
-<option value="59">59</option>
-</select>
-<select name="Time_Meridian">
-<option value="am" selected>AM</option>
-<option value="pm">PM</option>
-</select>
-
-
-
- html_table
-
-
-
-
-
-
-
-
-
- Nome do atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- loop
- array
- Sim
- n/a
- array de dados para ser feito o loop
-
-
- cols
- inteiro
- Não
- 3
- número de colunas na tabela
-
-
- table_attr
- string
- Não
- border="1"
- atributos para a tag table
-
-
- tr_attr
- string
- Não
- empty
- atributos para a tag tr (arrays estão em ciclo)
-
-
- td_attr
- string
- Não
- empty
- atributos para a tag (arrays estão em ciclo)
-
-
- trailpad
- string
- Não
-
- values to pad the trailing cells on last row with
- (se algum)
-
-
-
- hdir
- string
- Não
- right
- direçao de uma linha para ser representada. Possíveis valores: left/right
-
-
- vdir
- string
- Não
- down
- direção das colunas para serem representadas. Possíveis valores: up/down
-
-
-
-
-
- html_table é uma função customizada que transforma um array de dados
- em uma tabela HTML. O atributo cols determina com quantas colunas estarão
- na tabela. Os valores table_attr, tr_attr e
- td_attr determinam os atributos dados para a tabela, tags tr e td. Se tr_attr ou
- td_attr são arrays, eles entrarão em ciclo.
- trailpad é o
- alor colocado dentro do trailing
- cells na última linha da tabela
- se há alguma presente.
-
-
-html_table
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('data',array(1,2,3,4,5,6,7,8,9));
-$smarty->assign('tr',array('bgcolor="#eeeeee"','bgcolor="#dddddd"'));
-$smarty->display('index.tpl');
-
-index.tpl:
-
-{html_table loop=$data}
-{html_table loop=$data cols=4 table_attr='border="0"'}
-{html_table loop=$data cols=4 tr_attr=$tr}
-
-MOSTRA:
-
-<table border="1">
-<tr><td>1</td><td>2</td><td>3</td></tr>
-<tr><td>4</td><td>5</td><td>6</td></tr>
-<tr><td>7</td><td>8</td><td>9</td></tr>
-</table>
-<table border="0">
-<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
-<tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
-<tr><td>9</td><td> </td><td> </td><td> </td></tr>
-</table>
-<table border="1">
-<tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</td></tr>
-<tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
-<tr bgcolor="#eeeeee"><td>9</td><td> </td><td> </td><td> </td></tr>
-</table>
-
-
-
- math
-
-
-
-
-
-
-
-
-
- Nome do atributo
- Tipo
- Exigido
- Padrão
- Descrição
-
-
-
-
- equation
- string
- Sim
- n/a
- a equação para executar
-
-
- format
- string
- Não
- n/a
- o formato do resultado (sprintf)
-
-
- var
- numérico
- Sim
- n/a
- valor da variável da equação
-
-
- assign
- string
- Não
- n/a
- variável de template cuja saída será atribuida
-
-
- [var ...]
- numérica
- Sim
- n/a
- valor da variável da equação
-
-
-
-
-
- math permite o desenhista de template fazer equações matemáticas no template.
- Qualquer variável de template numérica pode ser usada nas equações, e o resultado
- é exibido no lugar da tag. As variáveis usadas na equação são passadas como parâmetros,
- que podem ser variáveis de template
- ou valores estáticos. +, -, /, *, abs, ceil, cos,
- exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt,
- srans and tan são todos os operadores válidos. Verifique a documentação do PHP para
- mais informações acerca destas funções matemáticas.
-
-
- Se você fornece o atributo especial "assign", a saída da função matemática será
- atribuído para esta variável
- de template ao invés de ser exibida para o template.
-
-
- Nota Técnica
-
- math é uma função de performance cara devido ao uso da função do php eval().
- Fazendo a matemática no PHP é muito mais eficiente, então sempre é possível fazer
- os cálculos matemáticos no PHP e lançar os resultados para o template. Definitivamente
- evite chamadas de funções de
- matemáticas repetitivamente, como dentro de loops de section.
-
-
-
-math
-
-{* $height=4, $width=5 *}
-
-{math equation="x + y" x=$height y=$width}
-
-OUTPUT:
-
-9
-
-
-{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}
-
-{math equation="height * width / division"
- height=$row_height
- width=$row_width
- division=#col_div#}
-
-OUTPUT:
-
-100
-
-
-{* Você pode usar parenteses *}
-
-{math equation="(( x + y ) / z )" x=2 y=10 z=2}
-
-OUTPUT:
-
-6
-
-
-{* você pode fornecer um parâmetro de formato em sprintf *}
-
-{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
-
-OUTPUT:
-
-9.44
-
-
-
- mailto
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- address
- string
- Sim
- n/a
- O endereço de email
-
-
- text
- string
- Não
- n/a
- O texto para mostrar, o padrão
- é o endereço de email
-
-
- encode
- string
- Não
- none
- Como codificar o e-mail.
- Pode ser none,
- hex ou javascript.
-
-
- cc
- string
- Não
- n/a
- Endereço de e-mail para mandar uma cópia carbono(cc).
- Separe os endereços por vírgula.
-
-
- bcc
- string
- Não
- n/a
- Endereço de e-mail para mandar uma cópia carbono cega(bcc).
- Separe os endereços por vírgula.
-
-
- subject
- string
- Não
- n/a
- Assunto do e-mail.
-
-
- newsgroups
- string
- Não
- n/a
- newsgroup para postar.
- Separe os endereços por vírgula.
-
-
- followupto
- string
- Não
- n/a
- Endereço para acompanhar.
- Separe os endereços por vírgula.
-
-
- extra
- string
- Não
- n/a
- Qualquer outra informação que você
- queira passar para o link, como
- classes de planilhas de estilo
-
-
-
-
-
- mailto automatiza o processo de criação de links de e-mail e opcionalmente
- codifica eles. Codificar e-mail torna mais difícil para
- web spiders pegarem endereços no seu site.
-
-
- Nota Técnica
-
- javascript é provavelmente o meio de codificação mais
- utilizado, entretanto você pode usar codificação hexadecimal também.
-
-
-
-mailto
-
-{mailto address="me@domain.com"}
-{mailto address="me@domain.com" text="send me some mail"}
-{mailto address="me@domain.com" encode="javascript"}
-{mailto address="me@domain.com" encode="hex"}
-{mailto address="me@domain.com" subject="Hello to you!"}
-{mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
-{mailto address="me@domain.com" extra='class="email"'}
-
-MOSTRA:
-
-<a href="mailto:me@domain.com" >me@domain.com</a>
-<a href="mailto:me@domain.com" >send me some mail</a>
-<SCRIPT language="javascript">eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%6
-9%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%
-61%69%6e%2e%63%6f%6d%22%20%3e%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%3c%2f%61%3e
-%27%29%3b'))</SCRIPT>
-<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d" >me@d&
-#x6f;main.com</a>
-<a href="mailto:me@domain.com?subject=Hello%20to%20you%21" >me@domain.com</a>
-<a href="mailto:me@domain.com?cc=you@domain.com%2Cthey@domain.com" >me@domain.com</a>
-<a href="mailto:me@domain.com" class="email">me@domain.com</a>
-
-
-
- popup_init
-
- popup é uma integração com overLib, uma biblioteca usada para janelas
- popup. Esta é usada para informações sensíveis ao contexto, como
- janelas de ajuda ou dicas. popup_init deve ser usada uma vez ao
- topo de cada página que você planeje usar a função popup. overLib
- foi escrita por Erik Bosrup, e a página esta localizada em
- http://www.bosrup.com/web/overlib/.
-
-
- A partir da versão 2.1.2 do Smarty, overLib NÃO vem com a distribuição.
- Baixe o overLib, coloque o arquivo overlib.js dentro da sua arvore de
- documentos e indique o caminho relativo para o parâmetro "src"
- de popup_init.
-
-
-popup_init
-
-{* popup_init deve ser utilizada uma vez no topo da página *}
-{popup_init src="/javascripts/overlib.js"}
-
-
-
- popup
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- text
- string
- Sim
- n/a
- O text/html para mostrar na janela popup
-
-
- trigger
- string
- Não
- onMouseOver
- O que é usado para fazer a janela aparecer. Pode ser
- onMouseOver ou onClick
-
-
- sticky
- boolean
- Não
- false
- Faz a janela colar até que seja fechada
-
-
- caption
- string
- Não
- n/a
- Define o texto para o título
-
-
- fgcolor
- string
- Não
- n/a
- A cor usada dentro da caixa popup
-
-
- bgcolor
- string
- Não
- n/a
- A cor da borda da caixa popup
-
-
- textcolor
- string
- Não
- n/a
- Define a cor do texto dentro da caixa popup
-
-
- capcolor
- string
- Não
- n/a
- Define a cor do título da caixa
-
-
- closecolor
- string
- Não
- n/a
- Define a cor do texto para fechar
-
-
- textfont
- string
- Não
- n/a
- Define a cor do texto para ser usado no texto principal
-
-
- captionfont
- string
- Não
- n/a
- Define a fonte para ser usada no Título
-
-
- closefont
- string
- Não
- n/a
- Define a fonte para o texto "Close"
-
-
- textsize
- string
- Não
- n/a
- Define a fonte do texto principa
-
-
- captionsize
- string
- Não
- n/a
- Define o tamanho da fonte do título
-
-
- closesize
- string
- Não
- n/a
- Define o tamanho da fonte do texto "Close"
-
-
- width
- integer
- Não
- n/a
- Define a largura da caixa
-
-
- height
- integer
- Não
- n/a
- Define a altura da caixa
-
-
- left
- boolean
- Não
- false
- Faz os popups irem para a esquerda do mouse
-
-
- right
- boolean
- Não
- false
- Faz os popups ir para a diresita do mouse
-
-
- center
- boolean
- Não
- false
- Faz os popups ir para o centro do mouse
-
-
- above
- boolean
- Não
- false
- Faz os popups irem para acima do mouse. NOTA: somente
- possível se height foi definido
-
-
- below
- boolean
- Não
- false
- Faz os popups irem abaixo do mouse
-
-
- border
- integer
- Não
- n/a
- Torna as bordas dos popups grossas ou finas
-
-
- offsetx
- integer
- Não
- n/a
- A que distancia do mouse o popup irá
- aparecer, horizontalmente
-
-
- offsety
- integer
- Não
- n/a
- A que distancia do mouse o popup irá
- aparecer, verticalmente
-
-
- fgbackground
- url para imagem
- Não
- n/a
- Define uma imagem para usar ao invés de uma
- cor dentro do popup.
-
-
- bgbackground
- url to image
- Não
- n/a
- define uma imagem para ser usada como borda
- ao invés de uma cor para o popup. Nota: você deve definir bgcolor
- como "" ou a cor irá aparecer também. NOTA: quando tiver um
- link "Close", o Netscape irá redesenhar as células da tabela,
- fazendo as coisas aparecerem incorretamente
-
-
- closetext
- string
- Não
- n/a
- Define o texto "Close" para qualquer outra coisa
-
-
- noclose
- boolean
- Não
- n/a
- Não mostra o texto "Close" em coladas
- com um título
-
-
- status
- string
- Não
- n/a
- Define o texto na barra de status do browser
-
-
- autostatus
- boolean
- Não
- n/a
- Define o texto da barra de status para o texto do popup.
- NOTA: sobrescreve a definição de status
-
-
- autostatuscap
- string
- Não
- n/a
- define o texto da barra de status como o texto do título
- NOTA: sobrescreve o status e autostatus
-
-
- inarray
- integer
- Não
- n/a
- Indica ao overLib para ler o texto deste índice
- na matriz ol_text array, localizada em overlib.js. Este
- parâmetro pode ser usado ao invés do texto
-
-
- caparray
- integer
- Não
- n/a
- diz para overLib ler o título a partir deste índice
- na matriz ol_caps
-
-
- capicon
- url
- Não
- n/a
- Mostra a imagem antes do título
-
-
- snapx
- integer
- Não
- n/a
- snaps the popup to an even position in a
- horizontal grid
-
-
- snapy
- integer
- Não
- n/a
- snaps the popup to an even position in a
- vertical grid
-
-
- fixx
- integer
- No
- n/a
- locks the popups horizontal position Note:
- overrides all other horizontal placement
-
-
- fixy
- integer
- No
- n/a
- locks the popups vertical position Note:
- overrides all other vertical placement
-
-
- background
- url
- Não
- n/a
- Define uma imagem para ser usada como
- fundo ao invés da tabela
-
-
- padx
- integer,integer
- Não
- n/a
- Prenche a imagem de fundo com espaços em branco horizontal
- para colocação do texto. Nota: este é um comando
- de dois parâmetros
-
-
- pady
- integer,integer
- Não
- n/a
- Prenche a imagem de fundo com espaços em branco vertical
- para colocação do texto. Nota: este é um comando
- de dois parâmetros
-
-
- fullhtml
- boolean
- Não
- n/a
- Permite a você controlar o html sobre a figura
- de fundo completamente. O código HTML é esperado
- no atributo "text"
-
-
- frame
- string
- Não
- n/a
- Controla popups em frames diferentes. Veja a página da
- overlib para maiores informações sobre esta função
-
-
- timeout
- string
- Não
- n/a
- Utiliza uma função e pega o valor de retorno
- como texto que deva ser mostrado
- na janela popup
-
-
- delay
- integer
- Não
- n/a
- Faz com que o popup funcione como um tooltip. Irá
- aparecer apenas após um certo atraso em milésimos de segundo
-
-
- hauto
- boolean
- Não
- n/a
- Determina automaticamente se o popup deve aparecer
- a esquerda ou direita do mouse.
-
-
- vauto
- boolean
- Não
- n/a
- Determina automaticamente se o popup deve aparecer
- abaixo ou acima do mouse.
-
-
-
-
-
- popup é usado para criar janelas popup com javascript.
-
-
-popup
-
-{* popup_init deve ser utilizada uma vez no topo da página *}
-{popup_init src="/javascripts/overlib.js"}
-
-{* cria um link com uma janela popup que aparece quando se passa o mouse sobre ele *}
-<A href="mypage.html" {popup text="This link takes you to my page!"}>mypage</A>
-
-{* você pode usar html, links, etc no texto do popup *}
-<A href="mypage.html" {popup sticky=true caption="mypage contents"
-text="<UL><LI>links<LI>pages<LI>images</UL>" snapx=10 snapy=10}>mypage</A>
-
-
-
- textformat
-
-
-
-
-
-
-
-
-
- Nome do Atributo
- Tipo
- Requerido
- Padrão
- Descrição
-
-
-
-
- style
- string
- Não
- n/a
- estilo pré-definido
-
-
- indent
- number
- Não
- 0
- O número de caracteres para endentar cada linha.
-
-
- indent_first
- number
- Não
- 0
- O número de caracteres para endentar a primeira linha
-
-
- indent_char
- string
- Não
- (single space)
- O caractere (ou string de caracteres) para indenta
-
-
- wrap
- number
- Não
- 80
- Em quantos caracteres quebrar cada linha
-
-
- wrap_char
- string
- Não
- \n
- O caractere (ou string de caracteres) para usar
- para quebrar cada linha
-
-
- wrap_cut
- boolean
- Não
- false
- Se true, wrap irá quebrar a linha no caractere
- exato em vez de quebrar ao final da palavra
-
-
- assign
- string
- No
- n/a
- A variável de template que irá
- receber a saída
-
-
-
-
-
- textformat é uma função de bloco usada para formatar texto. Basicamente
- limpa espaços e caracteres especiais, e formata os paragrafos
- quebrando o texto ao final de palavras e identando linhas.
-
-
- Você pode definir os parâmetros explicitamente, ou usar um estilo pré-definido.
- Atualmente o único estilo disponível é "email".
-
-
-textformat
-
-{textformat wrap=40}
-
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-
-This is bar.
-
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-
-{/textformat}
-
-MOSTRA:
-
-This is foo. This is foo. This is foo.
-This is foo. This is foo. This is foo.
-
-This is bar.
-
-bar foo bar foo foo. bar foo bar foo
-foo. bar foo bar foo foo. bar foo bar
-foo foo. bar foo bar foo foo. bar foo
-bar foo foo. bar foo bar foo foo.
-
-
-{textformat wrap=40 indent=4}
-
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-
-This is bar.
-
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-
-{/textformat}
-
-MOSTRA:
-
- This is foo. This is foo. This is
- foo. This is foo. This is foo. This
- is foo.
-
- This is bar.
-
- bar foo bar foo foo. bar foo bar foo
- foo. bar foo bar foo foo. bar foo
- bar foo foo. bar foo bar foo foo.
- bar foo bar foo foo. bar foo bar
- foo foo.
-
-{textformat wrap=40 indent=4 indent_first=4}
-
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-
-This is bar.
-
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-
-{/textformat}
-
-MOSTRA:
-
- This is foo. This is foo. This
- is foo. This is foo. This is foo.
- This is foo.
-
- This is bar.
-
- bar foo bar foo foo. bar foo bar
- foo foo. bar foo bar foo foo. bar
- foo bar foo foo. bar foo bar foo
- foo. bar foo bar foo foo. bar foo
- bar foo foo.
-
-{textformat style="email"}
-
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-This is foo.
-
-This is bar.
-
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-bar foo bar foo foo.
-
-{/textformat}
-
-MOSTRA:
-
-This is foo. This is foo. This is foo. This is foo. This is foo. This is
-foo.
-
-This is bar.
-
-bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo
-bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo
-foo.
-
-
-
-
-
-
-
- Arquivos de Configuração
-
- Arquivos de configuração são úteis para designers gerenciarem váriaveis
- globais para os templates a partir de um arquivo. Um exemplo são as cores do template. Normalmente se
- se você quer mudar o tema de cores para uma aplicação, você deve ir
- em cada um dos arquivos de template e mudar as cores. Com
- um arquivo de configuração, as cores podem ser mantidas em um lugar, e apenas
- um arquivo precisa ser atualizado.
-
-
- Examplo de sintaxe de um arquivo de configuração
-
-# global variables
-pageTitle = "Main Menu"
-bodyBgColor = #000000
-tableBgColor = #000000
-rowBgColor = #00ff00
-
-[Customer]
-pageTitle = "Customer Info"
-
-[Login]
-pageTitle = "Login"
-focus = "username"
-Intro = """este é um valor
- que se divide m mais de uma linha. deve
- estar dentro de três aspas."""
-
-# hidden section
-[.Database]
-host=my.domain.com
-db=ADDRESSBOOK
-user=php-user
-pass=foobar
-
-
- Valores de variáveis podem estar entre aspas, mas não é necessário.
- Você pode usar aspas simples ou duplas. Se você tiver um valor que
- ocupe mais de uma linha, coloque todo o valor entre três aspas
- ("""). Você pode colocar comentários em um arquivo de configuração com qualquer sintaxe
- que não seja válida em um arquivo de configuração. Nós recomendamos usar um #
- (cancela) no ínicio de cada linha.
-
-
- Este arquivo de onfiguração tem duas seções. Nomes de seções devem estar entre conchetes
- []. Nomes de seção podem ser string arbritraria que não contenham os símbolos
- [ ou ]. As quatro variáveis no top são
- variáveis globais, ou variáveis sem seção.
- Estas variáveis são sempre carregadas do arquivo de configuração. Se uma seção em
- particular for carregada, então as variáveis globais e as variáveis desta seção são carregadas.
- Se uma variável existir como global e dentro de uma seção,
- a variável da seção será utilizada. Se você tiver duas variáveis na mesma seção com o mesmo nome,
- a última será utilizada.
-
-
- Arquivos de configuração são carregados no template com a função embutida
- config_load.
-
-
- Você pode esconder variáveis ou seções inteiras colocando um ponto
- antes do nome da variável. Isto é útil se a sua aplicação
- se arquivos de configuração e lê dados sensíveis a partir deles
- que a ferramenta de template não precisa. Se você tem terceiros fazendo a edição de templates,
- você terá certesa que eles não leiam dados sensíveis
- do arquivo de configuração carregando ele no template.
-
-
-
-
- Debugging Console
-
- Há um console para debug incluso no Smarty. O console informa a você de
- todos os templates incluídos, variáveis definidas e variáveis de arquivos de configuração
- da chamada atual do template. Um template chamado "debug.tpl"
- é incluso com a distribuição do Smarty o qual controla a formatação
- do console. Defina $debugging para true no Smarty, e se necessário defina $debug_tpl
- para o caminho de recurso de debug.tpl (isto é SMARTY_DIR por
- padrão.) Quando você carrega uma página, um console em javascript irá abrir uma
- janela popup e dar a você o nome de todos os templates incluídos e as variáveis definidas
- para a página atual. Para ver as variáveis disponíveis para um template
- em particular, veja a função {debug}.
- Para desabilitar o console de debug, defina $debugging para
- false. Você pode ativar temporariamente o console de debug colocando
- SMARTY_DEBUG na URL se você ativou esta opção com $debugging_ctrl.
-
-
- Nota Técnica
-
- O console de debug não funciona quando você usa a API fetch(),
- apenas quando estiver usando display(). É um conjunto de comandos javascript
- adicionados ao final do template gerado. Se você não gosta de javascript,
- você pode editar o template debug.tpl para formatar a saída como você quiser.
- Dados de debug não são guardados em cache e os dados de debug.tpl
- não são incluídos no console de debug.
-
-
-
-
- Os tempos de carregamento de cada template e arquivo de cofiguração são em segundos,
- ou então frações.
-
-
-
-
diff --git a/docs/pt_BR/getting-started.sgml b/docs/pt_BR/getting-started.xml
similarity index 100%
rename from docs/pt_BR/getting-started.sgml
rename to docs/pt_BR/getting-started.xml
diff --git a/docs/pt_BR/html-common.dsl b/docs/pt_BR/html-common.dsl
deleted file mode 100644
index 7fd772c5..00000000
--- a/docs/pt_BR/html-common.dsl
+++ /dev/null
@@ -1,382 +0,0 @@
-;; -*- Scheme -*-
-;;
-;; $Id$
-;;
-
-;; Returns the depth of the auto-generated TOC (table of contents) that
-;; should be made at the nd-level
-(define (toc-depth nd)
- (if (string=? (gi nd) (normalize "book"))
- 3 ; the depth of the top-level TOC
- 1 ; the depth of all other TOCs
- ))
-
-
-
-
-
-
-(element (funcdef function)
- ($bold-seq$
- (make sequence
- (process-children)
- )
- )
- )
-
-
-(define (is-true-optional nl)
- (and (equal? (gi (parent nl)) (normalize "parameter"))
- (equal? 0 (string-length (strip (data (preced nl)))))
- (equal? 0 (string-length (strip (data (follow nl)))))
- )
- )
-
-
-(define (has-true-optional nl)
- (is-true-optional
- (node-list-first-element
- (select-elements
- (descendants nl)
- (normalize "optional"))
- )
- )
- )
-
-
-(define (count-true-optionals nl)
- (let loop
- ((result 0)
- (nl (select-elements (descendants nl) (normalize "optional")))
- )
- (if(node-list-empty? nl)
- result
- (if(is-true-optional(node-list-first nl))
- (loop (+ result 1) (node-list-rest nl))
- (loop result (node-list-rest nl))
- )
- )
- )
- )
-
-
-;; there are two different kinds of optionals
-;; optional parameters and optional parameter parts
-;; an optional parameter is identified by an optional tag
-;; with a parameter tag as its parent
-;; and only whitespace between them
-(element optional
- ;;check for true optional parameter
- (if (is-true-optional (current-node))
- ;; yes - handle '[...]' in paramdef
- (process-children-trim)
- ;; no - do '[...]' output
- (make sequence
- (literal %arg-choice-opt-open-str%)
- (process-children-trim)
- (literal %arg-choice-opt-close-str%)
- )
- )
- )
-
-;; now this is going to be tricky
-(element paramdef
- (make sequence
- ;; special treatment for first parameter in funcsynopsis
- (if (equal? (child-number (current-node)) 1)
- ;; is first ?
- (make sequence
- ;; start parameter list
- (literal "(")
- ;; is optional ?
- ( if (has-true-optional (current-node))
- (literal %arg-choice-opt-open-str%)
- (empty-sosofo)
- )
- )
- ;; not first
- (empty-sosofo)
- )
-
- ;;
- (process-children-trim)
-
- ;; special treatment for last parameter
- (if (equal? (gi (ifollow (current-node))) (normalize "paramdef"))
- ;; more parameters will follow
- (make sequence
- ;; next is optional ?
- ( if (has-true-optional (ifollow (current-node)))
- ;; optional
- (make sequence
- (literal " ")
- (literal %arg-choice-opt-open-str%)
- )
- ;; not optional
- (empty-sosofo)
- )
- (literal ", " )
- )
- ;; last parameter
- (make sequence
- (literal
- (let loop ((result "")(count (count-true-optionals (parent (current-node)))))
- (if (<= count 0)
- result
- (loop (string-append result %arg-choice-opt-close-str%)(- count 1))
- )
- )
- )
- ( literal ")" )
- )
- )
- )
- )
-
-
-(element function
- (let* ((function-name (data (current-node)))
- (linkend
- (string-append
- "function."
- (string-replace
- (string-replace function-name "_" "-")
- "::" ".")))
- (target (element-with-id linkend))
- (parent-gi (gi (parent))))
- (cond
- ;; function names should be plain in FUNCDEF
- ((equal? parent-gi "funcdef")
- (process-children))
-
- ;; if a valid ID for the target function is not found, or if the
- ;; FUNCTION tag is within the definition of the same function,
- ;; make it bold, add (), but don't make a link
- ((or (node-list-empty? target)
- (equal? (case-fold-down
- (data (node-list-first
- (select-elements
- (node-list-first
- (children
- (select-elements
- (children
- (ancestor-member (parent) (list "refentry")))
- "refnamediv")))
- "refname"))))
- function-name))
- ($bold-seq$
- (make sequence
- (process-children)
- (literal "()"))))
-
- ;; else make a link to the function and add ()
- (else
- (make element gi: "A"
- attributes: (list
- (list "HREF" (href-to target)))
- ($bold-seq$
- (make sequence
- (process-children)
- (literal
- )
- (literal "()"))))))))
-
-(element command
- (let* ((command-name (data (current-node)))
- (linkend
- (string-append
- "language.function."
- (string-replace
- (string-replace command-name "_" ".")
- "::" ".")))
- (target (element-with-id linkend))
- (parent-gi (gi (parent))))
- (cond
- ;; function names should be plain in FUNCDEF
- ((equal? parent-gi "funcdef")
- (process-children))
-
- ;; if a valid ID for the target function is not found, or if the
- ;; FUNCTION tag is within the definition of the same function,
- ;; make it bold, add (), but don't make a link
- ((or (node-list-empty? target)
- (equal? (case-fold-down
- (data (node-list-first
- (select-elements
- (node-list-first
- (children
- (select-elements
- (children
- (ancestor-member (parent) (list "refentry")))
- "refnamediv")))
- "refname"))))
- command-name))
- ($bold-seq$
- (make sequence
- (literal "{")
- (process-children)
- (literal "}"))))
-
- ;; else make a link to the function and add ()
- (else
- (make element gi: "A"
- attributes: (list
- (list "HREF" (href-to target)))
- ($bold-seq$
- (make sequence
- (literal "{")
- (process-children)
- (literal "}"))))))))
-
-(element classname
- (let* ((class-name (data (current-node)))
- (linkend
- (string-append
- "class."
- (string-replace
- (case-fold-down class-name) "_" "-")))
- (target (element-with-id linkend))
- (parent-gi (gi (parent))))
- (cond
- ;; function names should be plain in SYNOPSIS
- ((equal? parent-gi "synopsis")
- (process-children))
-
- ;; if a valid ID for the target class is not found, or if the
- ;; CLASSNAME tag is within the definition of the same class,
- ;; make it bold, but don't make a link
- ((or (node-list-empty? target)
- (equal? (case-fold-down
- (data (node-list-first
- (select-elements
- (node-list-first
- (children
- (select-elements
- (children
- (ancestor-member (parent) (list "refentry")))
- "refnamediv")))
- "refname"))))
- class-name))
- ($bold-seq$
- (process-children)))
-
- ;; else make a link to the function and add ()
- (else
- (make element gi: "A"
- attributes: (list
- (list "HREF" (href-to target)))
- ($bold-seq$
- (process-children)))))))
-
-
-(element constant
- (let* ((constant-name (data (current-node)))
- (linkend
- (string-append "constant."
- (case-fold-down
- (string-replace constant-name "_" "-"))))
- (target (element-with-id linkend))
- (parent-gi (gi (parent))))
- (cond
-; ;; constant names should be plain in FUNCDEF
-; ((equal? parent-gi "funcdef")
-; (process-children))
-
- ;; if a valid ID for the target constant is not found, or if the
- ;; CONSTANT tag is within the definition of the same constant,
- ;; make it bold, add (), but don't make a link
- ((or (node-list-empty? target)
- (equal? (case-fold-down
- (data (node-list-first
- (select-elements
- (node-list-first
- (children
- (select-elements
- (children
- (ancestor-member (parent) (list "refentry")))
- "refnamediv")))
- "refname"))))
- constant-name))
- ($bold-mono-seq$
- (process-children)))
-
- ;; else make a link to the function and add ()
- (else
- (make element gi: "A"
- attributes: (list
- (list "HREF" (href-to target)))
- ($bold-mono-seq$
- (process-children)))))))
-
-
-(element example
- (make sequence
- (make element gi: "TABLE"
- attributes: (list
- (list "WIDTH" "100%")
- (list "BORDER" "0")
- (list "CELLPADDING" "0")
- (list "CELLSPACING" "0")
- (list "CLASS" "EXAMPLE"))
- (make element gi: "TR"
- (make element gi: "TD"
- ($formal-object$))))))
-
-
-(element (paramdef parameter)
- (make sequence
- font-posture: 'italic
- (process-children-trim)
- )
- )
-
-(mode book-titlepage-recto-mode
- (element authorgroup
- (process-children))
-
- (element author
- (let ((author-name (author-string))
- (author-affil (select-elements (children (current-node))
- (normalize "affiliation"))))
- (make sequence
- (make element gi: "DIV"
- attributes: (list (list "CLASS" (gi)))
- (literal author-name))
- (process-node-list author-affil))))
- )
-
-(define (chunk-element-list)
- (list (normalize "preface")
- (normalize "chapter")
- (normalize "appendix")
- (normalize "article")
- (normalize "glossary")
- (normalize "bibliography")
- (normalize "index")
- (normalize "colophon")
- (normalize "setindex")
- (normalize "reference")
- (normalize "refentry")
- (normalize "part")
- (normalize "sect1")
- (normalize "sect2")
- (normalize "section")
- (normalize "book") ;; just in case nothing else matches...
- (normalize "set") ;; sets are definitely chunks...
- ))
-
-(define ($section-body$)
- (make element gi: "DIV"
- attributes: (list (list "CLASS" (gi)))
- ($section-separator$)
- ($section-title$)
-
- (if (or (not (node-list-empty? (select-elements (children (current-node))
- (normalize "sect2"))))
- (not (node-list-empty? (select-elements (children (current-node))
- (normalize "sect3")))))
- (build-toc (current-node) 1)
- (empty-sosofo))
-
- (process-children)))
-
diff --git a/docs/pt_BR/language-defs.ent b/docs/pt_BR/language-defs.ent
new file mode 100644
index 00000000..7aab73d4
--- /dev/null
+++ b/docs/pt_BR/language-defs.ent
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/docs/pt_BR/manual.xml b/docs/pt_BR/manual.xml
new file mode 100644
index 00000000..753ba938
--- /dev/null
+++ b/docs/pt_BR/manual.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+]>
+
+
+
+ Smarty - a ferramenta para compilar templates para PHP
+
+
+ MonteOhrt <monte@ispi.net>
+
+
+ AndreiZmievski <andrei@php.net>
+
+
+
+
+ FernandoCorrea da Conceição <fernandoc@php.net>
+
+
+ MarceloPerreira Fonseca da Silva <marcelo@php.net>
+
+
+ TanielFranklin <taniel@ig.com.br>
+
+ Versão 2.0
+
+ 2001
+ 2002
+ 2003
+ ispi of Lincoln, Inc.
+
+
+
+ &preface;
+ &getting.started;
+ &smarty.for.designers;
+ &smarty.for.programmers;
+ &appendixes;
+
+
diff --git a/docs/pt_BR/preface.sgml b/docs/pt_BR/preface.xml
similarity index 100%
rename from docs/pt_BR/preface.sgml
rename to docs/pt_BR/preface.xml
diff --git a/docs/pt_BR/programmers.sgml b/docs/pt_BR/programmers.sgml
deleted file mode 100644
index d47be7ee..00000000
--- a/docs/pt_BR/programmers.sgml
+++ /dev/null
@@ -1,3275 +0,0 @@
-
- Smarty para Programadores
-
-
-
- Constantes
-
-
-
- SMARTY_DIR
-
- Isso deve ser o caminho completo do path para a localização dos arquivos de classe da Smarty.
- Se isso não for definido, então a Smarty irá tentar determinar
- o valor apropriado automaticamente. Se definido, o path
- deve finalizar com uma barra.
-
-
- SMARTY_DIR
-
-// set path to Smarty directory
-define("SMARTY_DIR","/usr/local/lib/php/Smarty/");
-
-require_once(SMARTY_DIR."Smarty.class.php");
-
-
-
-
-
- Variáveis
-
-
- $template_dir
-
- Este é o nome padrão do diretório de template. Se você não fornecer
- um tipo de recurso quando incluir arquivos, então ele irá ser encontrado aqui.
- Por padrão isso é "./templates", significando que isso irá
- olhar para o diretório de templates no mesmo diretório que está executando
- o script PHP.
-
-
- Notas Técnicas
-
- Não é recomendado colocar este diretório sob um diretório
- document root do seu webserver.
-
-
-
-
- $compile_dir
-
- Esse é o nome do diretório onde os template compilados estão localizados
- Por padrão isso é "./templates_c", significando que isso irá
- olhar para o diretório de templates no mesmo diretório que está executando
- o script PHP.
-
-
- Notas Técnicas
-
- Essa configuração deve ser um path relativo ou um path absoluto.
- include_path não é usado para escrever em arquivos.
-
-
-
- Notas Técnicas
-
- Não é recomendado colocar este diretório sob um diretório
- document root do seu webserver.
-
-
-
-
- $config_dir
-
- Este é o diretório usado para armazenar arquivos de configuração usados nos
- templates. O padrão é "./configs", significando que isso irá
- olhar para o diretório de templates no mesmo diretório que está executando
- o script PHP.
-
-
- Notas Técnicas
-
- Não é recomendado colocar este diretório sob um diretório
- document root do seu webserver.
-
-
-
-
- $plugins_dir
-
- Esse é o diretório onde Smarty irá procurar por plugins que são necessários.
- O Padrão é "plugins" sob o SMARTY_DIR. Se vocêes especificar um
- path relativo, Smarty irá primeiro procurar sob o SMARTY_DIR, então
- relativo para o cwd (current working directory), então relativo para cada
- entrada no seu PHP include path.
-
-
- Notas técnicas
-
- Para uma melhor performance, não configure seu plugins_dir para ter que usar o
- PHP include path. Use um path absoluto, ou um path relativo para
- SMARTY_DIR ou o cwd.
-
-
-
-
- $debugging
-
- Isso habilita o debugging console.
- O console é uma janela de javascript que informa à você
- sobre os arquivos de template incluídos e variáveis
- destinadas para a página de template atual.
-
-
-
- $debug_tpl
-
- Este é o nome do arquivo de template usado para o console de debug.
- Por padrão, é nomeado como debug.tpl e está localizado no SMARTY_DIR.
-
-
-
- $debugging_ctrl
-
- Isso permite caminhos alternativos de habilitar o debug. NONE não significa
- que métodos alternativos são permitidos. URL significa quando a palavra
- SMARTY_DEBUG foi encontrado na QUERY_STRING, que o debug está habilitado
- para a chamada do script.
- Se $debugging é true, esse valor é ignorado.
-
-
-
- $global_assign
-
- Essa é a lista de variáveis que estão sempre implicitamente fixadas
- para o template engine. Isso está acessível para fazer variáveis
- globais ou variáveis do servidor disponíveis para todo o template
- sem ter que fixá-las manualmente. Cada elemento em
- $global_assign deve ser um nome de uma variável global,
- ou um par de chave/valor, onde a chave é o nome do array global
- array e o valor é o array de variáveis fixadas deste array global. $SCRIPT_NAME é
- globalmente fixado por padrão
- para $HTTP_SERVER_VARS.
-
-
- Notas Técnicas
-
- Variáveis de servidor podem ser acessadas através da variável
- $smarty, como {$smarty.server.SCRIPT_NAME}. Veja a seção
- da variável
- $smarty.
-
-
-
-
- $undefined
-
- Isso seta o valor de $undefined para Smarty, o padrão é null.
- Atualmente isso é somente usado para setar variáveis indefinidas em
- $global_assign para o valor padrão.
-
-
-
- $autoload_filters
-
- Se há algum filtro que você deseja carregar em cada chamada de template,
- você pode especificar-lhes usando essa variável e a Smarty irá
- automaticamente carregá-los para você. A variável é um array associativo
- onde as chaves são tipos de filtro e os valores são arrays de nomes de filtros.
- Por exemplo:
-
-
-$smarty->autoload_filters = array('pre' => array('trim', 'stamp'),
- 'output' => array('convert'));
-
-
-
-
-
- $compile_check
-
- Em cima de cada requisição da aplicação PHP , Smarty testa para ver se o
- template atual foi alterado (diferentes time stamp) desde a última
- compilação. Se isso foi alterado, ele irá recompilar o template. Se o template
- não foi compilado, ele irá compilar de qualquer maneira dessa configuração.
- Por padrão esta variável é setada como true. Uma vez que a aplicação está
- em produção (templates não serão alterados), o passo compile_check
- não é necessário. Tenha certeza de setar $compile_check para "false" para
- maior performance. Note que se você alterar isso para "false" e o
- arquivo de template está alterado, você *não* irá ver a alteração desde que
- o template seja recompilado. Se caching está habilitado e
- compile_check está habilitado, então os arquivos de cache não serão regerados se
- um complexo arquivo de ou um arquivo de configuração foi atualizado. Veja $force_compile ou clear_compiled_tpl.
-
-
-
- $force_compile
-
- Isso força Smarty para (re)compilar templates a cada requisição.
- Essa configuração sobreescreve $compile_check. Por padrão
- isso está desabilitado. Isso é útil para desenvolvimento e debug.
- Isso nunca deve ser usado em ambiente de produção. Se caching
- está habilitado, os arquivo(s) de cache serão regerados à todo momento.
-
-
-
- $caching
-
- Isto diz à Smarty se há ou não saída de cache para o template.
- Por padrão isso está setado para 0, ou desabilitado. Se seu template gerar
- conteúdo redundante, é necessário ligar o caching. Isso
- irá resultar num ganho significativo de performance. Você pode também ter múltiplos
- caches para o mesmo template. Um valor de 1 ou 2 caching habilitados. 1 diz
- à Smarty para usar a variável atual $cache_lifetime para determinar se o
- cache expirou. Um valor 2 diz à Smarty para usar o valor cache_lifetime
- então para quando o cache foi gerado. Desta maneira você pode setar o
- cache_lifetime imediatamente antes de buscar o template para ter controle
- sobre quando este cache em particular expira. Veja também is_cached.
-
-
- Se $compile_check está habilitado, o conteúdo do cache irá ser regerado se
- algum dos templates ou arquivos de configuração que são parte deste cache estiverem
- alterados. Se $force_compile está habilitado, o conteúdo do cache irá sempre ser
- regerado.
-
-
-
- $cache_dir
-
- Isso é o nome do diretório onde os caches do template são
- armazenados. Por padrão isso é "./cache", significando que isso irá olhar
- para o diretório de cache no mesmo diretório que executar scripts PHP.
- Você pode tambe usar sua própria função customizada de manuseamento de cache
- para manipular arquivos de cache,
- que irão ignorar esta configuração.
-
-
- Notas Técnicas
-
- Essa configuração deve ser ou um relativo
- ou absoluto path. include_path não é usado para escrever em arquivos.
-
-
-
- Notas Técnicas
-
- Não é recomendado colocar este diretório sob um diretório
- document root do seu webserver.
-
-
-
-
- $cache_lifetime
-
- Isso é o comprimento de tempo em segundos que um cache de template é válido.
- Uma vez que este tempo está expirado, o cache irá ser regerado. $caching deve
- ser configurado para "true" para $cache_lifetime para ter algum propósito. Um valor de -1
- irá forçar o cache a nunca expirar. Um valor de 0 irá fazer com que o cache seja sempre regerado
- (bom somente para testes, o método mais eficiente de desabilitar caching é setá-lo para
- $caching = false.)
-
-
- Se $force_compile está
- habilitado, os arquivos de cache serão regerados todo o tempo, eficazmente
- desativando caching. Você pode limpar todos os arquivos de cache com a função clear_all_cache(), ou
- arquivos individuais de cache (ou grupos) com a função clear_cache().
-
-
- Notas Técnicas
-
- Se você quiser dar para certos templates seu próprio tempo de vida de um cache,
- você poderia fazer isso configurando $caching = 2,
- então configure $cache_lifetime para um único valor somente antes de chamar display()
- ou fetch().
-
-
-
-
- $cache_handler_func
-
- Você pode fornecer uma função padrão para manipular arquivos de cache ao invés de
- usar o método built-in usando o $cache_dir. Veja a
- seção cache
- handler function section para obter detalhes.
-
-
-
- $cache_modified_check
-
- Se configurado para true, Smarty irá respeitar o If-Modified-Since
- header enviado para o cliente. Se o timestamp do arquivo de cache
- não foi alterado desde a última visita, então um header "304 Not Modified"
- irá ser enviado ao invés do conteúdo. Isso funciona somente em arquivos
- de cache sem tags insert.
-
-
-
- $config_overwrite
-
- Se configurado para true, variáveis lidas no arquivo de configurações irão sobrescrever
- uma a outra. Do contrário, as variáveis serão guardadas em um array. Isso é
- útil se você quer armazenar arrays de dados em arquivos de configuração, somente lista
- tempos de cada elemento múltiplo. true por padrão.
-
-
-
- $config_booleanize
-
- Se setado para true, os valores do arquivo de configuração de on/true/yes e off/false/no
- ficará convertido para valores booleanos automaticamente. Desta forma você pode usar os
- valores em um template como: {if #foobar#} ... {/if}. Se foobar estiver
- on, true ou yes, a condição {if} irá executar. true por padrão.
-
-
-
- $config_read_hidden
-
- Se configurado para true, esconde seções (nomes de seções começados com um período)
- no arquivo de configuração podem ser lidos do template. Tipicamente você deixaria
- isto como false, desta forma você pode armazenar dados sensitivos no arquivo de configuração
- como um parâmetro de banco de
- dados e sem preocupar-se sobre o template carregá-los. false é o padrão.
-
-
-
- $config_fix_newlines
-
- Se setado para true, mac e dos newlines (\r e \r\n) no arquivo de configuração serão
- convertidos para \n quando eles forem interpretados. true é o padrão.
-
-
-
- $default_template_handler_func
-
- Essa função é chamada quando um template não pode ser obtido
- de seu recurso.
-
-
-
- $php_handling
-
- Isso diz à Smarty como manipular códigos PHP contido nos
- templates. Há quatro possíveis configurações, padrão sendo
- SMARTY_PHP_PASSTHRU. Note que isso NÃO fará efeito com códigos php
- dentro de tags {php}{/php}
- no template.
-
-
- SMARTY_PHP_PASSTHRU - Smarty echos tags as-is.
- SMARTY_PHP_QUOTE - Smarty quotes the
- tags as html entities.
- SMARTY_PHP_REMOVE - Smarty
- irá remover as tags do template.
- SMARTY_PHP_ALLOW - Smarty irá executar as
- tags como códigos PHP.
-
-
- NOTE: Usando códigos PHP code dentro de templates é altamente desencorajado.
- Use custom functions ou
- modifiers ao invés disso.
-
-
-
- $security
-
- $security true/false, o padrão é false. Security é bom para situações
- quando você tem partes inconfiáveis editando o template
- (via ftp por exemplo) e você quer reduzir os riscos de comprometimento
- da segurança do sistema através da linguagem de template.
- Habilitando-o faz-se cumprir as regras da linguagem de template,
- a menos que especificamente cancelada com $security_settings:
-
-
- Se $php_handling está setado para SMARTY_PHP_ALLOW, isso é implicitamente
- alterado para SMARTY_PHP_PASSTHRU
- Funçõs PHP não são permitidas em blocos IF,
- exceto estes especificados no $security_settings
- templates podem ser somente incluidos no diretório
- listado em $secure_dir array
- Arquivos locais podem ser somente trazidos do diretório
- listado em $secure_dir usando no array {fetch}
- Estas tags {php}{/php} não são permitidas
- Funções PHP não são permitidas como modificadores, exceto
- estes especificados no $security_settings
-
-
-
- $secure_dir
-
- Isso é um array de todos os diretórios locais que são considerados
- seguros. {include} e {fetch} usam estes (diretórios) quando security está habilitado.
-
-
-
- $security_settings
-
- Essas configurações são usadas para cancelar ou especificar configurações
- de segurança quando security está habilitado. Estas possuem as seguintes configurações possíveis:
-
-
- PHP_HANDLING - true/false. Se setado para true,
- a configuração de $php_handling não é checada para security.
- IF_FUNCS - Isso é um array de nomes de funções PHP permitidas
- nos blocos IF.
- INCLUDE_ANY - true/false. Se setado para true, algum
- template pode ser incluído para um arquivo do sistema, apesar de toda a lista de
- $secure_dir.
- PHP_TAGS - true/false. Se setado para true, as tags {php}{/php}
- são permitidas nos templates.
- MODIFIER_FUNCS - Isso é um array de nomes de funções PHP permitidas
- usadas como modificadores de variável.
-
-
-
- $trusted_dir
-
- $trusted_dir somente usado quando $security está habilitado. Isso é um array
- de todos os diretórios que são considerados confiáveis. Diretórios confiáveis
- são onde você irá deixar seus scripts php que são executados diretamente para o
- template com {include_php}.
-
-
-
- $left_delimiter
-
- Este é o delimitador esquerdo usado para a linguagem de template.
- O padrão é "{".
-
-
-
- $right_delimiter
-
- Este é o delimitador direito usado para a linguagem de template.
- O padrão é "}".
-
-
-
- $compiler_class
-
- Especifica o nome do compilador de classes que
- Smarty irá usar para compilar templates. O padrão é 'Smarty_Compiler'.
- Para usuários avançados somente.
-
-
-
- $request_vars_order
-
- A ordem na qual as variáveis requeridas serão registradas, similar ao
- variables_order no php.ini
-
-
-
- $request_use_auto_globals
-
- Especifica se a Smarty deve usar variáveis globais do php $HTTP_*_VARS[]
- ($request_use_auto_globals=false que é o valor padrão) ou
- $_*[] ($request_use_auto_globals=true). Isso afeta templates
- que fazem uso do {$smarty.request.*}, {$smarty.get.*} etc. .
- Atenção: Se você setar $request_use_auto_globals para true, variable.request.vars.order
- não terão efeito mas valores de configurações do php
- gpc_order são usados.
-
-
-
- $compile_id
-
- Identificador de compilação persistente. Como uma alternativa
- para passar o mesmo compile_id para cada chamada de função, você
- pode setar este compile_id e isso irá ser usado implicitamente após isso.
-
-
-
- $use_sub_dirs
-
- Configure isso para false se seu ambiente de PHP não permite a criação de
- subdiretórios pela Smarty. Subdiretórios são muito eficientes, então use-os se você
- conseguir.
-
-
-
- $default_modifiers
-
- Isso é um array de modificadores implicitamente aplicados par cada
- variável no template. Por Exemplo, para cada variável HTML-escape por padrão,
- use o array('escape:"htmlall"'); Para fazer a variável isenta para modificadores
- padrão, passe o modificador especial "smarty" com um valor de parâmetro "nodefaults"
- modificando isso, como
- {$var|smarty:nodefaults}.
-
-
-
- $default_resource_type
-
- Isso diz à Smarty qual tipo de recurso usar implicitamente.
- O valor padrão é 'file', significando que $smarty->display('index.tpl'); e
- $smarty->display('file:index.tpl'); são idênticos no significado.
- Veja o capítulo resource para detalhes.
-
-
-
-
-
- Métodos
-
- append
-
-
- void append
- mixed var
-
-
- void append
- string varname
- mixed var
-
-
- void append
- string varname
- mixed var
- boolean merge
-
-
-
- Isso é usado para adicionar um elemento para um array fixado. Se você adicionar
- uma string como valor, isso irá converter-se para um valor de array e então adicioná-lo.
- Você pode explicitamente passar pares nomes/valores, ou arrays associativos
- contendo o par nome/valor. Se você passar o terceiro parâmetro opcional para true,
- o valor unir-se ao array atual
- ao invés de ser adicionado.
-
-
- Notas Técnicas
-
- O parâmetro de união respeita a chave do array, então se você
- mesclar dois índices númericos de um array, eles devem sobrescrever-se
- um ao outro ou em resultados não sequências de chave. Isso é diferente da função de PHP array_merge()
- que apaga as chaves e as renumera.
-
-
-
- append
-
-// passing name/value pairs
-$smarty->append("Name","Fred");
-$smarty->append("Address",$address);
-
-// passing an associative array
-$smarty->append(array("city" => "Lincoln","state" => "Nebraska"));
-
-
-
- append_by_ref
-
-
- void append_by_ref
- string varname
- mixed var
-
-
- void append_by_ref
- string varname
- mixed var
- boolean merge
-
-
-
- Isso é usado para adicionar vlaores para o template por referência.
- Se você adicionar uma variável por referência e então alterar este valor
- o valor adicionado enxergará a alteração também. Para objetos,
- append_by_ref() também evita uma cópia em memória do objeto adicionado.
- Veja o manual do PHP em referenciando variáveis para uma melhor explanação sobre o assunto.
- Se você passar o terceiro parâmetro opcional para true,
- o valor irá ser mesclado com o array atual ao invés de adicioná-lo.
-
-
- Notas Técnicas
-
- O parâmetro de união respeita a chave do array, então se você mesclar
- dois índices númericos de arrays, eles devem sobrescrever-se um ao outro ou
- em resultados não sequências de chave. Isso é diferente da função de PHP array_merge()
- que apaga as chaves numéricas e as renumera.
-
-
-
- append_by_ref
-
-// appending name/value pairs
-$smarty->append_by_ref("Name",$myname);
-$smarty->append_by_ref("Address",$address);
-
-
-
- assign
-
-
- void assign
- mixed var
-
-
- void assign
- string varname
- mixed var
-
-
-
- Isso é usado para fixar valores para o template. Você pode
- explicitamente passar pares de nomes/valores, ou um array associativo
- contendo o par de nome/valor.
-
-
- assign
-
-// passing name/value pairs
-$smarty->assign("Name","Fred");
-$smarty->assign("Address",$address);
-
-// passing an associative array
-$smarty->assign(array("city" => "Lincoln","state" => "Nebraska"));
-
-
-
- assign_by_ref
-
-
- void assign_by_ref
- string varname
- mixed var
-
-
-
- Isso é usado para fixar valores para o template por referência ao invés de fazer uma cópia.
- Veja o manual do PHP na parte sobre referência de variáveis para uma explanação mais detalhada.
-
-
- Notas Técnicas
-
- Isso é usado para fixar valores para o template por referência.
- Se você fixar uma variável por referência e então alterar o valor dela,
- o valor fixado enxergará o valor alterado também.
- Para objetos, assign_by_ref() também restringe uma cópia de objetos fixados
- em memória.
- Veja o manual do php em refereciando variáveis para uma melhor explanação.
-
-
-
- assign_by_ref
-
-// passing name/value pairs
-$smarty->assign_by_ref("Name",$myname);
-$smarty->assign_by_ref("Address",$address);
-
-
-
- clear_all_assign
-
-
- void clear_all_assign
-
-
-
-
- Isso limpa o valor de todas as variáveis fixadas.
-
-
-clear_all_assign
-
-// clear all assigned variables
-$smarty->clear_all_assign();
-
-
-
- clear_all_cache
-
-
- void clear_all_cache
- int expire time
-
-
-
- Isso limpa completamente o cache de template. Como um parâmetro
- opcional, você pode fornecer um ano mínimo em segundos
- que o arquivo de cache deve ter antes deles serem apagados.
-
-
-clear_all_cache
-
-// clear the entire cache
-$smarty->clear_all_cache();
-
-
-
- clear_assign
-
-
- void clear_assign
- string var
-
-
-
- Isso limpa o valor de uma variável fixada. Isso
- pode ser um valor simples, ou um array de valores.
-
-
-clear_assign
-
-// clear a single variable
-$smarty->clear_assign("Name");
-
-// clear multiple variables
-$smarty->clear_assign(array("Name","Address","Zip"));
-
-
-
- clear_cache
-
-
- void clear_cache
- string template
- string cache id
- string compile id
- int expire time
-
-
-
- Isso limpa o cache de um template específico. Se você tem
- múltiplos caches para este arquivo, você limpa o cache
- específico fornecendo o cache id como o segundo parâmetro.
- Você pode também passar um compile id como um terceiro parâmetro.
- Você pode "agrupar" templates juntos e então eles podem ser removidos
- como um grupo. Veja o caching section para maiores informações. Como um quarto
- parâmetro opcional, você pode fornecer um ano mínimo em segundos
- que o arquivo de cache deve
- ter antes dele ser apagado.
-
-
-clear_cache
-
-// clear the cache for a template
-$smarty->clear_cache("index.tpl");
-
-// clear the cache for a particular cache id in an multiple-cache template
-$smarty->clear_cache("index.tpl","CACHEID");
-
-
-
- clear_compiled_tpl
-
-
- void clear_compiled_tpl
- string tpl_file
-
-
-
- Isso limpa a versão compilada do recurso de template especificado,
- ou todos os arquivos de templates compilados se nenhum for especificado.
- Essa função é para uso avançado somente, não normalmente necessária.
-
-
-clear_compiled_tpl
-
-// clear a specific template resource
-$smarty->clear_compiled_tpl("index.tpl");
-
-// clear entire compile directory
-$smarty->clear_compiled_tpl();
-
-
-
- clear_config
-
-
- void clear_config
- string var
-
-
-
- Isso limpa todas as variáveis de configuração fixadas. Se um nome de variável
- é fornecido, somente esta variável é apagada.
-
-
-clear_config
-
-// clear all assigned config variables.
-$smarty->clear_config();
-
-// clear one variable
-$smarty->clear_config('foobar');
-
-
-
- config_load
-
-
- void config_load
- string file
- string section
-
-
-
- Isso carrega o arquivo de configuração de dados e fixa-o para o
- template. Isso funciona idêntico a função
- config_load.
-
-
- Notas Técnicas
-
- À partir da Smarty 2.4.0, variáveis de template fixadas são
- mantidas através de fetch() e display(). Variáveis de configuração carregadas
- de config_load() são sempre de escopo global. Arquivos de configuração
- também são compilados para execução rápida, e repeita o force_compile e compile_check parâmetros de configuração.
-
-
-
-config_load
-
-// load config variables and assign them
-$smarty->config_load('my.conf');
-
-// load a section
-$smarty->config_load('my.conf','foobar');
-
-
-
- display
-
-
- void display
- string template
- string cache_id
- string compile_id
-
-
-
- Isso mostra o template. Fornecendo um válido template resource
- tipo e path. Como um segundo parâmetro opcional, você pode passar
- um cache id. Veja o caching
- section para maiores informações.
-
-
- Como um terceiro parâmetro opcional, você pode passar um compile id.
- Isso está no evento que você quer compilar diferentes versões do
- mesmo template, como ter templates compilados separadamente para diferentes linguagens.
- Outro uso para compile_id é quando você usa mais do que um $template_dir
- mas somente um $compile_dir. Seta um compile_id em separado para cada $template_dir,
- de outra maneira templates com mesmo nome irão sobrescrever-se um ao outro.
- Você pode também setar a variável $compile_id ao invés de
- passar isso para cada chamada
- de display().
-
-
-display
-
-include("Smarty.class.php");
-$smarty = new Smarty;
-$smarty->caching = true;
-
-// only do db calls if cache doesn't exist
-if(!$smarty->is_cached("index.tpl"))
-{
-
- // dummy up some data
- $address = "245 N 50th";
- $db_data = array(
- "City" => "Lincoln",
- "State" => "Nebraska",
- "Zip" = > "68502"
- );
-
- $smarty->assign("Name","Fred");
- $smarty->assign("Address",$address);
- $smarty->assign($db_data);
-
-}
-
-// display the output
-$smarty->display("index.tpl");
-
-
- Use a sintaxe para template resources para
- mostrar arquivos fora do $template_dir directory.
-
-
-Exemplos de recursos da função display
-
-// absolute filepath
-$smarty->display("/usr/local/include/templates/header.tpl");
-
-// absolute filepath (same thing)
-$smarty->display("file:/usr/local/include/templates/header.tpl");
-
-// windows absolute filepath (MUST use "file:" prefix)
-$smarty->display("file:C:/www/pub/templates/header.tpl");
-
-// include from template resource named "db"
-$smarty->display("db:header.tpl");
-
-
-
-
- fetch
-
-
- string fetch
- string template
- string cache_id
- string compile_id
-
-
-
- Isso retorna a saída do template ao invés de mostrá-lo.
- Fornecendo um tipo ou path válido template resource.
- Como um segundo parâmetro opcional, você pode passar o cache id.
- Veja o caching
- section para maiores informações.
-
-
- Como um terceiro parâmetro opcional, você pode passar um compile id.
- Isso está no evento que você quer compilar diferentes versões do
- mesmo template, como ter templates compilados separadamente para
- diferentes linguagens. Outro uso para compile_id é quando você
- usa mais do que um $template_dir mas somente um $compile_dir. Seta
- um compile_id em separado para cada $template_dir, de outra maneira
- templates com mesmo nome irão sobrescrever-se uns aos outros. Você
- pode também setar a variável $compile_id ao invés
- de passá-la para cada chamada de fetch().
-
-
-fetch
-
-include("Smarty.class.php");
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-// only do db calls if cache doesn't exist
-if(!$smarty->is_cached("index.tpl"))
-{
-
- // dummy up some data
- $address = "245 N 50th";
- $db_data = array(
- "City" => "Lincoln",
- "State" => "Nebraska",
- "Zip" = > "68502"
- );
-
- $smarty->assign("Name","Fred");
- $smarty->assign("Address",$address);
- $smarty->assign($db_data);
-
-}
-
-// capture the output
-$output = $smarty->fetch("index.tpl");
-
-// do something with $output here
-
-echo $output;
-
-
-
- get_config_vars
-
-
- array get_config_vars
- string varname
-
-
-
- Isso retorna o valor da variável de configuração dada.
- Se nenhum parâmetro é dado, um array de todas as variáveis dos arquivos de configurações é retornado.
-
-
-get_config_vars
-
-// get loaded config template var 'foo'
-$foo = $smarty->get_config_vars('foo');
-
-// get all loaded config template vars
-$config_vars = $smarty->get_config_vars();
-
-// take a look at them
-print_r($config_vars);
-
-
-
- get_registered_object
-
-
- array get_registered_object
- string object_name
-
-
-
- Isso retorna uma referência para um objeto registrado.
- Isso é útil para dentro de uma função customizada quando você
- precisa acessar diretamente um objeto registrado.
-
-
-get_registered_object
-
-function smarty_block_foo($params, &$smarty) {
- if (isset[$params['object']]) {
- // get reference to registered object
- $obj_ref =& $smarty->&get_registered_object($params['object']);
- // use $obj_ref is now a reference to the object
- }
-}
-
-
-
- get_template_vars
-
-
- array get_template_vars
- string varname
-
-
-
- Isso retorna o valor de uma variável fixada. Se nenhum parâmetro
- é dado, um array de todas as variávels fixadas é retornado.
-
-
-get_template_vars
-
-// get assigned template var 'foo'
-$foo = $smarty->get_template_vars('foo');
-
-// get all assigned template vars
-$tpl_vars = $smarty->get_template_vars();
-
-// take a look at them
-print_r($tpl_vars);
-
-
-
- is_cached
-
-
- void is_cached
- string template
- [string cache_id]
-
-
-
- Isso retorna true se há um cache válido para esse template.
- Isso somente funciona se caching está setado para true.
-
-
-is_cached
-
-$smarty->caching = true;
-
-if(!$smarty->is_cached("index.tpl")) {
- // do database calls, assign vars here
-}
-
-$smarty->display("index.tpl");
-
-
- Você pode também passar um cache id como um segundo parâmetro opcional
- no caso você quer múltiplos caches para o template dado.
-
-
-is_cached with multiple-cache template
-
-$smarty->caching = true;
-
-if(!$smarty->is_cached("index.tpl","FrontPage")) {
- // do database calls, assign vars here
-}
-
-$smarty->display("index.tpl","FrontPage");
-
-
-
- load_filter
-
-
- void load_filter
- string type
- string name
-
-
-
- Essa função pode ser usada para carregar um filtro de plugin. O primeiro
- argumento especifica o tipo do filtro para carregar e pode ser um
- dos seguintes: 'pre', 'post', ou 'output'. O segundo argumento
- especifica o nome do filtro de plugin, por exemplo, 'trim'.
-
-
-Carregando filtros de plugins
-
-$smarty->load_filter('pre', 'trim'); // load prefilter named 'trim'
-$smarty->load_filter('pre', 'datefooter'); // load another prefilter named 'datefooter'
-$smarty->load_filter('output', 'compress'); // load output filter named 'compress'
-
-
-
- register_block
-
-
- void register_block
- string name
- mixed impl
- bool cacheable
- array or null cache_attrs
-
-
-
- Use isso para registrar dinamicamente blocos de funções de plugins.
- Passe no bloco de nomes de função, seguido por uma chamada de função PHP
- que implemente isso.
-
-
-
- A chamada de uma função-php impl pode ser (a)
- uma string contendo o nome da função ou (b) um array no formato
- array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo um
- método desta classe.
-
-
-$cacheable e $cache_attrs podem ser omitidos na maior parte dos casos. Veja Controlando modos de Saída de Cache dos Plugins para obter informações apropriadas.
-
-
-register_block
-
-/* PHP */
-$smarty->register_block("translate", "do_translation");
-
-function do_translation ($params, $content, &$smarty, &$repeat) {
- if (isset($content)) {
- $lang = $params['lang'];
- // do some translation with $content
- return $translation;
- }
-}
-
-{* template *}
-{translate lang="br"}
- Hello, world!
-{/translate}
-
-
-
- register_compiler_function
-
-
- void register_compiler_function
- string name
- mixed impl
- bool cacheable
-
-
-
- Use isso para registrar dinamicamente uma função de plugin compilador.
- Passe no nome da função compilador, seguido pela função
- PHP que implemente isso.
-
-
- A chamada para função-php impl
- pode ser uma string contendo o nome da função ou (b) um array
- no formato array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo o método
- desta classe.
-
-
- $cacheable pode ser omitido na maioria
- dos casos. Veja Controlando modos de Saída de Cache dos Plugins
- para obter informações apropriadas.
-
-
-
- register_function
-
-
- void register_function
- string name
- mixed impl
- bool cacheable
- array or null cache_attrs
-
-
-
- Use isso para registrar funções de plugins dinamicamente para o template.
- Passe no template o nome da função,
- seguido pelo nome da função PHP que implemente isso.
-
-
- A chamada para função-php impl pode ser (a)
- uma string contendo o nome da função ou (b) um array no formato
- array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo um método
- desta classe.
-
-
-$cacheable e $cache_attrs podem ser omitidos na maioria dos casos. Veja Controlando modos de Saída Cache dos Plugins para obter informações apropriadas.
-
-
-register_function
-
-$smarty->register_function("date_now", "print_current_date");
-
-function print_current_date ($params) {
- extract($params);
- if(empty($format))
- $format="%b %e, %Y";
- return strftime($format,time());
-}
-
-// agora você pode usar isso no Smarty para mostrar a data atual: {date_now}
-// ou, {date_now format="%Y/%m/%d"} para formatar isso.
-
-
-
- register_modifier
-
-
- void register_modifier
- string name
- mixed impl
-
-
-
- Use isso para modificar dinamicamente plugins registrados.
- Passe no template o nome do modificador, seguido da função PHP
- que implemente isso.
-
-
- A chamada da função-php impl
- pode ser (a) uma strin contendo o nome da função
- ou (b) um array no formato
- array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo um método desta classe.
-
-
-
-register_modifier
-
-// let's map PHP's stripslashes function to a Smarty modifier.
-
-$smarty->register_modifier("sslash","stripslashes");
-
-// now you can use {$var|sslash} to strip slashes from variables
-
-
-
- register_object
-
-
- void register_object
- string object_name
- object $object
- array allowed methods/properties
- boolean format
- array block methods
-
-
-
- Isso é para registrar um objeto para uso no template. Veja a
- seção de objetos
- do manual para examplos.
-
-
-
- register_outputfilter
-
-
- void register_outputfilter
- mixed function
-
-
-
- Use isso para registrar dinamicamente filtros de saída para operações
- na saída do template antes de mostrá-lo. Veja
- Filtros de Saída de Templates
- para maiores informações de como configurar uma
- função de filtro de saída.
-
-
- A chamada da função-php function pode
- ser (a) uma string contendo um nome de função ou (b) um array no formato
- array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo um método
- desta classe.
-
-
-
- register_postfilter
-
-
- void register_postfilter
- mixed function
-
-
-
- Use isso para registrar dinamicamente pósfiltros para rodar templates
- após eles terem sido compilados. Veja
- pósfiltros de template para
- maiores informações de como configurar funções de pósfiltragem.
-
-
- A chamada da função-php function pode
- ser (a) uma string contendo um nome de função ou (b) um array no formato
- array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo um método
- desta classe.
-
-
-
- register_prefilter
-
-
- void register_prefilter
- mixed function
-
-
-
- Use isso para registrar préfiltros dinamicamente para rodar
- templates antes deles serem compilados. Veja template prefilters para
- maiores informações de como configurar uma função de préfiltragem.
-
-
- A chamada da função-php function pode
- ser (a) uma string contendo um nome de função ou (b) um array no formato
- array(&$object, $method) com
- &$object sendo uma referência para um
- objeto e $method sendo uma string
- contendo o nome do método ou (c) um array no formato
- array(&$class, $method) com
- $class sendo um nome de classe e
- $method sendo um método
- desta classe.
-
-
-
- register_resource
-
-
- void register_resource
- string name
- array resource_funcs
-
-
-
- Use isso para registrar dinamicamente um recurso de plugin com a Smarty.
- Passe no nome o recurso e o array de funções
- PHP que implementam isso. Veja
- template resources
- para maiores informações de como configurar uma função para retornar
- templates.
-
-
- Notas Técnicas
-
- Um nome de recurso deve ter ao menos dois caracteres de comprimento.
- Um caracter do nome de recurso irá ser ignorado e usado como parte do
- path do arquivo como, $smarty->display('c:/path/to/index.tpl');
-
-
-
- A função-php-array resource_funcs
- deve ter 4 ou 5 elementos. Com 4 elementos os elementos são
- as functions-callbacks para as respectivas funções "source",
- "timestamp", "secure" e "trusted" de recurso.
- Com 5 elementos o primeiro elemento tem que ser um objeto por referência
- ou um nome de classe do objeto ou uma classe implementando o recurso e os 4
- elementos seguintes tem que ter os nomes de métodos
- implementando "source", "timestamp",
- "secure" e "trusted".
-
-
-register_resource
-
-$smarty->register_resource("db", array("db_get_template",
- "db_get_timestamp",
- "db_get_secure",
- "db_get_trusted"));
-
-
-
- trigger_error
-
-
- void trigger_error
- string error_msg
- [int level]
-
-
-
- Essa função pode ser usada para saída de uma mensagem de erro usando Smarty.
- O parâmetro level pode ser um dos valores usados
- para a função de php trigger_error(), ex.: E_USER_NOTICE,
- E_USER_WARNING, etc. Por padrão é E_USER_WARNING.
-
-
-
-
- template_exists
-
-
- bool template_exists
- string template
-
-
-
- Essa função checa se o template especificado existe. Isso pode
- aceitar um path para o template no filesystem ou um recurso de string
- especificando o template.
-
-
-
- unregister_block
-
-
- void unregister_block
- string name
-
-
-
- Use isso para desregistrar dinamicamente um bloco de funções de plugin.
- Passe no bloco o nome da função.
-
-
-
- unregister_compiler_function
-
-
- void unregister_compiler_function
- string name
-
-
-
- Use essa função para desregistrar uma função de compilador. Passe
- o nome da função de compilador.
-
-
-
- unregister_function
-
-
- void unregister_function
- string name
-
-
-
- Use isso para desregistrar dinamicamente uma função de plugin do template.
- Passe no template o nome da função.
-
-
-unregister_function
-
-// nós não queremos que designers template tenham acesso aos nossos arquivos do sistema
-
-$smarty->unregister_function("fetch");
-
-
-
- unregister_modifier
-
-
- void unregister_modifier
- string name
-
-
-
- Use isso para desregistrar dincamimente um modificador de plugin.
- Passe no template o nome do modificador.
-
-
-unregister_modifier
-
-// nós não queremos que designers de template usem strip tags para os elementos
-
-$smarty->unregister_modifier("strip_tags");
-
-
-
- unregister_object
-
-
- void unregister_object
- string object_name
-
-
-
- Use isso para desregistrar um objeto.
-
-
-
- unregister_outputfilter
-
-
- void unregister_outputfilter
- string function_name
-
-
-
- Use isso para desregistrar dinamicamente um filtro de saída.
-
-
-
- unregister_postfilter
-
-
- void unregister_postfilter
- string function_name
-
-
-
- Use isso para dinamicamente desregistrar um pósfiltro.
-
-
-
- unregister_prefilter
-
-
- void unregister_prefilter
- string function_name
-
-
-
- Use isso para dinamicamente desregistrar um préfiltro.
-
-
-
- unregister_resource
-
-
- void unregister_resource
- string name
-
-
-
- Use isso para dinamicamente desregistrar um recurso de plugin.
- Passe no parâmetro nome o nome do recurso.
-
-
-unregister_resource
-
-$smarty->unregister_resource("db");
-
-
-
-
-
- Caching
-
- Caching é usado para aumentar a velocidade de chamada para display() ou fetch() salvando isso num arquivo de saída. Se há uma versão
- de cache disponível para a chamada, isso é mostrado ao invés de regerar a saída de dados.
- Caching pode fazer coisas tremendamente rápidas,
- especialmente templates com longo tempo computacional. Desde a saída de dados do
- display() ou fetch() está em cache, um arquivo de cache poderia ser composto por
- diversos arquivos de templates, arquivos de configuração, etc.
-
-
- Desde que templates sejam dinâmicos, é importante isso ter cuidado com
- o que você está fazendo cache e por quanto tempo. Por exemplo, se você está mostrando
- a página principal do seu website na qual as alterações de conteúdo são muito frequentes,
- isso funciona bem para cache dessa por uma hora ou mais. Um outro modo, se você está
- mostrando uma página com um mapa do tempo contendo novas informações por minuto, não
- faz sentido fazer cache nesta página.
-
-
- Configurando Caching
-
- A primeira coisa a fazer é habilitar o caching. Isso é feito pela configuração $caching = true (or 1.)
-
-
- Habilitando Caching
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-$smarty->display('index.tpl');
-
-
- Com caching habilitado, a chamada para a função display('index.tpl') irá trazer
- o template como usual, mas também
- salva uma cópia disso para o arquivo de saída (uma cópia de cache) in the $cache_dir.
- Na próxima chamada de display('index.tpl'), a cópia em cache será usada
- ao invés de trazer novamente o template.
-
-
- Notas Técnicas
-
- Os arquivos no $cache_dir são nomeados com similaridade ao nome do arquivo de template.
- Embora eles terminem com a extensão ".php", eles não são realmente scripts executáveis de php.
- Não edite estes arquivos!
-
-
-
- Cada página em cache tem um período de tempo limitado determinado por $cache_lifetime. O padrão do valor é
- 3600 segundos, ou 1 hora. Após o tempo expirar, o cache é regerado.
- É possível dar tempos individuais para caches com seu próprio tempo
- de expiração pela configuração $caching = 2. Veja a documentação em $cache_lifetime para detalhes.
-
-
- Configurando cache_lifetime por cache
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = 2; // lifetime is per cache
-
-// set the cache_lifetime for index.tpl to 5 minutes
-$smarty->cache_lifetime = 300;
-$smarty->display('index.tpl');
-
-// set the cache_lifetime for home.tpl to 1 hour
-$smarty->cache_lifetime = 3600;
-$smarty->display('home.tpl');
-
-// NOTE: the following $cache_lifetime setting will not work when $caching = 2.
-// The cache lifetime for home.tpl has already been set
-// to 1 hour, and will no longer respect the value of $cache_lifetime.
-// The home.tpl cache will still expire after 1 hour.
-$smarty->cache_lifetime = 30; // 30 seconds
-$smarty->display('home.tpl');
-
-
- Se $compile_check está habilitado,
- cada arquivo de template e arquivo de configuração que está envolvido com o arquivo em cache
- é checado por modificações. Se algum destes arquivos foi modificado desde que o último cache
- foi gerado, o cache é imediatamente regerado.
- Isso é ligeiramente uma forma de optimização de performance de overhead, deixe $compile_check setado para false.
-
-
- Habilitando $compile_check
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-$smarty->compile_check = true;
-
-$smarty->display('index.tpl');
-
-
- Se $force_compile está habilitado,
- os arquivos de cache irão sempre ser regerados. Isso é efetivamente desativar caching.
- $force_compile é usualmente para propósitos de debug somente, um caminho mais
- eficiente de desativar caching é setar o $caching = false (ou 0.)
-
-
- A função is_cached()
- pode ser usada para testar se um template tem um cache válido ou não.
- Se você tem um template com cache que requer alguma coisa como um retorno do banco de dados,
- você pode usar isso para pular este processo.
-
-
- Usando is_cached()
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-if(!$smarty->is_cached('index.tpl')) {
- // No cache available, do variable assignments here.
- $contents = get_database_contents();
- $smarty->assign($contents);
-}
-
-$smarty->display('index.tpl');
-
-
- Você pode deixar partes da sua página dinâmica com a função de template insert.
- Vamos dizer que sua página inteira pode ter cache exceto para um banner que é
- mostrado abaixo do lado direito da sua página. Usando uma função insert para o banner,
- você pode deixar esse elemento dinâmico dentro do conteúdo de cache. Veja a documentação
- em insert para
- detalhes e exemplos.
-
-
- Você pode limpar todos os arquivos de cache com a função clear_all_cache(), ou
- arquivos de cache individuais (ou grupos) com a função clear_cache().
-
-
- Limpando o cache
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-// clear out all cache files
-$smarty->clear_all_cache();
-
-// clear only cache for index.tpl
-$smarty->clear_cache('index.tpl');
-
-$smarty->display('index.tpl');
-
-
-
- Multiple Caches Per Page
-
- Você pode ter múltiplos arquivos de cache para uma simples chamada de display()
- ou fetch(). Vamos dizer que uma chamada para display('index.tpl') deve ter vários
- conteúdo de saída diferentes dependendo de alguma condição, e você quer separar
- os caches para cada um. Você pode fazer isso passando um cache_id como um
- segundo parâmetro para a chamada da função.
-
-
- Passando um cache_id para display()
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-$my_cache_id = $_GET['article_id'];
-
-$smarty->display('index.tpl',$my_cache_id);
-
-
- Acima, nós estamos passando a variável $my_cache_id para display() com o
- cache_id. Para cada valor único de $my_cache_id, um cache em separado irá ser
- gerado para index.tpl. Nesse exemplo, "article_id" foi passado em URL e é usado
- como o cache_id.
-
-
- Notas Técnicas
-
- Tenha muito cuidado quando passar valores do cliente (web brownser) dentro
- da Smarty (ou alguma aplicação PHP.) Embora o exemplo acima usando o article_id
- vindo de uma URL pareça fácil, isso poderia ter consequências ruins. O
- cache_id é usado para criar um diretório no sistema de arquivos, então se o usuário
- decidir passar um valor extremamente largo para article_id, ou escrever um script
- que envia article_ids randômicos em um ritmo rápido, isso poderia possivelmente causar
- problemas em nível de servidor. Tenha certeza de limpar algum dado passado antes de usar isso. Nessa instãncia, talvez você
- saiba que o article_id tem um comprimento de 10 caracteres e isso é constituído somente
- de alfa-numéricos, e deve ser um
- article_id válido no database. Verifique isso!
-
-
-
- Tenha certeza de passar o mesmo cache_id como o segundo
- parâmetro para is_cached() e
- clear_cache().
-
-
- Passando um cache_id para is_cached()
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-$my_cache_id = $_GET['article_id'];
-
-if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
- // No cache available, do variable assignments here.
- $contents = get_database_contents();
- $smarty->assign($contents);
-}
-
-$smarty->display('index.tpl',$my_cache_id);
-
-
- Você pode limpar todos os caches para um cache_id em particular passando
- o primeiro parâmetro null para clear_cache().
-
-
- Limpando todos os caches para um cache_id em particular
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-// clear all caches with "sports" as the cache_id
-$smarty->clear_cache(null,"sports");
-
-$smarty->display('index.tpl',"sports");
-
-
- Desta maneira, você pode "agrupar" seus
- caches juntos dando-lhes o mesmo cache_id.
-
-
-
- Grupos de Cache
-
- Você pode fazer agrupamentos mais elaborados configurando grupos de cache_id. Isso é
- realizado pela separação de cada sub-grupo com uma barra vertical "|" no valor do
- cache_id. Você pode ter muitos sub-grupos com você desejar.
-
-
- Grupos de cache_id
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-
-$smarty->caching = true;
-
-// clear all caches with "sports|basketball" as the first two cache_id groups
-$smarty->clear_cache(null,"sports|basketball");
-
-// clear all caches with "sports" as the first cache_id group. This would
-// include "sports|basketball", or "sports|(anything)|(anything)|(anything)|..."
-$smarty->clear_cache(null,"sports");
-
-$smarty->display('index.tpl',"sports|basketball");
-
-
- Notas Técnicas
-
- O agrupamento de cache id NÃO use o path do template como alguma parte do cache_id.
- Por exemplo, se você tem display('themes/blue/index.tpl'), você não pode limpar o cache
- para tudo que estiver sob o diretório "themes/blue". Se você quiser fazer isso, você deve
- agrupá-los no cache_id, como display('themes/blue/index.tpl','themes|blue'); Então
- você pode limpar os caches para o
- tema azul com with clear_cache(null,'themes|blue');
-
-
-
-
-
- Controlling Cacheability of Plugins' Output
-
-Desde Smarty-2.6.0 os caches de plugins pode ser declarados
-ao registrá-los. O terceiro parâmetro para register_block,
-register_compiler_function e register_function é chamado
-$cacheable e o padrão para true que é também
-o comportamento de plugins na versão da Smarty antecessores à 2.6.0
-
-
-
-Quando registrando um plugin com $cacheable=false o plugin é chamado todo o tempo na página que está sendo mostrada, sempre se a página vier do cache. A função de plugin tem um comportamento levemente como uma função insert.
-
-
-
-Em contraste para {insert} o atributo para o plugin não está em cache por padrão. Eles podem ser declarados para serem cacheados com o quarto parâmetro $cache_attrs. $cache_attrs é um array de nomes de atributos que devem ser cacheados, então a função de plugin pega o valor como isso sendo o tempo que a página foi escrita para o cache todo o tempo isso é buscado do cache.
-
-
-
- Prevenindo uma saída de plugin de ser cacheada
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->caching = true;
-
-function remaining_seconds($params, &$smarty) {
- $remain = $params['endtime'] - time();
- if ($remain >=0)
- return $remain . " second(s)";
- else
- return "done";
-}
-
-$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime'));
-
-if (!$smarty->is_cached('index.tpl')) {
- // fetch $obj from db and assign...
- $smarty->assign_by_ref('obj', $obj);
-}
-
-$smarty->display('index.tpl');
-
-
-index.tpl:
-
-Tempo restante: {remain endtime=$obj->endtime}
-
-O número de segundos até que o endtime de $obj alcança alterações em cada display de página, mesmo que a página esteja em cache. Desde o atributo endtime esteja em cache o objeto somente tem que ser puxado do banco de dados quando a página está escrita para o cache mas não em requisições subsequentes da página.
-
-
-
-
-
- Prevenindo uma passagem inteira do template para o cache
-
-index.php:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->caching = true;
-
-function smarty_block_dynamic($param, $content, &$smarty) {
- return $content;
-}
-$smarty->register_block('dynamic', 'smarty_block_dynamic', false);
-
-$smarty->display('index.tpl');
-
-
-index.tpl:
-
-Page created: {"0"|date_format:"%D %H:%M:%S"}
-
-{dynamic}
-
-Now is: {"0"|date_format:"%D %H:%M:%S"}
-
-... do other stuff ...
-
-{/dynamic}
-
-
-
-Quando recarregado a página que você irá notar que ambas as datas diferem. Uma é "dinâmica" e uma é "estática". Você pode fazer qualquer coisa entre as tags {dynamic}...{/dynamic} e ter certeza que isso não irá ficar em cache como o restante da página.
-
-
-
-
-
- Advanced Features
-
- Objetos
-
- O Smarty permite acesso a objetos do PHP através de seus templates. Há duas formas de acessá-los.
- Uma forma é registrar objetos para o template, então os acessa via sintaxe similar a funções
- customizáveis. A outra forma é atribuir objetos para os templates e acessá-los como se fossem
- uma variável atribuída. O primeiro método tem uma sintaxe de template muito mais legal. E também
- mais segura, à medida que um objeto registrado pode ser restrito a certos métodos e
- propriedades. Entretanto, um objeto registrado não pode ser
- posto em loop ou ser atribuido em arrays de
- objetos, etc. O método que você escolher será determinado pelas suas necessidades, mas use o
- primeiro método se possível para
- manter um mínimo de sintaxe no template.
-
-
- Se a segurança está habilitada, nenhum dos métodos privados ou funções podem acessados
- (começando com "_"). Se um método e propriedade de um mesmo nome existir, o método será
- usado.
-
-
- Você pode restringir os métodos e propriedades que podem ser acessados listando os em um array
- como o terceiro parâmetro de registração.
-
-
- Por definição, parâmetros passados para objetos através dos templates são passados da mesma
- forma que funções customizáveis os obtém. Um array associativo é passado como o primeiro parâmetro,
- e o objeto smarty como o segundo. Se você quer que os parâmetros passados um de cada vez
- por cada argumento como passagem de parâmetro de objeto tradicional, defina o quarto parâmetro
- de registração para falso.
-
-
- O quinto parâmetro opcional só tem efeito com format
- sendo true e contém
- uma lista de métods de ob que seriam tratados como
- blocos. Isso significa que estes métodos
- tem uma tag de fechamento no template
- ({foobar->meth2}...{/foobar->meth2}) e
- os parâmetros para os métodos tem a mesma sinopse como os parâmetros para
- block-function-plugins: Eles pegam 4 parâmetros
- $params,
- $content,
- &$smarty e
- &$repeat e eles também comportam-se como
- block-function-plugins.
-
-
- usando um objeto registrado ou atribuído
-
-<?php
-// O objeto
-
-class My_Object {
- function meth1($params, &$smarty_obj) {
- return "this is my meth1";
- }
-}
-
-$myobj = new My_Object;
-// registrando o objeto (será por referência)
-$smarty->register_object("foobar",$myobj);
-// Se você quer restringie acesso a certos métodos ou propriedades, liste-os
-$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1'));
-// Se você quer usar o formato de parâmetro de objeto tradicional, passe um booleano de false
-$smarty->register_object("foobar",$myobj,null,false);
-
-// Você pode também atribuir objetos. Atribua por referência quando possível.
-$smarty->assign_by_ref("myobj", $myobj);
-
-$smarty->display("index.tpl");
-?>
-
-TEMPLATE:
-
-{* accessa nosso objeto registrado *}
-{foobar->meth1 p1="foo" p2=$bar}
-
-{* você pode também atribuir a saída *}
-{foobar->meth1 p1="foo" p2=$bar assign="output"}
-the output was {$output}
-
-{* acessa nosso objeto atribuído *}
-{$myobj->meth1("foo",$bar)}
-
-
-
- Prefilters
-
- Os prefilters de Template são funções de PHP nas quais seus templates são rodados
- antes de serem compilados. Isto é bom para preprocessamento de seus templates para remover
- comentários indesejados, mantendo o olho no que as pessoas estão colocando nos seus templates,
- etc. Prefilters podem ser ou registrado
- ou carregado do diretório de plugins usando a função
- load_filter()
- ou pela configuração da variável
- $autoload_filters.
- O Smarty passará o código fonte do template como o
- primeiro argumeto, e espera a função retornar
- o código fonte do template resultante.
-
-
- Usando um prefilter de template
-
-<?php
-// Ponha isto em sua aplicação
-function remove_dw_comments($tpl_source, &$smarty)
-{
- return preg_replace("/<!--#.*-->/U","",$tpl_source);
-}
-
-// registrar o prefilter
-$smarty->register_prefilter("remove_dw_comments");
-$smarty->display("index.tpl");
-?>
-
-{* Smarty template index.tpl *}
-<!--# esta linha será removida pelo prefilter -->
-
-
-
-
- Postfilters
-
- Os postfilters de template são funções de PHP nas quais seus templates são rodados
- imediatamente depois de serem compilados. Os postfilters podem ser ou
- registradocarrgados do diretório de
- plugins usando a função
- load_filter() ou pela
- variável de configuração
- $autoload_filters.
- O Smarty passará o código fonte do template compilado
- como o primeiro argumento, e espera
- a função retornar o resultado do processamento.
-
-
- usando um postfilter de template
-
-<?php
-// ponha isto em sua aplicação
-function add_header_comment($tpl_source, &$smarty)
-{
- return "<?php echo \"<!-- Created by Smarty! -->\n\" ?>\n".$tpl_source;
-}
-
-// registra o postfilter
-$smarty->register_postfilter("add_header_comment");
-$smarty->display("index.tpl");
-?>
-
-{* compiled Smarty template index.tpl *}
-<!-- Created by Smarty! -->
-{* rest of template content... *}
-
-
-
-
- Output Filters (Filtros de Saída)
-
- Quando o template é invocado via display() ou fetch(), sua saída pode ser enviada
- através de um ou mais filtros de saída. Estes diferem dos postfilters porque postfilters
- operam em templates compilados antes de serem salvos para o disco, e os filtros de saída
- operam na saída do template quando
- ele é executado.
-
-
-
- Filtros de Saída podem ser ou
- registrado ou carregado
- do diretório de plugins usando a função
- load_filter() ou configurando a variável
- $autoload_filters.
- O Smarty passará a saída como o primeiro argumento,
- e espera a função retornar o resultado
- do processamento.
-
-
- usando um filtro de saída de template
-
-<?php
-// ponha isto em sua aplicação
-function protect_email($tpl_output, &$smarty)
-{
- $tpl_output =
- preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
- '$1%40$2', $tpl_output);
- return $tpl_output;
-}
-
-// registra o outputfilter
-$smarty->register_outputfilter("protect_email");
-$smarty->display("index.tpl");
-
-// agora qualquer ocorrência de um endereço de email na saída do template terá uma
-// simples proteção contra spambots
-?>
-
-
-
-
- Função Manipuladora de Cache
-
- Como uma alternativa ao uso do mecanismo de caching padrão baseado em arquivo, você pode
- especificar uma função de manipulação de cache customizada que será usada para ler, escrever
- e limpar arquivos de cache.
-
-
- Crie uma função em sua aplicação que o Smarty usará como um manipulador de cache. Defina o
- nome dela na variável de classe
- $cache_handler_func.
- O Smarty agora usará esta para manipular dados no cache. O primeiro argumento é a ação,
- que é um desses 'read', 'write' e 'clear'. O segundo parâmetro é o objeto do Smarty. O
- terceiro parâmetro é o conteúdo que está no cache.
- No write, o Smarty passa o conteúdo em
- cache nestes parâmetros. No 'read', o Smarty espera sua função aceitar este parâmetro por
- referência e preenche ele com os dados em cache. No 'clear', passa uma variável simulacra aqui
- visto que ela não é usada. O quarto parâmetro
- é o nome do arquivo de template (necessário para
- ler/escrever), o quinto parâmetro é a cache_id (opcional),
- e o sexto é a compile_id (opcional).
-
-
- Note que: O último parâmetro ($exp_time)foi adicionado no Smarty-2.6.0.
-
-
- exemplo usando MySQL como uma fonte de cache
-
-<?php
-/*
-
-exemplo de uso:
-
-include('Smarty.class.php');
-include('mysql_cache_handler.php');
-
-$smarty = new Smarty;
-$smarty->cache_handler_func = 'mysql_cache_handler';
-
-$smarty->display('index.tpl');
-
-
-mysql database is expected in this format:
-
-create database SMARTY_CACHE;
-
-create table CACHE_PAGES(
-CacheID char(32) PRIMARY KEY,
-CacheContents MEDIUMTEXT NOT NULL
-);
-
-*/
-
-function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null, $exp_time=null)
-{
- // set db host, user and pass here
- $db_host = 'localhost';
- $db_user = 'myuser';
- $db_pass = 'mypass';
- $db_name = 'SMARTY_CACHE';
- $use_gzip = false;
-
- // cria um cache id unico
- $CacheID = md5($tpl_file.$cache_id.$compile_id);
-
- if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) {
- $smarty_obj->_trigger_error_msg("cache_handler: could not connect to database");
- return false;
- }
- mysql_select_db($db_name);
-
- switch ($action) {
- case 'read':
- // save cache to database
- $results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'");
- if(!$results) {
- $smarty_obj->_trigger_error_msg("cache_handler: query failed.");
- }
- $row = mysql_fetch_array($results,MYSQL_ASSOC);
-
- if($use_gzip && function_exists("gzuncompress")) {
- $cache_contents = gzuncompress($row["CacheContents"]);
- } else {
- $cache_contents = $row["CacheContents"];
- }
- $return = $results;
- break;
- case 'write':
- // save cache to database
-
- if($use_gzip && function_exists("gzcompress")) {
- // compress the contents for storage efficiency
- $contents = gzcompress($cache_content);
- } else {
- $contents = $cache_content;
- }
- $results = mysql_query("replace into CACHE_PAGES values(
- '$CacheID',
- '".addslashes($contents)."')
- ");
- if(!$results) {
- $smarty_obj->_trigger_error_msg("cache_handler: query failed.");
- }
- $return = $results;
- break;
- case 'clear':
- // clear cache info
- if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) {
- // clear them all
- $results = mysql_query("delete from CACHE_PAGES");
- } else {
- $results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'");
- }
- if(!$results) {
- $smarty_obj->_trigger_error_msg("cache_handler: query failed.");
- }
- $return = $results;
- break;
- default:
- // error, unknown action
- $smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\"");
- $return = false;
- break;
- }
- mysql_close($link);
- return $return;
-
-}
-
-?>
-
-
-
-
- Recursos (Resources)
-
- Os templates podem vir de uma variedade de fontes. Quando você exibe (display) ou
- busca (fetch) um template, ou inclui um template de dentro de outro template, você
- fornece um tipo de recurso, seguido pelo
- caminho e nome do template apropriado. Se um
- recurso não é dado explicitamente o valor de
- $default_resource_type é assumido.
-
-
- Templates partindo do $template_dir
-
- Templates a partir do $template_dir não exigem um recurso de template,
- apesar de você usar o arquivo: resource for consistancy.
- Apenas forneça o caminho para o template que você quer usar em relação ao diretório
- root $template_dir.
-
-
- Usando templates partindo do $template_dir
-
-// from PHP script
-$smarty->display("index.tpl");
-$smarty->display("admin/menu.tpl");
-$smarty->display("file:admin/menu.tpl"); // Igual ao de cima
-
-{* de dentro do template do Smarty *}
-{include file="index.tpl"}
-{include file="file:index.tpl"} {* igual ao de cima *}
-
-
-
- Templates partindo de qualquer diretório
-
- Os Templates de fora do $template_dir exigem o arquivo:
- tipo de recurso do template,
- seguido pelo caminho absoluto e nome do template.
-
-
- usando templates partindo de qualquer diretório
-
-// de dentro do script PHP
-$smarty->display("file:/export/templates/index.tpl");
-$smarty->display("file:/path/to/my/templates/menu.tpl");
-
-{* de dentro do template do Smarty *}
-{include file="file:/usr/local/share/templates/navigation.tpl"}
-
-
-
- Caminhos de arquivos do Windows
-
- Se você está usando uma máquina windows, caminhos de arquivos normalmente incluem uma letra
- do drive (C:) no começo do nome do caminho.
- Esteja certo de usar "file:" no caminho para
- evitar conflitos de nome e obter os resultados desejados.
-
-
- usando templates com caminhos de arquivo do windows
-
-// de dentro do script PHP
-$smarty->display("file:C:/export/templates/index.tpl");
-$smarty->display("file:F:/path/to/my/templates/menu.tpl");
-
-{* de dentro do template do Smarty *}
-{include file="file:D:/usr/local/share/templates/navigation.tpl"}
-
-
-
-
-
- Templates partindo de outras fontes
-
- Você pode resgatar templates usando qualquer fonte possível de você acessar com PHP: banco
- de dados, sockets, LDAP, e assim por diante.
- Você faz isto escrevendo as funções de plugin
- de recurso e registrando elas com o Smarty.
-
-
-
- Veja a seção plugins de recurso
- para mais informação sobre as funções
- que você deve fornecer.
-
-
-
-
- Note que você pode ativar manualmente o recurso de arquivo embutido, mas não pode fornecer um recurso que busca templates a partir do sistema de arquivos de alguma outra forma registrando sob um outro nome de recurso.
- file resource, but you can provide a resource
- that fetches templates from the file system in some other way by
- registering under another resource name.
-
-
-
- usando recursos customizáveis
-
-// no script PHP
-
-// ponha estas funções em algum lugar de sua aplicação
-function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
-{
- // faça o banco de dados chamar aqui para buscar o seu template,
- // preenchendo o $tpl_source
- $sql = new SQL;
- $sql->query("select tpl_source
- from my_table
- where tpl_name='$tpl_name'");
- if ($sql->num_rows) {
- $tpl_source = $sql->record['tpl_source'];
- return true;
- } else {
- return false;
- }
-}
-
-function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
-{
- // faça o banco de dados chamar daqui para preencher a $tpl_timestamp.
- $sql = new SQL;
- $sql->query("select tpl_timestamp
- from my_table
- where tpl_name='$tpl_name'");
- if ($sql->num_rows) {
- $tpl_timestamp = $sql->record['tpl_timestamp'];
- return true;
- } else {
- return false;
- }
-}
-
-function db_get_secure($tpl_name, &$smarty_obj)
-{
- // assume-se que todos os templates são seguros
- return true;
-}
-
-function db_get_trusted($tpl_name, &$smarty_obj)
-{
- // não usado para templates
-}
-
-// registrar o nome de recurso "db"
-$smarty->register_resource("db", array("db_get_template",
- "db_get_timestamp",
- "db_get_secure",
- "db_get_trusted"));
-
-// usando o recurso a partir do script PHP
-$smarty->display("db:index.tpl");
-
-{* usando o recurso de dentro do template do Smarty *}
-{include file="db:/extras/navigation.tpl"}
-
-
-
-
- Função Manipuladora de Template Padrão
-
- Você pode especificar a função que é usada para devolver o conteúdo do template no evento
- em que o template não pode ser devolvido de seu recurso. Um uso disto é para criar templates
- que não existem "on-the-fly"
- (templates cujo conteúdo flutua muito, bastante variável).
-
-
- usando a função manipuladora de template padrão
-
-<?php
-// ponha esta função em algum lugar de sua aplicação
-
-function make_template ($resource_type, $resource_name, &$template_source, &$template_timestamp, &$smarty_obj)
-{
- if( $resource_type == 'file' ) {
- if ( ! is_readable ( $resource_name )) {
- // cria um arquivo de template, retorna o conteúdo.
- $template_source = "This is a new template.";
- $template_timestamp = time();
- $smarty_obj->_write_file($resource_name,$template_source);
- return true;
- }
- } else {
- // não é arquivo
- return false;
- }
-}
-
-// defina a manipuladora padrão
-$smarty->default_template_handler_func = 'make_template';
-?>
-
-
-
-
-
-
- Extendendo a Smarty com Plugins
-
- A Versão 2.0 introduziu a arquitetura de plugin que é usada para quase todas as
- funcionalidades customizáveis da Smarty. Isto inclui:
-
- funções
- modificadores
- funções de bloco
- funções de compilador
- prefiltros
- posfiltros
- filtros de saída
- recursos
- inserir
-
- Com a exceção de recursos, a compatibilidade com a forma antiga de funções de
- manipulador de registro via register_* API é preservada. Se você não usou o API mas no lugar disso
- modificou as variáveis de classe $custom_funcs, $custom_mods, e
- outras diretamente, então você vai
- precisar ajustar seus scripts para ou usar API ou converter suas
- funcionalidade customizadas em plugins.
-
-
-
- Como os Plugins Funcionam
-
- Plugins são sempre lidos quando requisitados. Apenas os modificadores específicos,
- funções, recursos, etc convocados em scripts de template serão lidos. Além disso, cada plugin
- é lido apenas uma vez, mesmo se você tem várias instâncias diferentes da Smarty rodando na mesma
- requisição.
-
-
- Pre/posfiltros e filtros de saída são uma parte de um caso especial. Visto que eles não são mencionados
- nos templates, eles devem ser registrados ou lidos explicitamente via funções de API antes do template
- ser processado.
- A ordem em que multiplos filtros do mesmo
- tipo são executados dependem da ordem em que eles são registrados ou lidos.
-
-
- O diretório de plugins
- pode ser uma string contendo um caminho ou um array
- contendo multiplos caminhos. Para instalar um plugin,
- simplesmente coloque-o em um dos diretórios e a Smarty irá usá-lo automaticamente.
-
-
-
-
- Convenções de Aparência
-
- Arquivos e funções de Plugin devem seguir uma convenção de aparência muito específica
- a fim de ser localizada pela Smarty.
-
-
- Os arquivos de plugin devem ser nomeados da sequinte forma:
-
-
-
- tipo.nome.php
-
-
-
-
-
- Onde tipo é um dos seguintes tipos de plugin:
-
- function
- modifier
- block
- compiler
- prefilter
- postfilter
- outputfilter
- resource
- insert
-
-
-
- E nome seria um identificador válido (letras,
- números, e underscores apenas).
-
-
- Alguns exemplos: function.html_select_date.php,
- resource.db.php,
- modifier.spacify.php.
-
-
- As funções de plugin dentro dos arquivos do plugin devem ser nomeadas da seguinte forma:
-
-
- smarty_tipo_nome
-
-
-
-
- O significado de tipo e
- nome são os mesmos de antes.
-
-
- A Smarty mostrará mensagens de erro apropriadas se o arquivo de plugins que é necessário não é encontrado,
- ou se o arquivo ou a função de plugin
- estão nomeadas inadequadamente.
-
-
-
-
- Escrevendo Plugins
-
- Os Plugins podem ser ou lidos pela Smarty automaticamente do sistema de arquivos ou eles podem
- ser registrados no tempo de execução via uma das funções
- de API register_* . Eles podem também ser
- com o uso da função API unregister_* .
-
-
- Para os plugins que são registrados no tempo de execução, o nome da(s) função(ões) de plugin
- não têm que seguir a convenção de aparência.
-
-
- Se um plugin depende de alguma funcionalidade fornecida por um outro plugin (como é o caso com alguns
- plugins embutidos com a Smarty),
- então a forma apropriada para ler o plugin necessário é esta:
-
-
-require_once $smarty->_get_plugin_filepath('function', 'html_options');
-
- Como uma regra geral, o objeto da Smarty é sempre passado para os plugins como o último parâmetro
- (com duas exceções: modificadores não passam o objeto da Smarty em tudo e blocks passam
- &$repeat depois do objeto da Smarty
- para manter compatibilidade a antigas
- versões da Smarty).
-
-
-
- Funções de Template
-
-
- void smarty_function_name
- array $params
- object &$smarty
-
-
-
- Todos os atributos passados para as funções de template a
- partir do template estão contidas em
- $params como um array associativo. Ou acessa esses valores
- diretamente i.e $params['start'] ou usa
- extract($params) para
- importá-los para dentro da tabela símbolo.
-
-
- A saída (valor de retorno) da função será substituída no lugar da tag da função no template
- (a função fetch, por exemplo). Alternativamente, a função pode simplesmente executar
- alguma outra tarefa sem ter alguma saída
- (a função assign).
-
-
- Se a função precisa passar valores a algumas variáveis para o template ou utilizar alguma outra funcionalidade
- fornecida com a Smarty, ela pode usar
- o objeto $smarty fornecido para fazer isso.
-
-
- Veja também:
- register_function(),
- unregister_function().
-
-
-
- função de plugin com saída
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: function.eightball.php
- * Type: function
- * Name: eightball
- * Purpose: outputs a random magic answer
- * -------------------------------------------------------------
- */
-function smarty_function_eightball($params, &$smarty)
-{
- $answers = array('Yes',
- 'No',
- 'No way',
- 'Outlook not so good',
- 'Ask again soon',
- 'Maybe in your reality');
-
- $result = array_rand($answers);
- return $answers[$result];
-}
-?>
-
-
-
- que pode ser usada no template da seguinte forma:
-
-
-Pergunta: Nós sempre teremos tempo para viajar?
-Resposta: {eightball}.
-
-
- função de plugin sem saída
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: function.assign.php
- * Type: function
- * Name: assign
- * Purpose: assign a value to a template variable
- * -------------------------------------------------------------
- */
-function smarty_function_assign($params, &$smarty)
-{
- extract($params);
-
- if (empty($var)) {
- $smarty->trigger_error("assign: missing 'var' parameter");
- return;
- }
-
- if (!in_array('value', array_keys($params))) {
- $smarty->trigger_error("assign: missing 'value' parameter");
- return;
- }
-
- $smarty->assign($var, $value);
-}
-?>
-
-
-
-
- Modifiers
-
- Modificadores são funções que são aplicadas a uma variável no template antes dela ser mostrada
- ou usada em algum outro contexto.
- Modificadores podem ser encadeados juntos.
-
-
-
- mixed smarty_modifier_name
- mixed $value
- [mixed $param1, ...]
-
-
-
- O primeiro parâmetro para o plugin midificador é o valor em que o modificador é suposto
- operar. O resto dos parâmetros podem ser opcionais,
- dependendo de qual tipo de operação é para
- ser executada.
-
-
- O modificador deve retornar o resultado de seu processamento.
-
-
- Veja também:
- register_modifier(),
- unregister_modifier().
-
-
- Plugin modificador simples
-
- Este plugin basiamente é um alias de uma
- função do PHP. Ele não tem nenhum parâmetro adicional.
-
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: modifier.capitalize.php
- * Type: modifier
- * Name: capitalize
- * Purpose: capitalize words in the string
- * -------------------------------------------------------------
- */
-function smarty_modifier_capitalize($string)
-{
- return ucwords($string);
-}
-?>
-
-
-
- Plugin modificador mais complexo
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: modifier.truncate.php
- * Type: modifier
- * Name: truncate
- * Purpose: Truncate a string to a certain length if necessary,
- * optionally splitting in the middle of a word, and
- * appending the $etc string.
- * -------------------------------------------------------------
- */
-function smarty_modifier_truncate($string, $length = 80, $etc = '...',
- $break_words = false)
-{
- if ($length == 0)
- return '';
-
- if (strlen($string) > $length) {
- $length -= strlen($etc);
- $fragment = substr($string, 0, $length+1);
- if ($break_words)
- $fragment = substr($fragment, 0, -1);
- else
- $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment);
- return $fragment.$etc;
- } else
- return $string;
-}
-?>
-
-
-
- Block Functions
-
-
- void smarty_block_name
- array $params
- mixed $content
- object &$smarty
-
-
-
- Funções de Block são funções da forma: {func} .. {/func}. Em outras palavras, ele enclausura
- um bloco de template e opera no conteúdo deste bloco. Funções de Block tem precedência sobre
- funções customizadas com mesmo nome,
- assim, você não pode ter ambas, função customizável {func} e
- função de Bloco {func} .. {/func}.
-
-
- Por definição a implementação de sua função é chamada duas vezes pela Smarty: uma vez pela tag de abertura,
- e outra pela tag de fechamento
- (veja &$repeat abaixo para como mudar isto).
-
-
- Apenas a tag de abertura da função de bloco pode ter atributos.
- Todos os atributos passados para as funções de
- template estão contidos em $params como um array associativo. Você pode ou acessar
- esses valores diretamente, i.e. $params['start']
- ou usar extract($params)
- para importá-los para dentro da tabela símbolo. Os atributos da tag de
- abertura são também acessíveis a sua função
- quando processando a tag de fechamento.
-
-
- O valor da variável $content
- depende de que se sua função é chamada pela tag de
- fechamento ou de abertura. Caso seja a de abertura, ele será
- null, se for a de fechamento
- o valor será do conteúdo do bloco de template.
- Note que o bloco de template já terá sido processado pela
- Smarty, então tudo que você receberá é saída do template, não o template original.
-
-
-
- O parâmetro &$repeat é passado por
- referência para a função de implementação
- e fornece uma possibilidade para ele controlar quantas
- vezes o bloco é mostrado. Por definição
- $repeat é true na primeira chamada da block-function
- (a tag de abertura do bloco) e false
- em todas as chamadas subsequentes à função de bloco
- (a tag de fechamento do bloco). Cada vez que a
- implementação da função retorna com o &$repeat
- sendo true, o conteúdo entre {func} .. {/func} é avaliado
- e a implementação da função é chamada novamente com
- o novo conteúdo do bloco no parâmetro $content.
-
-
-
-
- Se você tem funções de bloco aninhadas, é possível
- descobrir qual é a função de bloco pai acessando
- a variável $smarty->_tag_stack. Apenas faça um var_dump()
- nela e a estrutura estaria visível.
-
-
- See also:
- register_block(),
- unregister_block().
-
-
- função de bloco
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: block.translate.php
- * Type: block
- * Name: translate
- * Purpose: translate a block of text
- * -------------------------------------------------------------
- */
-function smarty_block_translate($params, $content, &$smarty)
-{
- if (isset($content)) {
- $lang = $params['lang'];
- // do some intelligent translation thing here with $content
- return $translation;
- }
-}
-
-
-
- Funções Compiladoras
-
- Funções compiladoras só são chamadas durante a compilação do template.
- Elas são úteis para injeção de código PHP ou conteúdo estático time-sensitive
- dentro do template. Se há ambos, uma função
- compiladora e uma função customizável
- registrada sob o mesmo nome, a função compiladora tem precedência.
-
-
-
- mixed smarty_compiler_name
- string $tag_arg
- object &$smarty
-
-
-
- À função compiladora são passados dois parâmetros:
- a tag string de argumento da tag - basicamente, tudo a partir
- do nome da função até o delimitador de fechamento, e o objeto da Smarty. É suposto que retorna o código PHP
- para ser injetado dentro do template compilado.
-
-
- See also
- register_compiler_function(),
- unregister_compiler_function().
-
-
- função compiladora simples
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: compiler.tplheader.php
- * Type: compiler
- * Name: tplheader
- * Purpose: Output header containing the source file name and
- * the time it was compiled.
- * -------------------------------------------------------------
- */
-function smarty_compiler_tplheader($tag_arg, &$smarty)
-{
- return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';";
-}
-?>
-
- Esta função pode ser chamada em um template da seguinte forma:
-
-
-{* esta função é executada somente no tempo de compilação *}
-{tplheader}
-
- O código PHP resultante no template compilado seria algo assim:
-
-
-<php
-echo 'index.tpl compiled at 2002-02-20 20:02';
-?>
-
-
-
-
- Prefiltros/Posfiltros
-
- Plugins Prefilter e postfilter são muito similares
- em conceito; onde eles diferem é na execução -- mais
- precisamente no tempo de suas execuções.
-
-
-
- string smarty_prefilter_name
- string $source
- object &$smarty
-
-
-
- Prefilters são usados para processar o fonte do template
- imediatamente antes da compilação. O primeiro parâmetro da
- função de prefilter é o fonte do template, possivelmente modificado por alguns outros prefilters. O Plugin
- é suposto retornar o fonte modificado. Note que este fonte não é salvo em lugar nenhum, ele só é usado para
- a compilação.
-
-
-
- string smarty_postfilter_name
- string $compiled
- object &$smarty
-
-
-
- Postfilters são usados para processar a saída compilada do template (o código PHP) imediatamente após
- a compilação ser feita e antes do template compilado ser
- salvo no sistema de arquivo. O primeiro parâmetro
- para a função postfilter é o código do template compilado,
- possivelmente modificado por outros postfilters.
- O plugin é suposto retornar a versão modificada deste código.
-
-
- Plugin prefilter
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: prefilter.pre01.php
- * Type: prefilter
- * Name: pre01
- * Purpose: Convert html tags to be lowercase.
- * -------------------------------------------------------------
- */
- function smarty_prefilter_pre01($source, &$smarty)
- {
- return preg_replace('!<(\w+)[^>]+>!e', 'strtolower("$1")', $source);
- }
-?>
-
-
-
- Plugin postfilter
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: postfilter.post01.php
- * Type: postfilter
- * Name: post01
- * Purpose: Output code that lists all current template vars.
- * -------------------------------------------------------------
- */
- function smarty_postfilter_post01($compiled, &$smarty)
- {
- $compiled = "<pre>\n<?php print_r(\$this->get_template_vars()); ?>\n</pre>" . $compiled;
- return $compiled;
- }
-?>
-
-
-
- Filtros de saída
-
- Filtros de saída operam na saída do template, depois que o template é lido e executado, mas
- antes a saída é mostrada.
-
-
-
- string smarty_outputfilter_name
- string $template_output
- object &$smarty
-
-
-
- O primeiro parâmetro para a função do filtro de saída é a saída do template que precisa ser processada, e
- o segundo parâmetro é a instância da Smarty invocando o plugin.
- O plugin deve fazer o precessamento e
- retornar os resultados.
-
-
- output filter plugin
-
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: outputfilter.protect_email.php
- * Type: outputfilter
- * Name: protect_email
- * Purpose: Converts @ sign in email addresses to %40 as
- * a simple protection against spambots
- * -------------------------------------------------------------
- */
- function smarty_outputfilter_protect_email($output, &$smarty)
- {
- return preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
- '$1%40$2', $output);
- }
-
-
-
-
- Recursos (Resources)
-
- Os plugins de Recursos são como uma forma genérica de fornecer códigos fontes de template
- ou componentes de script PHP para a Smarty. Alguns exemplos de recursos:
- banco de dados, LDAP, memória compartilhada, sockets, e assim por diante.
-
-
-
- Há um total de 4 funções que precisam estar registradas
- para cada tipo de recurso. Cada função receberá
- o recurso requisitado como o primeiro parâmetro e o objeto da Smarty como o último parâmetro. O resto
- dos parâmetros dependem da função.
-
-
-
-
- bool smarty_resource_name_source
- string $rsrc_name
- string &$source
- object &$smarty
-
-
- bool smarty_resource_name_timestamp
- string $rsrc_name
- int &$timestamp
- object &$smarty
-
-
- bool smarty_resource_name_secure
- string $rsrc_name
- object &$smarty
-
-
- bool smarty_resource_name_trusted
- string $rsrc_name
- object &$smarty
-
-
-
-
- A primeira função deve devolver o recurso. Seu segundo parâmetro é uma variável passada por
- referência onde o resultado seria armazenado.
- A função deve retornar true se
- ela está apta a devolver com sucesso o recurso e
- caso contrário retorna false.
-
-
-
- A segunda função deve devolver a última modificação do
- recurso requisitado (como um timestamp Unix).
- O segundo parâmetro é uma variável passada por referência onde o timestamp seria armazenado.
- A função deve retornar true
- se o timestamp poderia ser determinado com sucesso,
- e caso contrário retornaria false.
-
-
-
- A terceira função deve retornar true ou
- false, dependendo do recurso requisitado
- está seguro ou não. Esta função é usada
- apenas para recursos de template mas ainda assim seria definida.
-
-
-
- A quarta função deve retornar true
- ou false, dependendo
- do recurso requisitado ser confiável ou não.
- Esta função é usada apenas para componentes de
- script PHP requisitados pelas tags include_php ou
- insert com o atributo src.
- Entretanto, ela ainda assim mesmo seria definida para os recursos de template.
-
-
- Veja também:
- register_resource(),
- unregister_resource().
-
-
- Plugin resource (recurso)
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: resource.db.php
- * Type: resource
- * Name: db
- * Purpose: Fetches templates from a database
- * -------------------------------------------------------------
- */
-function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty)
-{
- // do database call here to fetch your template,
- // populating $tpl_source
- $sql = new SQL;
- $sql->query("select tpl_source
- from my_table
- where tpl_name='$tpl_name'");
- if ($sql->num_rows) {
- $tpl_source = $sql->record['tpl_source'];
- return true;
- } else {
- return false;
- }
-}
-
-function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty)
-{
- // faz o banco de dados chamar aqui para preencher $tpl_timestamp.
- $sql = new SQL;
- $sql->query("select tpl_timestamp
- from my_table
- where tpl_name='$tpl_name'");
- if ($sql->num_rows) {
- $tpl_timestamp = $sql->record['tpl_timestamp'];
- return true;
- } else {
- return false;
- }
-}
-
-function smarty_resource_db_secure($tpl_name, &$smarty)
-{
- // assume que todos os templates são seguros
- return true;
-}
-
-function smarty_resource_db_trusted($tpl_name, &$smarty)
-{
- // não usado para templates
-}
-?>
-
-
-
- Inserts
-
- Plugins Insert são usados para implementar funções que são invocadas por tags
- insert
- no template.
-
-
-
- string smarty_insert_name
- array $params
- object &$smarty
-
-
-
- O primeiro parâmetro para a função é um array
- associativo de atributos passados para o
- insert. Ou acessa esses valores diretamente,
- i.e. $params['start'] ou usa
- extract($params) para importá-los para dentro da tabela símbolo.
-
-
- A função insert deve retornar o
- resultado que será substituído no lugar da tag
- insert no template.
-
-
- Plugin insert
-
-<?php
-/*
- * Smarty plugin
- * -------------------------------------------------------------
- * File: insert.time.php
- * Type: time
- * Name: time
- * Purpose: Inserts current date/time according to format
- * -------------------------------------------------------------
- */
-function smarty_insert_time($params, &$smarty)
-{
- if (empty($params['format'])) {
- $smarty->trigger_error("insert time: missing 'format' parameter");
- return;
- }
-
- $datetime = strftime($params['format']);
- return $datetime;
-}
-?>
-
-
-
-