smarty template engine
Friday, August 08, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


Templates componentizados

Tradicionalmente, programar templates para suas aplicações é feito da seguinte maneira: Primeiro, você guardar suas variáveis junto com a aplicação PHP, (talvez obtendo-as de consultas à banco de dados). Após, você instancia seu objeto Smarty, atribui valores às variáveis e mostra o template. Digamos que nós temos um registrador de estoque em nosso template. Nós coletaríamos os dados do estoque em nossa aplicação, e então atribuíriamos valores as variáveis referentes à ele no template e depois exibiríamos o template na tela. Agora não seria legal se você pudesse adicionar este registrador de esto em qualquer aplicação simplesmente incluindo um template nela, e sem se preocupar com a busca dos dados futuramente?

Você pode fazer isto escrevendo um plugin personalizado que obteria o conteúdo e atribuiria ele à uma variável definida no template.

Exemplo 18-7. Template componentizado

<?php

// coloque o arquivo "function.load_ticker.php" no diretório plugin

// configura nossa função para pegar os dados do estoque
function fetch_ticker($symbol
{
   
// coloque a lógica que obtém os dados de 
   // algum recurso e guarde na variável $ticker_info
   
return $ticker_info;
}

function 
smarty_function_load_ticker($params, &$smarty
{
   
// chama a função
   
$ticker_info fetch_ticker($params['symbol']);
   
   
// atribuite o valor à uma variável no template
   
$smarty->assign($params['assign'], $ticker_info);
}
?>
index.tpl
---------

{* Smarty *}

{load_ticker symbol="YHOO" assign="ticker"}

Nome no estoque: {$ticker.name} Preço no estoque: {$ticker.price}



 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.