Exemplo com a função assign do Smarty

31 10 2009

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





Como acessar um array smarty com foreach

22 10 2009

Neste post tratarei de um assunto básico e extremamente útil com smarty: Foreach em array!

Vamos definir inicialmente o nome dos atributos pra você se familiarizar com o assunto:

from - Neste ítem você define o array que está sendo acessado;
item - É o nome da variável onde está o elemento atual dentro do loop;
key - E o nome da variável que contém a chave do array dentro do ítem atual no loop;
name - Este ítem é o nome do looping foreach para acessar as propriedades do foreach;

vamos à um exemplo simples?

1) No PHP definimos o array com o conteúdo que está sendo passado via smarty para um template qualquer:

$arr = array(100, 200, 300, 400);
$smarty->assign(‘arrayConteudo’, $arr);

2) Agora vamos para o Template. Aqui, conforme o assign do smarty, criamos uma variável arrayConteudo que será acessada no template:

{foreach from=$arrayConteudo item=conteudo}
{$conteudo}
{foreach}

Pronto! Teremos a seguinte saída html:

  • 100
  • 200
  • 300
  • 400

Mas se eu quiser acessar o índice do array? Simples! Mudamos o foreach da seguinte forma:
{foreach from=$arrayConteudo key=chave item=conteudo}
{$chave}: {$conteudo}
{foreach}

Saída HTML:

  • 0: 100
  • 1: 200
  • 2: 300
  • 3: 400

É isso! Abraço!

Fonte:
smarty.net

Tradução e Comentários:
Dilberto Rosa





Como contar o número de elementos de um array com Smarty

6 10 2009

Bom dia pessoal!

Neste post trazemos uma dica simples mas extremamente útil para quem trabalha com Smarty no desenvolvimento PHP.

Através do smarty, podemos enviar para o template um array qualquer. Aqui chamamos este array de $conteudo. Vamos ao exemplo. Supondo que eu preciso, no smarty, identificar quantos índices existem neste array. Como podemos resolver isso? Simples!

Utilize a seguinte estrutura smarty:
{assign var=’totalArray’ value=$conteudo|@count}

Explicando o código:
assign var=’totalArray’ – O smarty cria a variável totalArray, que vai conter o total de índices encontrado no array;
value=$conteudo|@count – A variável smarty recebida que será contada é a variável $conteudo e o count identifica o tipo de ação que deve ser executada. Neste caso, contar os índices.

Como mostrar o total?

O total pode ser obtido desta forma:
{$totalArray}

Simples né?
Boa semana.

Fonte:
Smarty Template Engine
Dilberto Rosa








Seguir

Obtenha todo post novo entregue na sua caixa de entrada.