Get Smarty

Donate

Donate Bitcoin Bitcoin
Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Largest classified with thousands of ads at Shoppok

Buy cheap eyeglasses from Cheapglasses123.com and save up to 80%.

Buy prescription glasses from www.australiaglasses.com and save.

Cheap Glasses Now On Sale at GlassesPeople.com. Starts At $7.95.

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Find Wedding Dresses Online at Canada from Ca-dresses.com

Find your local domestic cleaner

Brautkleider auf Topwedding.de

Find free files to download on allwhatyouwant.net

Looking For Affordable Wedding Dresses 2015 at Best Prices On TDBridal.com

Shop high quality cheap prom dresses on Dresswe.co.uk

Advertisement

Chapter 15. 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.

Example 15.1. 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)}

Comments
No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 4 plus 16? (Are you human?)

Advertisement

Sponsors [info]

UK Web Hosting @webhost.uk.net
Best Web Hosting @rshosting.com
Web Hosting UK @webhostinguk.com
Unlimited Web Hosting @infrenion.com
App Entwicklung @morphodo.com
First Click Internet Marketing @fcinternetmarketing.com
Credit Card Processing Company