What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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.
Example 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}