segunda-feira, 16 de novembro de 2009

Exemplo com a função assign do Smarty

O Smarty vem com diversas funções que você pode usar nos templates. Uma função muita interessante é a função ASSIGN. Com ela podemos definir variáveis no próprio template com determinado conteúdo que podem realizar operações ou mesmo apenas receber valores que serão validados. Legal!

Definição: {assign} é usada para definir variáveis de template durante sua execução.

Atributos:

var
Tipo: string;
Requirido: sim;
Default: n/a;
Descrição: O nome da variável que esta sendo definida;

value
Tipo: string;
Requirido: sim;
Default: n/a;
Descrição: É o valor que está sendo setado;

A) Vamos à um exemplo básico?

1) Definindo e setando:
{assign var='minhaVariavel' value='Dilberto'}
2) Mostrando:
O valor de $minhaVariavel é {$minhaVariavel} .
3) Resultado:
O valor de $minhaVariavel é Dilberto.

B) Podemos também realizar uma operação matemática!

1) Definindo a variável já setando uma operação
{assign var=carregando_total value='$carregando_total+$array_qualquer[linha].valor'}
2) Mostrando o resultado da operação:
O resultado da operação é {$carregando_total}

C) E por fim, posso acessar uma variável que está no template a partir do PHP script!

1) Definindo a variável:
{assign=var='estouNoTemplate' value='variavelSmarty'}

2) Vamos montar o script PHP! Importante: As variáveis do template somente estarão disponíveis depois ou durante a execução do template.


<?php

//Executando o método fetch do smarty para gerar as variáveis
$whole_page = $smarty->fetch('index.tpl');

//Mostrando a variavel smarty que foi definida no template
echo 'estouNoTemplate:'.$smarty->get_template_vars('estouNoTemplate');

//Definindo uma nova variável
$smarty->assign('outraVariavel','variavelSmarty2');

//Quebrando linha
echo "<br>";

//Mostrando a nova variável
echo 'outraVariavel:'.$smarty->get_template_vars('outraVariavel');

?>

3) Resultado
estouNoTemplate: variavelSmarty
outraVariavel: variavelSmarty2

Legal! Até a próxima!

Fonte: Smarty Net
Comentários e tradução: Dilberto Rosa

Nenhum comentário:

Postar um comentário